美文网首页
堆、栈、方法区

堆、栈、方法区

作者: Kitlen | 来源:发表于2017-10-23 20:25 被阅读0次

    转载;http://blog.csdn.net/zly921112/article/details/61192747

    java的jvm的内存分为三块:

    :

    实例对象和数组对象。被所有线程共享。

    分为新生代(1 Eden +2 survivor)和老年代(old )

    为了垃圾回收,根据对象存活期的长短,分为新生代和老年代。垃圾回收时分别采用复制算法(所以有eden区和两个survivor区)、标记整理和标记清除算法

    栈:

    基础数据类型和自定义对象的引用。每个线程有一个栈区,栈中数据私有,其他栈不可访问

    方法区:

    java8之前,方法区也叫(永久代)静态区,包含整个程序中的唯一变量,如class、   static等等。被所有线程共享。运行时,常量池分配在这。

    首先理清方法区的实现有永久代和元空间。jdk1.8前方法区的实现是永久代;jdk1.8后方法区的实现是元空间,使用的是本地内存。存放类的属性、静态变量、常量、方法等,字符串常量池还是存放在堆中,也仅仅是字符串常量的实例化对象在常量池中。

    相关文章

      网友评论

          本文标题:堆、栈、方法区

          本文链接:https://www.haomeiwen.com/subject/anfzuxtx.html