1、ArrayList、LinkedList、Vector的区别
(1)baiArrayList、Vector、LinkedList类都是java.util包中,均为可伸缩数组。
(2)ArrayList和Vector底层都是数组实现的,所以索引数据快,删除、插入数据慢。
(3)ArrayList采用异步的方式,性能好,属于非线程安全的操作类。Vector采用同步的方式,性能较低,属于线程安全的操作类。
(4)LinkedList底层是链表实现,所以,索引慢,删除、插入快,属于非线程安全的操作类。
2、HashMap和HashTable的区别,Hashmap实现原理
3、String和StringBuffer的区别
(1)String:
•是对象不是原始类型。
•为不可变对象,一旦被创建,就不能修改它的值。
•对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去。
•String是final类,即不能被继承。
(2)StringBuffer:
•是一个可变对象,当对它进行修改的时候不会像String那样重新建立对象。
•它只能通过构造函数来建立,StringBuffer subffer=new StringBuffer();
•对象被建立以后,在内存中就会分配内存空间,并初始保存一个null,通过它的•append方法向其赋值 subffer.append(“hello word”);
(3)字符串连接操作中StringBuffer的效率要明显比String高;
String对象是不可变对象,每次操作String都会建立新的对象来保存新的值。
StringBuffer对象实例化后,只对这一个对象操作。
4、gc的概念,如果A和B对象循环引用,是否可以被GC?
5、Java中的内存溢出是如何造成的 ,知道内存泄漏吗?原因?
6、String s = “123”;这个语句有几个对象产生
7、Exception和RuntimeException的区别,作用又是什么?
8、java异常体系知道吗?error和exception有什么区别?
9、FileInputStream与FileReader区别。
FileInputStream是字节流,FileReader是字符流,用字节流读取中文的时候,可能会出现乱码,而用字符流则不会出现乱码,而且用字符流读取的速度比字节流要快;
10、char型变量中能不能存贮一个中文汉字?为什么?
11、List、Set、Map是否都继承自Collection接口? 他们的区别
12、java反射中的应用场景
13、注解用过吗?作用是什么?
14、java编译时和运行时有什么区别?
15、知道socket吗?和Websocket有什么区别?
全部评论
(2) 回帖