1. 面向对象的特征
封装、继承、多态。
封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作。
继承:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
多态:允许将子类类型的指针复制给父类类型的指针。
2. final, finally, finalize 的区别
final:修饰变量,表示该变量不可变的、修饰方法:表示该方法不能被子类重写、修饰类,表示该类是不能被继承(extend)的。
finally:try-catch-finally语句
finalize:是Object类的方法,垃圾收集器执行是会调用被回收对象的此方法,来回收对象。
3. int 和 Integer 有什么区别
(1)Integer是int的包装类;int是基本数据类型;
(2)Integer变量必须实例化后才能使用;int变量不需要;
(3)Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ;
(4)Integer的默认值是null;int的默认值是0。
4.抽象类和接口有什么区别
(1)抽象类可以包含具体的方法和成员变量
(2)接口可以多继承
(3)一个类只能继承一个直接父类,可以是具体类或者抽象类,但一个类可以实现多个接口。
5.说说反射的用途及实现
用途:在程序运行时,动态获取任意对象或者类的任意属性,调用任意方法。eg:IDEA函数提示,就用到了java的反射功能。Spring通过读取xml的Bean配置文件,在通过反射机制创建Bean实例。
6. 说说自定义注解的场景及实现
N/A
7. JDBC 流程
第一步:加载Driver类,注册数据库驱动(Class.forName('xx'));
第二步:通过DriverManager,使用url,用户名和密码建立连接(Connection);(Driver.getConnection(URL, NAME, PWD))
第三步:通过Connection,使用sql语句打开Statement对象;(connection.prepareStatement('Select * ...'))
第四步:执行语句(statement.executeQuery()),将结果返回resultSet;
第五步:对结果resultSet进行处理;
第六步:finally块中释放资源resultSet-》preparedStatement-》connection。(分别调用isClosed()判断是否关闭,否则调用close()方法调用,先判断是否为空)
8. MVC 设计思想
MVC模式就是架构模式的一种,是Model(模型)、View(视图)和Controller(控制)的单词缩写。
(1)最上面的一层,是直接面向最终用户的"视图层"(View)。它是提供给用户的操作界面,是程序的外壳。
(2)最底下的一层,是核心的"数据层"(Model),也就是程序需要操作的数据或信息。
(3)中间的一层,就是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。
9. equals 与 == 的区别
Object类中的equals方法是交给程序员重写的,让程序员自己去定义满足什么条件两个Object是相等的。默认的equals方法实现:
public boolean equals(Object obj) { return (this == obj); }
==则是比较两者的内存中存的值是否相同,对于对象来说就是两者指向的地址是否一样。
10. equals与hashCode的关系
Object中hashCode是native方法,在重写equals时,应当重写hashCode方法,两者返回的结果应该一致。hashCode的默认实现是描述对象的物理地址信息。
Comments | NOTHING