JAVA基本知识点

一,抽象类和接口区别
1,抽象类表示的是继承关系(is A),一个类只能继承一个类,但一个类却可以实现多个接口。
2,抽象类可以包含抽象的方法,也可以包含非抽象的方法。而接口只能包含静态的final的数据成员,而且都是抽象的
3,设计理念不同:抽象类是IS-A关系,接口是LIKE-A关系。(当一个行为和类的所有属性和方法不相关时,应该采用接口,不能使用抽象,否则违反面向对象的ISP规则和OCP规则)。抽象类体现继承关系,接口体现契约关系。接口不要求其实现者和接口定义在概念本质上市一致的
4,实现抽象类和接口的类必须实现其所有方法。接口可以包含非抽象的方法,接口不能有实现的方法
5,接口中定义的变量默认是 public static final,且必须给其初值。实现类不能重新定义,也不能改变。变量也可以为 friednly
6,抽象类的变量默认是 friendly 类型的。
7,接口中的方法默认是:public,abstract

 

二,hashtable和hashmap的区别
1,hashtable的方法是同步的,hashmap方法是不同步的
2,hashmap可以将null作为key或者value,hashtable不可以
3,初始数组大小不一样,hashmap是16,hashtable是11
4,扩容机制不一样,hashmap是旧的*2,hashtable是旧的*2+1
5,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。  
6,Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现

7.两句话总结: 
8.HashMap => 不同步、空键值、效率高; 
9.Hashtable => 同步、非空键值、效率略低

(Properties是hashtable的子类 设计用于string keys,values。Store()方法把一个Properties对象的内容以一种可读的形式保存到一个文件中。Load()方法正好相反,用来读取文件,并设定Properties对象来包含keys和values)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值