摘要: JVM参数 -Xms:初始堆大小,默认为物理内存的1/64(<1GB),默认空余堆内存(MinHeapFreeRatio)小于40%时 JVM就会增大堆大小直到-Xmx的最大限制。 -Xmx:最大堆大小,默认空余堆内存(MaxHeapFreeRatio)大于70%时JVM会减少堆大小直到 -Xms的 阅读全文
posted @ 2017-09-28 17:35 BINGJJFLY 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 对象的创建 当虚拟机遇到一条new指令时,首先检查这条指令的参数能否在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否被加载、解析和初始化过,没有的话必须去执行相应的类加载过程。 类加载检查通过后,Java虚拟机为对象实例分配内存。对象所需的内存大小在类加载完成后就已经确定了。 如何分 阅读全文
posted @ 2017-09-28 15:34 BINGJJFLY 阅读(1679) 评论(0) 推荐(0) 编辑
摘要: 引言 JVM执行Java程序时会将它所管理的内存划分为不同的数据区域。各数据区域的生命周期也各不相同,有的随着JVM的启动而创建,有的根据用户的线程的启动和结束而创建和销毁。 程序计数器 程序计数器是一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。字节码解释器就是通过改变这个计数器 阅读全文
posted @ 2017-09-28 13:21 BINGJJFLY 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 引言 Java语言不要求常量一定要在编译期才能产生,也就是并非预置入Class文件中常量池的内容才能进入方法区的运行时常量池,程序运行期间也可以将常量放入池中。 设计字符串常量池的原因 字符串在java程序中被大量使用,为了避免每次都创建相同的字符串对象及内存分配,JVM内部对字符串对象的创建做了一 阅读全文
posted @ 2017-09-28 11:38 BINGJJFLY 阅读(273) 评论(0) 推荐(0) 编辑