JAVA面试题目

来源:互联网 发布:sql 字段值累加 编辑:程序博客网 时间:2024/05/16 23:53
.final,finally,finalize的区别?1.final,finally,finalize的区别?
final用于声明属性,方法和类;分别表明属性不能修改(变量变常量),方法不能重写(覆盖),类不能被继承。
finally是异常处理语句结构的一部分,try--catch--finally,表示必须执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾回收时的其他资源回收,例如关闭文件等。

2.HashMap和HashTable的区别?
HashMap是HashTable的轻量级实现(非线程安全的实现),它们都实现了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上高于HsahTable。

3.Collection和Collections的区别?
Collection是集合类的上级接口,继承于它的接口主要有Set和List。
Collections是针对集合类的一个帮助类,它提供了一系列静态方法实现了对各种集合的排序,搜索和线程安全等操作。

4.GC是什么?为什么要有GC?
GC是垃圾收集的意思(Garbage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的。

5.sleep()和wait()的区别?
sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间(Thread.sleep(1000)),把执行机会给其它线程,但监控状态依然保持,到时候自动恢复;调用sleep不会释放对象锁。
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

6.Overload和Override的区别?
方法的重载(Overload)和重写(Override)是java多态性的不同表现。
重写是父类与子类之间多态性的一种表现;重载是一个类中多态性的一种表现。
如果在子类中定义的方法与其父类具有相同的名称和方法参数,则称该方法被重写;
子类的对象使用这个方法时,将调用子类中的定义,父类中的定义如同被“屏蔽”了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数,或有不同的参数类型,则称方法的重载;
重载的方法是允许改变返回值类型的。 

 
原创粉丝点击