作者回复: volatile的使用,需要一定程度的同步,也就是你说的拷贝开销。减少volatile变量的引用,可以提高效率。
恭喜你,这些Java的难点你掌握的很扎实!
作者回复: 关于temporaryMap的使用,请参考@yang的留言。
作者回复: 是的,是以对象为单位的。 所以,你看Java的代码里,synchronized(this), this指的就是一个具体的对象。同一个类,实例化的对象不同,也不需要同步。
作者回复: volatile修饰符和使用concurrent hash map关系不大。volatile修饰的是标志符,不是标志符指向的内容。
作者回复: 👍都是很好的实践经验! 了解适用场景,是高效代码的关键。
作者回复: tempHashmap是一个局部变量,不跨越线程。
作者回复: 现在推荐使用的模式是声明时指定类型,使用时让编译器来自动匹配。对于上面的代码,也就是左边声明具体类型,而右边使用空指示符。这样做的主要目的是简化编码,避免不必要的失误和检验。