
JVM
pHscccr_Ayyx
新手JavaProgrammer-
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java-GC(Gabage Collection)
首先,引入三个问题,通过这三个问题的步步深入来解决对GC的困惑:jvm怎么确定哪些对象应该进行回收jvm会在什么时候进行垃圾回收的动作jvm到底是怎么清楚垃圾对象的这里先提到JVM运行时数据区和JVM内存结构:JVM运行时数据区由程序计数器、堆、虚拟机栈、本地方法栈、方法区部分组成,结构图如下所示。JVM内存结构由程序计数器、堆、栈、本地方法栈、方法区等部分组成,结构图如下所...转载 2019-01-12 12:40:40 · 230 阅读 · 0 评论 -
初始-Java运行时数据区
1.程序计数器程序计数器(Program Counter Register) 是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条执行字节码指令。每条线程都有一个独立的程序计数器。如果执行的是java方法,这个计数器记录的是正在执行的虚拟机字节码指令地址。如果是native方法,计数器为空。此内...转载 2019-01-16 22:55:33 · 122 阅读 · 0 评论 -
Minor GC ,Full GC 触发条件
从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC;对老年代GC称为Major GC;而Full GC是对整个堆来说的;在最近几个版本的JDK里默认包括了对永生带即方法区的回收(JDK8中无永生带了),出现Full GC的时候经常伴随至少一次的Minor GC,但非绝对的。Major GC的速度一般会比Minor GC慢10倍以上。下边看看有那种情...转载 2019-02-21 15:59:34 · 311 阅读 · 0 评论 -
深入理解volatile关键字-(volatile有什么作用?)
volatile - 被其修饰的变量所具有的特性1、保证该变量对所有线程的可见性;2、禁止指令重排序优化。原创 2019-02-25 14:52:37 · 738 阅读 · 0 评论 -
JVM的符号引用和直接引用
在读《深入理解JVM虚拟机》一书的类加载机制章节中,在类加载过程中的解析中提到“符号引用转换为直接引用”,对这块的概念不是很了解,遂记录此博客。在JVM中类加载过程中,在解析阶段,Java虚拟机会把类的二进制数据中的符号引用替换为直接引用。1.符号引用(Symbolic References):符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到...转载 2019-03-07 10:33:07 · 380 阅读 · 0 评论 -
JVM调优
对于单线程情况下,无论如何抛出的都是StackOverflowError。如果要抛出OOM异常,导致的原因是不断地在创建线程,直到将内存消耗殆尽。JVM的内存由堆内存 + 方法区内存 + 剩余内存,也就是剩余内存 = 操作系统分配给JVM的内存 - 堆内存 - 方法区内存。-Xss设置的是每个线程的栈容量,也就是说可以创建的线程数量 = 剩余内存 / 栈内存。此时如果栈内存越大,可以创建...原创 2019-03-21 11:59:41 · 121 阅读 · 0 评论 -
MinorGC、MajorGC、FullGC的异同-自我认知
最近看JVM书籍,在GC这一章节被几种常见的GC类型困扰,根据书籍上的描述和资料查找,大致作出以下归纳,如有不对,请各位看官在评论区指正。Minor GC:从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC。每次 Minor GC 会清理年轻代的内存。指发生在新生代的垃圾收集动作,因为Java对象大多都具备朝生夕死的特性,所以MinorGC非常...原创 2019-04-09 15:48:29 · 703 阅读 · 0 评论