java内存存储变量有栈和堆之分
栈数据是可以共享的 , 堆数据一般是存对象的 , 栈数据中可以保存对数据的内存地址比如引用变量
多线程的时候 暂时有问题 等我在看看
同一个对象数据 是 保存在 堆中的 , 多个线程修改同一个同一个对象的成员变量不存在问题
方法中的形式参数是存在栈上的 , 多个线程同时执行一个方法 , 那么形参就会发生问题 , 比如 行参obj 可以先引用A线程的参数 我们sleep了 B线程执行形参引用是B线程传来的参数 , A继续执行则会发生问题。
本文深入探讨了Java内存管理中的栈和堆的区别与联系,详细解释了它们如何存储数据及对象,并讨论了多线程环境下变量共享的问题。文章还分析了在多线程并发情况下方法参数传递可能引发的问题。
java内存存储变量有栈和堆之分
栈数据是可以共享的 , 堆数据一般是存对象的 , 栈数据中可以保存对数据的内存地址比如引用变量
多线程的时候 暂时有问题 等我在看看
同一个对象数据 是 保存在 堆中的 , 多个线程修改同一个同一个对象的成员变量不存在问题
方法中的形式参数是存在栈上的 , 多个线程同时执行一个方法 , 那么形参就会发生问题 , 比如 行参obj 可以先引用A线程的参数 我们sleep了 B线程执行形参引用是B线程传来的参数 , A继续执行则会发生问题。
1万+

被折叠的 条评论
为什么被折叠?
