zyf4005
2016-04-25 05:36
采纳率: 78.3%
浏览 2.9k
已采纳

java中static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢

栈内存:局部变量和对象的引用变量;
堆内存:对象;
以上是我所知道的,那么static变量和static方法以及普通方法在那个内存中存储呢?
请高手指点,谢谢
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • little_how 2016-04-25 05:41
    已采纳

    static和普通方法都存在堆内存中,堆内存有个永久区permgen,这里面会存类信息。
    所以不断的加载类或jar包可能出现permgen oome的错误。
    static是在堆内存的数据区。

    点赞 评论
  • 我用py 2016-04-25 05:51

    这个问题你得先了解JVM中内存回收机制,现在用的是分代回收机制,分为新生代,老年代和终生代,声明为static的属性和方法是放在终生代的,存放在此区的数据GC是不会去回收的

    点赞 评论
  • Army_jun 2016-04-25 06:46

    static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块。
    栈内存:基本类型数据和对象的引用变量;
    堆内存:new的对象和数组;

    点赞 评论
  • Army_jun 2016-04-25 06:46

    static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块。
    栈内存:基本类型数据和对象的引用变量;
    堆内存:new的对象和数组;

    点赞 评论
  • ArthurJava 2016-04-26 05:43

    自己声明的在堆中,系统声明的在栈中

    点赞 评论

相关推荐 更多相似问题