9、Java中Collection和Collections的区别?
答:
java.util.Collection是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,Collection接口在Java类库中有很多具体的实现,Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
java.util.Collections是一个包装类,它包含各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
10、ArrayList和Vector的区别,HashMap和HashTable的区别?
答:
(1)ArrayList 和 Vector的区别主要从两方面来说
同步性:Vector是线程安全的,也就是同步的,ArrayList是线程不安全的,也就是不同步的。
数据增长:当需要增长时,Vector默认增长为原来的一杯,而ArrayList却是原来的一半。
(2)HashMap和HashTable的区别
历史原因:HashTable是基于陈旧的Dictionary类,HashMap是java1.2引进的Map接口的一个实现。
同步性:HashTable是线程安全的,也就是同步的,HashMap是线程不安全的,也就不是同步的。
值:只有HashMap可以将空值作为一个表的条目的key或value。
11、interface和abstrac的区别?
答:
(1)相同点
a、两者都是抽象类,都不能实例化
b、interface实现类及abstract class的子类都必须要实现已声明的抽象方法
(2)不同点
a、interface需要实现要用implements,而abstract class需要用继承entends
b、一个类可以实现多个interface,但一个类只能继承一个abstract class
c、interface强调特定功能的实现,而abstract class强调所属关系
12、Overload和Override的区别?
答:
Overload:重载,它可以表现类的多态性,可以是函数里可以有相同的函数名,返回值,类型不能相同,或者说可以改变参数类型、返回值,但函数名字依然不变。
Override:重写,在子类继承父类的时候子类中可以定义某方法与其父类有相同的名称和参数,当子类在调用这一函数时自动调用子类的方法,而父类相当于被覆盖了。
方法Overriding和Overloading是Java多态性的不同表现,Overriding是父类与子类之间多态性的表现,重载是类中多态性的表现。