上一页 1 ··· 6 7 8 9 10 11 12 13 下一页
摘要: 《深入理解Java虚拟机》书中对方法区存储内容描述如下:它用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等 类型信息 对每个加载的类型( 类class、接口interface、枚举enum、注解annotation),JVM必须在方法区中存储以下类型信息: 这个类型的完 阅读全文
posted @ 2020-06-10 15:05 叮叮叮叮叮叮当 阅读(439) 评论(4) 推荐(0) 编辑
摘要: 配置 jdk7及以前: -XX:PermSize来设置永久代初始分配空间。默认值是20.75M -XX:MaxPermSize来设定永久代最大可分配空间。32位机器默认是64M,64位机器模式是82M 当JVM加载的类信息容量超过了这个值,会报异常OutOfMemoryError : PermGen 阅读全文
posted @ 2020-06-10 14:38 叮叮叮叮叮叮当 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 堆、栈、方法区堆关系 概述 方法区与堆区一样,是各个线程共享的内存区域 方法区在JVM启动时就会被创建,并且它的实际的物理内存空间中和Java堆区一样都可以是不连续的 方法区的大小,跟堆空间一样,可以选择固定大小或者可拓展 方法区的大小决定了系统可以保存多少个类,如果系统定义了太多的类,导致方法区溢 阅读全文
posted @ 2020-06-10 14:24 叮叮叮叮叮叮当 阅读(1042) 评论(0) 推荐(0) 编辑
摘要: 引言 在《深入理解Java虚拟机》中关于Java堆内存有这样一段描述:随着JIT编译期的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化,所有的对象都分配到堆上也渐渐变得不那么“绝对”了 在Java虚拟机中,对象是在Java堆中分配内存的,这是一个普遍的常识。但是,有一种 阅读全文
posted @ 2020-06-10 10:54 叮叮叮叮叮叮当 阅读(425) 评论(0) 推荐(0) 编辑
摘要: -XX:PrintFlagsInitial: 查看所有参数的默认初始值 -XX:PrintFlagsFinal:查看所有的参数的最终值(可能会存在修改,不再是初始值) 具体查看某个参数的指令: jps:查看当前运行中的进程 jinfo -flag SurvivorRatio 进程id(Survivo 阅读全文
posted @ 2020-06-10 10:09 叮叮叮叮叮叮当 阅读(264) 评论(0) 推荐(0) 编辑
摘要: TLAB产生的原因 堆区是线程共享区域,任何线程都可以访问到堆区中的共享数据 由于对象实例的创建在JVM中非常频繁,因此在并发环境下从堆区中划分内存空间是线程不安全的 为避免多个线程操作同一地址,需要使用加锁等机制,进而影响分配速度 TLAB是什么 从内存模型而不是垃圾收集的角度,对Eden区域继续 阅读全文
posted @ 2020-06-10 09:56 叮叮叮叮叮叮当 阅读(782) 评论(0) 推荐(0) 编辑
摘要: 概述 如果对象在Eden出生并经过第一次Minor GC后依然存活,并且能被Survivor容纳的话,将被移动到Survivor空间中,把那个将对象年龄设为1,对象在Survivor区中每熬过一次MinorGC,年龄就增加一岁,当它的年龄增加到一定程度(默认15岁,其实每个JVM、每个GC都有所不同 阅读全文
posted @ 2020-06-09 17:21 叮叮叮叮叮叮当 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 分类 针对hotSpot VM的实现,它里面的GC按照回收区域又分为两大种类型:一种是部分收集(Partial GC),一种是整堆收集(Full GC) 部分收集:不是完整收集整个Java堆的垃圾收集。其中又分为: 新生代收集(Minor GC/Young GC):只是新生代的垃圾收集 老年代收集( 阅读全文
posted @ 2020-06-09 17:09 叮叮叮叮叮叮当 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 一般情况 new的对象先放伊甸园区,此区有大小限制 当伊甸园的空间填满时,程序又需要创建对象,出发GC(Minor GC),将伊甸园区中的不再被其他对象所引用的对象进行销毁。再加载新的对象放到伊甸园区 然后将伊甸园中的剩余对象移动到幸存者0区 如果再次触发垃圾回收,此时上次幸存下来的放到幸存者0区的 阅读全文
posted @ 2020-06-09 16:39 叮叮叮叮叮叮当 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 概述 存储在JVM中的java对象可以被划分为两类: 一类是生命周期较短的瞬时对象,这类对象的创建和消亡都非常迅速 另外一类对象时生命周期非常长,在某些情况下还能与JVM的生命周期保持一致 Java堆区进一步细分可以分为年轻代(YoungGen)和老年代(OldGen) 其中年轻代可以分为Eden空 阅读全文
posted @ 2020-06-09 16:27 叮叮叮叮叮叮当 阅读(391) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 下一页