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