1.字符串
A:字符串一旦被赋值就不能被改变。
B:String s = new String("hello")和String s = "hello";的区别
前者创建了2个对象
后者创建了1个对象
2.集合和数组的区别?(面试题)
3.用迭代器遍历集合的时候,用集合修改集合有没有问题?如果有,怎么解决?
会ConcurrentModificationException:并发修改异常。
// 创建集合
List list = new ArrayList();
list.add("zhangsan");
list.add("lisi");
list.add("wangwu");
// 有问题
// Iterator it = list.iterator();
// while (it.hasNext()) {
// String s = (String) it.next();
// if ("lisi".equals(s)) {
// list.add("zhaoliu");
// // it = list.iterator();
// } }
// 用集合实现
for (int x = 0; x < list.size(); x++) {
String s = (String) list.get(x);
if ("lisi".equals(s)) {
list.add("zhaoliu");
}
}
// 用迭代器实现
ListIterator lit = list.listIterator();
while (lit.hasNext()) {
String s = (String) lit.next();
if (list.equals("lisi")) {
lit.add("zhaoliu");
} }
LinkedList模拟栈数据结构的集合,并使用。
public void add(Object obj) {
link.addFirst(obj);
}
public Object get() {
// return link.getFirst();
return link.removeFirst();
}
public boolean isEmpty() {
return link.isEmpty();
}
}
5.Map和Collection集合的区别(面试题)
A:Map集合存储的是键值对形式的元素。
Collection集合存储的是单个的元素。
B:Map集合的键是唯一的。
Collection的儿子Set集合元素是唯一的。
C:Map集合的值是可以重复的。
Collection的儿子List集合的元素是可以重复的。
6.Hashtable和HashMap的区别?(面试题)
A:HashMap 线程不安全,效率高。允许null键和null值。
B:Hashtable 线程安全,效率低。不允许null键和null值。
7.flush()和close()的区别?
8.多线程程序出现安全问题的原因:
9. sleep()和wait()方法的区别?
sleep():必须指定时间。不释放锁对象。
wait():可以指定时间,也可以不指定时间。释放锁对象。
10.单例模式
要求:类在内存中的对象只有一个。
举例:打印机,网站访问量计数
分类:
饿汉式 加载就创建对象。
懒汉式 用的时候才去创建对象。
请问我们要掌握哪种方式?
开发:饿汉式
面试:懒汉式
为什么?
因为饿汉式不会出现线程安全问题。
懒汉式:
线程安全问题。你要能够给比人分析出安全问题的原因,并最终提供解决方案。延迟加载思想。(懒加载思想。)
Runtime本身就是一个饿汉式的体现。
2025 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123