ShineYoung

导航

 

2019年3月12日

摘要: 本文参考自https://infoq.cn/article/java-memory-model-1 JMM是指Java内存模型,这个和JVM内存区域划分是不同的东西,之前有在讲volatile关键字时提到,这个做个详细的讲解。 为什么要了解JMM呢?并发编程时我们都知道多线程通信有两种主要的方法:共 阅读全文
posted @ 2019-03-12 18:12 ShineYoung 阅读(132) 评论(0) 推荐(0) 编辑
 
摘要: 说起GC,我们要思考的主要有三件事 哪些内存需要回收 那些已经“死去”的对象,那么哪些对象“死”,哪些对象“活”呢,有个简单的办法 引用计数法,但是没法解决循环依赖问题 所以Java虚拟机采用的是可达性分析算法 这个算法通过一系列称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,如果 阅读全文
posted @ 2019-03-12 17:54 ShineYoung 阅读(82) 评论(0) 推荐(0) 编辑
 
摘要: 转载自:http://blog.csdn.net/qq_25868207/article/details/55259978 ;##ArrayList实现原理要点概括 参考文献:http://zhangshixi.iteye.com/blog/674856l ArrayList是List接口的可变数组 阅读全文
posted @ 2019-03-12 17:54 ShineYoung 阅读(153) 评论(0) 推荐(0) 编辑
 
摘要: (图片来自https://www.cnblogs.com/whgk/p/6138522.html) 先从线程私有区开始介绍 虚拟机栈 Java虚拟机栈是由一个个栈帧组成的,当一个方法被调用时,代表这个方法的栈帧入栈,当这个方法结束时,栈帧出栈。可以理解栈帧为方法的运行空间,存放存储局部变量表、操作数 阅读全文
posted @ 2019-03-12 15:42 ShineYoung 阅读(169) 评论(0) 推荐(0) 编辑
 
摘要: 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上 阅读全文
posted @ 2019-03-12 15:31 ShineYoung 阅读(83) 评论(0) 推荐(0) 编辑