1. 说出ArrayList,Vector, LinkedList的存储性能和特性?(面试题) Vector和ArrayList的区别 Vector是线程安全的,效率低 ArrayList是线程不安全的,效率高 共同点:都是数组实现的 ArrayList和LinkedList的区别 ArrayList底层是数组结果,查询和修改快 LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢 共同点:都是线程不安全的 2. 说说 is a 和 has a 的区别?(面试题) 体现:is a 抽象类被继承,这个类中定义的是整个继承体现的共性内容。 体现:like a 接口被实现,这个接口中定义的是整个体现的扩展内容。 3. jdk中哪些类是不能继承的?(面试题) 不能继承的是类是那些用final关键字修饰的类。一般比较基本的类型或防止扩展类无意间破坏原来方法的实现的类型都应该是final的,在jdk中System,String,StringBuffer等都是基本类型。 4. 39.HashMap和Hashtable的区别?(面试题) HashTable: 线程安全,效率低,不允许null键和值 HashMap: 线程不安全,效率高,允许null键和值 如果要从Hashtable或者ConcurrentHashMap中选择,我们用ConcurrentHashMap 5. List 和 Map 区别?(面试题) 6. java中实现多态的机制是什么?(面试题) 靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象, 而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。 7. 静态变量和实例变量的区别?(面试题) * 静态变量也叫类变量 成员变量也叫对象变量 * A:所属不同 * 静态变量属于类,所以也称为为类变量 * 成员变量属于对象,所以也称为实例变量(对象变量) * B:内存中位置不同 * 静态变量存储于方法区的静态区 * 成员变量存储于堆内存 * C:内存出现时间不同 * 静态变量随着类的加载而加载,随着类的消失而消失 * 成员变量随着对象的创建而存在,随着对象的消失而消失 * D:调用不同 * 静态变量可以通过类名调用,也可以通过对象调用 * 成员变量只能通过对象名调用 8. IO操作中为什么要释放资源?(面试题) 9.
flush()和close()有什么区别?(面试题) * flush()方法 * 用来刷新缓冲区的,刷新后可以再次写出 * close()方法 * 用来关闭流释放资源的的; 如果是带缓冲区的流对象的close()方法,不但会关闭流,还会再关闭流之前刷新缓冲区,关闭后不能再写出 flush只刷新缓冲区,不释放流资源,流对象还可以继续使用 close刷新并且释放流资源,流对象不可以继续使用
|