1. 接口与抽象类的区别
(1)抽象类:使用sbstract修饰
接口:使用interface
(2)抽象类:可以有抽象方法和普通方法,抽象方法的类一定是抽象类
接口:jdk1.7之前只能有抽象方法,在jdk1.8之后 可以有default、static修饰的方法
(3)抽象类:可以有普通的属性(变量 常量等等)
接口:只能用常量
(4)抽象类:通过普通类继承抽象类{}实现
接口:通过类implements接口{}实现
(5)抽象类:可以有构造方法
接口:没有构造方法
(6)抽象类:只能单继承
接口:可以多继承 也可以多实现
2. 构造方法可否能被重写
不能:
构造方法:
(1)给类中的属性赋值 继承关系中子类除了继承父类的属性之外,还可以扩展自己的属性
(2)可以重载或者在子类中用 super()调用父类的构造方法
3. (= =)与equals()的区别
==:
基本数据类型:比较数值是否相等
引用数据类型 :比较2个对象的地址值是否相等
equals()
引用数据类型:比较2个引用数据类型的值是否相等
4. 什么是拆箱和装箱
装箱:基本数据类型转换成包装类:基本数据类型直接赋值给对应的包装类型
Integer a=43;
int t=34;
Integer t1=t;
Integer in=new Integer(t)
拆箱:包装类转换成基本数据类型
Integer a=45;
int t=a.intvalue();
5. 方法重载(overload)需要满足什么条件,方法覆盖/方法重写(override)需要满足什么条件
重载:
(1)在当前类
(2)方法名必须相同
(3)返回值类型没有任何关系
(4)方法的参数一定不相同
重写:
(1)子类和父类的方法名,返回值类型 参数列表全部必须相同
(2)子类的方法修饰符权限不能比父类低
6. 谈谈final,finally,finalize的区别。
final: 属性不能改变,方法不能被重写,类不能被继承。
finally: 异常处理的语句结构的一部分,总会执行。
finalize Object一个类,垃圾回收期执行的时候调用方法,提供对其他资源的回收。
7. abstract的方法是否可同时是static,是否可同时是synchronized
都不可以:
abstract抽象类,只有方法的声明没有实现,抽象类的一个子类
static:静态,一种属于类而不属于对象的方法或者属性
synchronized:同步,相对于线程的同步锁
8. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的语句会不会执行,什么时候被执行,在return前还是后
会执行,在return前执行
9. int和Integer有什么区别
int:基本数据 默认0 定义属性
Integer:包装类 null new创建对象
10. 静态变量和实例变量的区别
静态变量 使用 static 修饰,可以使用类名.属性名调用, 所有对象共享变量 , 加载类的时候读取到变量
实例变量:没有static修饰,可以使用 对象名.属性名 调用, 所有对象单独私有变量 ,类加载没有读取到变量
11. 什么叫对象持久化(object persistence),为什么要进行对象持久化
对象的内容保存到数据库或者文件中,可以很方便保存的对象在读取出来,供用户来使用,可以使用java提供的一个序列化的机制
什么时候进行序列化?
(1)对象保存到文件或者数据库中
(2)套接字在网络上传送对象
(3)通过RMI传输的对象
对象序列化方法:实现Serializabale接口
12. 以下循环语句执行的结果是
static boolean foo(char c) {
System.out.print©;
return true;
}
public static void main(String[] args) {
int i = 0;
for (foo(‘A’); foo(‘B’) && (i < 2); foo(‘C’)) {
i++;
foo(‘D’);
}
}
ABDCBDCB