![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
寒剑飘香
这个作者很懒,什么都没留下…
展开
-
jvm学习第一天
与c和c++不同,java的虚拟机拥有自动垃圾回收的机制,使得程序员不必去关注垃圾回收的具体过程,然而或许也正因为如此,一旦出现了java内存泄露或者内存溢出时,排查工作讲变的麻烦,所以,理解jvm还是很有意义的。 一、jvm运行时数据区域:分为方法区,栈(本地方法栈、虚拟机栈),程序计数器,堆。 程序计数器:由于cpu处理线程时采用的是轮询的方式,所以,计数器会帮助cpu完成下一...原创 2012-12-17 23:28:10 · 85 阅读 · 0 评论 -
jvm学习第二天
今天是jvm学习的第二天,继续坚持吧,才刚刚开始。 一、垃圾收集算法,由于垃圾收集算法涉及大量的程序细节,而且每个平台的虚拟机操作内存的方法又各有不同,所以只介绍几种垃圾收集算法的思想。 (1)标记清除算法:先标记处需要回收的对象,然后统一收集,这种方法不好的地方是会产生大量不必要的碎片,当以后程序运行过程中需要分配较大的内存空间时无法找到足够连续的内存单元,从而引发新一轮的垃圾回...原创 2012-12-18 22:21:30 · 86 阅读 · 0 评论 -
jvm学习第三天
今天工作有点忙,没时间学习了,赶紧补上吧。 昨天开始学习class文件结构,今天继续。 一、class类文件结构 Class文件是一组以8位字节为基础单位的二进制流。 根据java虚拟机的规定,Class文件格式采用一种类似于C语言结构体的微结构来存储,这种伪结构只有两种数据类型:无符号数和表。 1、魔数与Class文件的版本,下面是从ue中拷贝出来的十六进制片段 p...原创 2012-12-19 23:29:22 · 57 阅读 · 0 评论 -
jvm学习第四天
继续jvm的学习,昨天学习了根据十六进制的class文件分析还原类结构,今天学习类加载的过程 一、类加载的过程 1、加载(类加载过程中的其中一个过程) (1)通过一个类的全限定名来获取定义此类的二进制字节流 (2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 (3)在java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口 ...2012-12-20 22:29:07 · 64 阅读 · 0 评论 -
BlockQueue之LinkedBlockingQueue源码解析
最近在研究blockqueue的源码,从今天开始,和大家分享一下我看源码的一些心得体会 (1)LinkedBlockingQueue源码解析 (2)ArrayBlockingQueue源码解析 LinkedBlockingQueue实现了BlockingQueue接口以及Serializable接口,是有序的FIFO队列,构造函数中,可...2016-04-27 18:45:01 · 237 阅读 · 0 评论 -
BlockQueue之ArrayBlockingQueue源码解析
前面我们介绍的LinkedBlockingQueue的源码,这篇文章我们一起研究下ArrayBlockingQueue的源码 (1)LinkedBlockingQueue源码解析 (2)ArrayBlockingQueue源码解析 从语义上看,ArrayBlockingQueue底层是基于数组实现的,而LinkedBlockingQueue底层是基于链表实现的(实际是封装为N...2016-04-28 15:48:03 · 322 阅读 · 0 评论