![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
weixin_42225496
这个作者很懒,什么都没留下…
展开
-
jvm结构篇
12原创 2019-02-28 22:26:44 · 96 阅读 · 0 评论 -
垃圾收集器与内存分配策略篇
背景:GC对对象进行回收前会判定对象是否存活。如何判断对象是否存活得算法?1.引用计数算法有一个地方引用对象时候,计数器就加1,当一个引用失效时,计数器就减一。直到计数器为0时就判定对象不可能再被使用了。缺点:很难解决对象之间得相互引用问题。2.可达性分析算法通过GC Roots得对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引...原创 2019-03-02 16:54:30 · 120 阅读 · 0 评论 -
虚拟机得类加载过程
引言在JAVA语言里面,类型得加载,连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是给JAVA应用程序提供了高度的灵活性。比如 在面向接口编程,运行时我才知道我具体采用哪个实现类去加载 (JAVA反射)。比如 在运行时从网络或者其他地方加载一个二进制流作为代码的一部分。类加载过程分为三个阶段:一 加载这一阶段通过类加载器进行1.从各个地方...原创 2019-03-02 18:32:58 · 228 阅读 · 0 评论 -
JAVA内存模型与线程
JAVA内存模型JAVA虚拟机规范中试图定义一种JAVA内存模型(JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让JAVA程序在各种平台下都能达到一致的内存访问效果。JAVA内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。如图:volatile关键字1.当一个线程对volatile修饰的变量修改了之后,新值是对其...原创 2019-03-03 23:49:38 · 106 阅读 · 0 评论 -
JAVA与线程
实现线程得三种方式:1.使用内核线程内核线程(Kernel_Level Thread KLT)就是直接由操作系统内核支持得线程,这种线程由操作系统内核来完成线程切换,内核通过操纵调度器scheduler对线程进行调度,并负责将线程得任务映射到 各个处理器上。每个内核线程可以视为内核得一个分身。程序一般不会直接去使用内核线程,而是去使用内核线程得一种高级接口-------轻量级进程 (Ligh...原创 2019-03-17 22:48:33 · 95 阅读 · 0 评论