ICHARM
Java面试题-基础
Java面试题-基础

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的默认实现是描述对象的物理地址信息。

发表评论

textsms
account_circle
email

ICHARM

Java面试题-基础
1. 面向对象的特征 封装、继承、多态。 封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作。 继承:它可以使用现有类的所有功能,并在无…
扫描二维码继续阅读
2019-04-04