会,用 TLAB 也就是线程本地分配缓冲区

会,假设 JVM 虚拟机上,每一次 new 对象时,指针就会向右移动一个对象 size 的距离,一个线程正在给 A 对象分配内存,指针还没有来的及修改,另一个为 B 对象分配内存的线程,又引用了这个指针来分配内存,这就发生了抢占。

有两种可选方案来解决这个问题:

Untitled

参考

https://blog.csdn.net/zgz15515397650/article/details/119383089

https://www.jianshu.com/p/8be816cbb5ed