问题描述
- java中static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢
-
栈内存:局部变量和对象的引用变量; 堆内存:对象; 以上是我所知道的,那么static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢
解决方案
static和普通方法都存在堆内存中,堆内存有个永久区permgen,这里面会存类信息。
所以不断的加载类或jar包可能出现permgen oome的错误。
static是在堆内存的数据区。
解决方案二:
java static 变量与方法
java中static变量和方法的总结
java中static变量和方法的总结
解决方案三:
这个问题你得先了解JVM中内存回收机制,现在用的是分代回收机制,分为新生代,老年代和终生代,声明为static的属性和方法是放在终生代的,存放在此区的数据GC是不会去回收的
解决方案四:
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块。
栈内存:基本类型数据和对象的引用变量;
堆内存:new的对象和数组;
解决方案五:
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块。
栈内存:基本类型数据和对象的引用变量;
堆内存:new的对象和数组;
解决方案六:
自己声明的在堆中,系统声明的在栈中
时间: 2024-11-03 08:39:32