1.ArrayList和vector区别
- (线程的状态不同)ArrayList是线程不安全的,(线程异步),性能较好;vector是线程安全的(线程同步)
- (扩容空间不同)当他们将要储存的数据超过初始大小时,arrylist将增加初始容量的一半的空间,而vector要增加初始容量一倍的空间
2.说一下面向对象的几大特征
- 抽象,抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面,抽象只关注对象的哪些属性和行为,并不关注这此行为的细节是什么
- 封装,封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口
- 继承,继承是从已有类得到继承信息创建新类的过程,继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段.子类继承父类属性(静态特征)和方法(动态特征),继承必须遵循封装当中的控制访问
- 多态,多态性是指允许相同或不同子类型的对象对同一消息作出不同响应(overload,override)
3.接口和抽象类
-
接口是通过interface关键字实现的,在其中只能写抽象方法,字段只能是全局常量,其子类是通过implement实现接口
-
都不能被实例化(没有构造方法)
-
抽象类是通过abstract关键字实现的 可以写抽象方法,也可以写其他方法.抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。
父类包含了子类集合的常见的方法,但是由于父类本身是抽象的