一、抽象类和接口的区别。
接口只有定义, 抽象类可以有定义和实现
接口的字段定义默认为:public static final, 抽象类字段默认是"friendly"(本包可见)
接口可以被多重implements, 抽象类只能被单一extends
当功能需要累积时用抽象类,不需要累积时用接口。
三、Overload和Override的区别。
Override(重写):子类覆盖父类的方法。将子类传与父类的引用,调用的还是子类的方法。
Overload(重载):在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型。这些方法的返回值类型也可以不同。
两者都是Java多态性的不同表现。
三、final, finally, finalize的区别。
final修饰的类不能被继承(String就是一个被final修饰的类);final修饰的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。一般用于声明常量,或者系统设置的值。final修饰的方法也同样只能使用,不能重写。
finally在异常处理中使用,用于必须处理的事情,如关闭连接。
finalize—方法名。在垃圾收集器将对象从内存中清除出去之前,对这个对象调用finalize方法,做必要的清理工作。这个方法是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。
二、super()与this()的区别?
This():当前类的对象, 而this他代表当前对象,当然所有的资源都可以访问.
super父类对象。Super():在子类访问父类的成员和行为,必须受类继承规则的约束
在构造函数中,如果第一行没有写super(),编译器会自动插入.
但是如果父类没有不带参数的构造函数,或这个函数被私有化了.此时你必须加入对父类的实例化构造.
而this就没有这个要求,因为它本身就进行实例化的构造.
而在方法中super和this使用的方法就差不多了.只不过super 要考虑是否能访问其父类的资源.
三、JAVA的事件委托机制和垃圾回收机制。
Java事件委托机制:
一个源产生一个事件并将它送到一个或多个监听器那里。
在这种方案中,监听器简单的等待,直到它收到一个事件。
一旦事件被接受,监听器将处理这个事件,然后返回。
垃圾回收机制:
垃圾收集是将分配给对象但不再使用的内存回收或释放的过程。
如果一个对象没有指向它的引用或者其赋值为null,则该对象适合进行垃圾回收。
四、什么是java序列化,如何实现java序列化?(写一个实例)
序列化:
处理对象流的机制,所谓对象流也就是将对象的内容进行流化。
可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。
序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:
将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,
implementsSerializable只是为了标注该对象是可被序列化的,
然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,
接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),
要恢复的话则用输入流。
19、什么是类的反射机制?
通过类(Class对象),可以得出当前类的fields、method、construtor、interface、superClass、modified等,
同是可以通过类实例化一个实例、设置属性、唤醒方法。
Spring中一切都是返射、struts、hibernate都是通过类的返射进行开发的。