Java虚拟机
文章平均质量分 87
Rogera7
先后从事Android手机、Android TV开发
展开
-
Java虚拟机之内存区域概述
Java虚拟机在执行Java程序的过程中会把他所管理的内存区域划分为若干个不同的数据区域,这些区域有各自的用途,以及创建和销毁时间。 1. 程序计数器 程序计数器是一块较小的内存空间,他是当前线程程序所执行的字节码行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程等基础功能都需要依赖这个计数器来完成。 Java虚...原创 2018-04-24 21:58:05 · 161 阅读 · 0 评论 -
Java虚拟机之堆 VS 栈
1、堆 Java堆是用来在运行时给Java对象(Objects)和JRE 类分配内存空间的。 垃圾收集器就是收集堆中没有被引用到的对象。对应用程序来讲,堆是全局的,它可以在应用的任何地方被引用到。 2、栈 java栈内存用于一个线程执行。他们包含了方法中局部变量的值和堆中对象的引用。 栈内存是后进先出(LIFO)顺序的。当一个方法被调用时,就为它分配一块栈空间用于保存方法中的局部变量值和...翻译 2018-05-01 14:26:24 · 202 阅读 · 0 评论 -
Java虚拟机之垃圾收集过程
1、Java技术和JVM 1、JVM体系结构 HotSpot JVM拥有支持强大功能和功能基础的体系结构,并支持实现高性能和大规模可伸缩性的能力。 例如,HotSpot JVM JIT编译器会生成动态优化。 JVM主要的组件包括 classloader、运行时数据区和执行引擎。 2、调优关键组件 下图紫色高亮部分显示了与性能相关的JVM的关键组件。 在调整性能时,JVM有三...翻译 2018-05-01 17:38:59 · 360 阅读 · 0 评论 -
Java虚拟机之String Pool
String Pool 是一块用来专门存放String的堆内存。String类是一个特殊类,创建的对象是不可变的。创建方式可以使用 new 关键字创建,也可以使用双引号 ” ” 创建。 String Pool 有助于为Java Runtime节省大量空间,但需要更多时间来创建字符串以及查找。 1、使用 ” ” 创建String对象 1、直接使用 ” ” 申明 String s1 ...原创 2018-05-01 23:20:31 · 499 阅读 · 0 评论 -
Java虚拟机之垃圾收集算法
内存运行时区域的各个部分中,程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭。栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,所以这几个区域的内存分配和回收都具备确定性,不需要考虑过多的问题。方法结束或线程结束时,内存就跟着回收了。 而Java堆内存分配是动态的,只有在程序运行期间才知道会创建哪些对象。 ...原创 2018-04-24 21:56:56 · 176 阅读 · 0 评论