记录下面试遇到的问题

记录下面试遇到的问题

1、equals和==的区别:

equals()方法存在于Object类中,因为Object是所有类直接或者间接的父类,也就是说,所有类中的equals方法都继承于Object类。看源码可以发现,Object类中的equals方法的底层依赖是使用来判断的。那么,在没有重写equals方法的类中,equals和的效果是一样的,也是比较对象的地址值(内存空间)。在大多数的类中,都是重写了equals方法的,重写后的equals()方法一般是比较两个对象的值。

==:

在使用比较基本数据类型时,如果两端的值相等则返回真,不等则返回假。

在使用双等号比较引用数据类型时,如果==两端的值指向的是堆内存当中的同一个对象,则返回真,否则返回假。

2、equals相等,hashcode一定相等吗?

不一定相等,因为分两种情况,当重写了equals,但没用重写hashcode时,equals相等,hashcode不一定相等。

当同时重写了equals和hashcode时,或者没重写equals时,equals相等,则hashcode一定相等。

3、抽象类和接口的区别

抽象类是对整个类进行抽象,包括属性,行为;而接口是对类局部(行为)进行抽象。

接口和抽象类的区别

4、抽象类里有三个方法,当我子类去继承抽象,我只想实现其中两个方法,该怎么办

将抽象类其中一个方法定义为抽象方法,这样子,我就可以不用必须实现三个方法,只需要重写其中两个就可以了。

5、在事务管理中,普通锁和事务锁,哪个先哪个后?

解释不是很清楚,暂时不做解答。

6、基本的数据类型

基本数据类型有 int char byte short long float double boolean

包装类型有: Boolean Integer Character Byte Short Long Double Float

7、值传递和引用传递

int a=1;--->>>值传递

int x = a; ----->>引用传递

归根结底,java里面还是值传递。

posted @ 2021-06-25 19:39  独眼龙  阅读(42)  评论(0)    收藏  举报