1.java面向对象有哪些特征?
答:封装,继承,多态
封装:隐藏了类内部的实现机制,在不影响使用的情况下改变了类的内部结构,保护了内部的数据,对外界来说,内部细节隐藏。增加了代码的可维护性便于修改。
继承:子类继承父类,子类可以拥有父类不具有的一些属性和方法。
多态:多态必备的三要素,封装、继承、父类引用指向子类对象。多态指的是类与类的关系,两个类继承同一个父类,同时对父类的方法进行重写。
2 ArrayList和LinkedList的区别?
ArrayList的底层是数组
LinkedList的底层是链表
所以,对于查找来说,ArrayList更适合,O(1),而LinkedLsit的时间复杂度为O(n)
对于删除和插入来说LinkedList更适合,时间复杂度为O(1),而ArrayList的shijianfzd为O(n)
3 高并发中的集合有什么问题
第一代线程安全集合类采用:Vector,Hashtable,采用synchronized修饰方法
第二代线程非安全集合类:ArrayList,HashMap ,采用Collections。synchronizedList
底层使用synchronized代码块锁
第三代线程安全集合类:java.util.concurrent.*