- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 一个程序员对爱情的思考
爱情本来就与职业无关,可是经常会有一些职业与爱情的调侃,其中关于程序员这个职业调侃应该是比较多的,大家总喜欢给我们这个职业贴上一些标签。业外人看来,我们可能是一副不修边幅,不善交际的,身体亚健康的形象,当然了,我们这样的一群人,应该也是找不到女朋友的。我没有女朋友,大多对这些标签一笑而过,偶尔也会反感这些对我们职业的标签,那么真实的我们,程序员这个职业对我们有什么影响呢?我们的职业对我们有什么的影响
2017-07-31 00:17:56 660
原创 Java基本数据类型在内存中的存储大小实践
探讨的问题 一直比较疑惑如果一个很大的list在内存中存储的话,会占用多少内存空间呢?太大的话,这部分数据会直接进入堆内存,从而可能导致频繁的full gc。下面结合基本数据类型组成的对象,组成的list,通过生成的文件的大小来分析这个问题。//首先构造一个大的list转换成byte[],然后写入到文件里面去。 public class SerializeDemo { public stat
2017-07-27 13:10:05 818
转载 JVM学习05——垃圾收集器
HotSpot JVM收集器 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。 Serial(串行GC)收集器 Serial收集器是一个新生代收集器,单线程执行,使用复制算法。它在进行垃圾收集时,必须暂停其他所有的工作线程(用户线程)。是Jvm client模式下默认的
2017-07-23 17:02:51 330
转载 JVM学习04——垃圾收集算法
跟踪收集器 跟踪收集器采用的为集中式的管理方式,全局记录对象之间的引用状态,执行时从一些列GC Roots的对象做为起点,从这些节点向下开始进行搜索所有的引用链,当一个对象到GC Roots 没有任何引用链时,则证明此对象是不可用的。 下图中,对象Object6、Object7、Object8虽然互相引用,但他们的GC Roots是不可到达的,所以它们将会被判定为是可回收的对象。
2017-07-23 16:58:40 342
原创 JVM学习02——对象的创建与访问
对象的创建 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,则先执行相应的类加载过程。类加载检查通过后,接下来虚拟机将为新生对象分配内存。为虚拟机分配内存的任务等同于把一块确定大小的内存从Java堆中划分出来。 在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对
2017-07-23 16:36:21 271
原创 JVM学习03——类加载机制
类加载机制 JVM把class文件加载的内存,并对数据进行校验、转换解析和初始化,最终形成JVM可以直接使用的Java类型的过程就是加载机制。 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸
2017-07-12 00:17:27 357
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人