Java后端
·07-20 21:05Day 102
✅ 今天做了:
1. 背单词√
2. 面试题:√
总结:
单词复习:
认识:50,模糊:25,忘记:35,顽固:5
问题:
浅拷贝与深拷贝:主要区别在于,对象内部的成员,如果存在引用类型,那浅拷贝会导致原对象以及拷贝的对象使用的引用数据是同一份(拷贝的是地址),深拷贝是对这段引用类型的数据也完全拷贝过来。
实现深拷贝的方法:1.拷贝构造函数 2.序列化 3. 重写clone方法
少量修改 -> String
单线程大量修改 -> StringBuilder
多线程大量修改 -> StringBuffer (谨慎使用)
一个类里面,有两个方法,这两个方法都用当前这个类的静态锁,那多线程的时候,是依次还是并发执行?
使用隐式锁即 synchronized 直接加在方法上:
- 如果是同一个对象实例:它们使用的是同一把实例锁(this),所以是依次执行(互斥)的。
- 如果是不同的对象实例:每个对象都有自己独立的 this 锁,所以它们之间可以并发执行。
使用的是显式锁(如 ReentrantLock):
- 如果是同一个对象实例:两个方法竞争的是同一个 lock 对象,所以是依次执行(互斥)的。
- 如果是不同的对象实例:每个对象都有自己独立的 lock 成员变量,所以它们之间可以并发执行。
使用了特定的静态锁对象:
- 无论是不是同一个对象实例,因为锁是 static 的(全局唯一),所以它们始终是依次执行(互斥)的。
耦合与解耦:
耦合 (Coupling):模块之间“绑得有多紧”。
解耦 (Decoupling):把绑得紧的模块“松开”,让它们各自独立。
3
1
分享
操作
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
