记录下面试遇到的问题
记录下面试遇到的问题
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里面还是值传递。

浙公网安备 33010602011771号