Java工程师必须了解的基本知识(1)

作为一个Java工程师,你必须了解Java的基本知识。

1. final, finally, finalize 的区别?

final 是一个修饰符,可以修饰类、方法和变量。final的主用目的是使那些被它修饰的类,方法和变量不被修改。final修饰变量时必须初始化,让其只能读取;final修饰方法,使其不能被重载;一个类用final修饰,那么它不能被派生或继承。所以,一个类不能既用abstract声明,又用final修饰。

finally 是try....catch块最后必须执行的清理操作。

finalize是一个一个方法名,在垃圾回收器将对象从内存中清楚出去之前必要的清理工作,即垃圾回收器删除对象之前被调用。垃圾回收器确定对象没有被引用后调用这个方法。finalize在Object对用中已经被定义,所有的对象多继承了这个方法。子类覆盖这个方法来完成系统清理或者其他的清理工作

小结: finalize()方法不是经常用到,你以前可能不太了解.

2. interface与abstract的区别与联系,请做解析?

a. 抽象类是一个包含一个或者多个的抽象方法,并能够被子类派生的类。抽象类可以有抽象方法,也可以有具体的实现方法。接口则仅仅包含方法的定义,不可修改的公共静态常量,它不能实现具体的类。

b. 抽象的类是以abstract关键字开头来定义, 而接口类是以interface开头来定义。当一些方法需要被子类实现,而另一些方法需要被继承并使用时,可以使用抽象类;当所有的方法和属性需要被子类实现是,可以使用接口类。

c. 在接口类中,默认的情况下,所有的变量都是(public static final )不可修改的静态公共常量,而抽象类中能够有实例变量。

d. 抽象类不支持多重继承,然而,接口支持多重继承。

e. 抽象类能够包含私有(private),保护(protected)成员,而接口只能有公共(public)成员。

f. 一个类派生抽象类时,可以不必覆盖的所有的继承的抽象类里的抽象方法,而接口的实现类类必须实现所有的接口中的方法。

g. 由于接口需要非定向地去寻找相对应实现类中的方法, 接口会慢一点,而抽象类快一些。

h. 接口常常用作描述一个类的外围功能,而不是充当转接的身份。


3. 比较Hashtable与Hashmap的区别?
Hashmap 允许null key and null value以及不同步(unsynchronized)的,而Hashtable 不容许key , value 为null,他是线程安全的,即可以进行同步操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值