
jvm
文章平均质量分 85
alex_i
分享有趣和有用
展开
-
深入理解jvm(三):类的加载机制
一个阑风伏雨 灯火闪烁的早晨上学期参加微软的编程之美大赛时,曾观看过一些直播视频教程,里面有一位导师讲到了“细节决定成败”时,举了个例子。他画了张图,是一匹只有一个轮廓的马,然后另一张图帮助之前那种轮廓填充了细节,图中的马立刻变得活灵活现。类似的,乔布斯也曾提过:他父亲在制作箱子时总是把箱子内侧做得和外侧一样偏亮,所以在设计mac时,我也要保证他的内部一样的井然有序。《史记陈涉》中也提过:若为庸耕,原创 2017-08-08 14:13:40 · 290 阅读 · 0 评论 -
深入理解jvm(四):虚拟机字节码执行引擎
运行时栈帧每一个方法从调用开始到执行完成都对应着一张栈帧的进栈和出栈。栈帧中存储着局部变量表,操作数表,动态链接和方法返回地址。位于虚拟机最顶层的称为当前方法栈。局部变量表储存当前方法的局部变量和参数,局部变量表的容量以变量槽slot(32位)为存储单位。对于64位的数据,通过连续分配两个slot高位对齐的方式储存,由于局部变量表表是线程私有的,所以连续读取两个slot不会引起安全问题。局部变量表的原创 2017-08-09 13:58:41 · 504 阅读 · 0 评论 -
深入理解jvm(五):java内存模型和线程
随心所欲,不拘一格,放浪形骸,胡写一通内存模型为了实现高效的并发,java的内存分为主内存和工作内存(类比于计算机的内存和缓存模型)。每一条内存都有一块自己的工作内存,并管理自己的工作内存。如果线程间需要共享数据则使用 store 和 load操作去主内存区进行数据的读写。在每一次线程超过工作内存往主存读写数据时,都会换得系统的管程,以保证读写操作的互斥性。除了上文提及的store 和 load 操原创 2017-08-11 14:47:09 · 390 阅读 · 0 评论