java线程拷贝的共享对象副本是放在jvm哪个空间中?

java多线程可见性的问题,对于实例的成员变量,它引用的对象在堆中,但线程会copy一份作为自己的副本。我想问这个副本是在线程的栈中,还是在堆中新开辟一块空间?

java 内存模型包含5个区:
共享区:方法区、堆
线程私有:虚拟机栈、本地方法栈、程序计数器
所有您说的copy的对象在堆中
具体详情,推荐博客:
https://blog.csdn.net/m0_37602827/article/details/100851772

在堆中,虽说堆是线程共享的区域,但是Java里有个对象叫做ThreadLocal
通过查看ThreadLocal的源码可以知道原理是用Map存储
ThreadLocal可以保证不同的线程有其相对应的map容器来保障