深入理解JVM
2NaCl
主攻Java后端开发与云计算Paas平台、离线大数据平台相关
展开
-
JVM是如何执行方法调用?(上)
其实关于类加载机制和双亲委派在之前已经写过专栏了,链接:https://blog.csdn.net/qq_41936805/article/details/95814739,但是决定再总结一下。先举一个关于变长参数的函数调用的例子:void invoke(Object obj,Object ... args){}void invoke(String s,Object obj,Object ....原创 2019-09-07 11:49:18 · 626 阅读 · 0 评论 -
JVM垃圾回收(上)
其实在之前的专栏中就已经对GC已经了一定的介绍了,现在觉得从更基础的知识进行其他角度的叙述。因为是第二次写关于GC的文章了,所以我也会说一下自己各方面的看法。我们经常写代码,但是从来没有注重过垃圾回收这种东西,因为这是JVM里面自动去做的一种行为,所以可你当没法做到手动那种理想化的精确,那么就会带来一系列的问题。引用计数法和可达性分析GC,顾名思义,就是将分配出去的但是没有使用到,但是却占...原创 2019-09-15 16:55:34 · 133 阅读 · 0 评论 -
JVM垃圾回收(下)
首先我们来看一下JAVA对象的生命周期:我们可以看出,大部分的Java对象只会存活一小波时间,但是存活下来的这少部分的Java对象,将会存活很长一段时间。之所以要提到这个假设,是因为它早就了JVM的分代回收思想。简单来说,就是将堆空间划分成为两代,分为新生代和老年代。新生代用来存储新建的对象。当对象存活时间够长的时候,就会被移动到老年代。JVM可以给不同代使用不同的GC算法:对于新生代,...原创 2019-09-16 09:56:15 · 112 阅读 · 0 评论 -
JVM是如何实现反射的
在我们聊起JVM是如何实现反射的之前,我们先来说一下什么是反射。反射:反射就是在运行过程中获取类的信息,并能调用类的方法。反射是Java语言中一个相当重要的特性,它运行正在运行的Java语言程序观测,甚至是修改程序的状态行为。举例来说,我们可以通过class对象枚举该类中的所有方法,我们还可以通过java的反射包里的Method.setAccessible绕过java语言的访问权限,在私有方...原创 2019-09-17 23:32:25 · 386 阅读 · 0 评论