1、什么是线程同步?线程同步会造成什么结果?
线程同步:当两个或两个以上的线程同时访问同一个资源时,为了保护资源的数据安全,只允许同一时间一个线程对该资源进行访问。
同步造成的后果:
1、数据安全
2、效率低下
2、同步使用什么关键字?
synchronized同步关键字
3、线程之间如何通信?
通过wait和notify方法
4、wait和sleep的区别?
1、sleep方法在线程类Thread中定义,wait方法在Object中定义
2、wait方法只能放在同步方法或同步块中,表示当前线程对资源进行等待。sleep方法可以放在任何位置,表示当前线程休眠。
3、wait方法要释放对象锁,sleep方法不会释放对象锁。
4、wait方法使用后,线程需要notify唤醒后才能继续执行。而sleep在休眠结束后,线程自动继续执行。
5、集合的作用是什么?集合的特点是什么?
集合特点:元素类型可以不同、集合长度可变、空间不固定。
Java中对一些数据结构和算法进行了封装即集合。集合也是一种对象,用于存储、检索、操作和传输对象。
6、集合接口的API结构是什么?每个接口有什么特点?
集合的接口:Collection(控制单列数据)(它包含两个子接口:List、Set)、Map(控制键值对)。
List接口的特点:线性(存放元素的顺序和取出的顺序一致),元素可以重复
Set接口的特点:元素不可以重复
Map接口的特点:键值对,一个元素可以存放两个对象,键不能重复
7、List集合添加、删除、替换、得到元素、得到长度是什么方法?
list.add("aaa"); //添加
list.remove(1); // 删除
list.set(0,"bbb"); // 替换
list.size(); // 得到长度
for(int i = 0; i <list.size(); i ++){ //得到元素
Object obj = list.get(i);
System.out.println(obj);
}