JVM
文章平均质量分 59
a2370889_com
这个作者很懒,什么都没留下…
展开
-
java线程安全的实现方法总结学习
java语言中的线程安全将安全程度由强到弱排序:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立,共五种情况不可变:典型的就是String类,这个就不多赘言。还有枚举类,以及Number类的部分子类,如Long/Double/BigInteger等大数类型。绝对线程安全:不论运行时环境如何,调用者都不用采取额外的同步措施。相对线程安全:这是大家平常所提到的“线程安全”的级别,如集原创 2018-01-14 16:21:52 · 822 阅读 · 0 评论 -
JVM学习笔记(二)——虚拟机类加载机制
类加载的时机类加载的生命周期:加载验证、准备、解析(统称为连接),其中解析过程不像其他过程那样按部就班,它可以在初始化阶段之后再开始,也就是动态分派的基础,动态绑定。初始化使用卸载什么时候开始类加载,共只有五种情况遇到new,getstatic,putstatic,invokestatic四条字节码指令时。从字面意义上我们就很好理解:(1)new 代表最原创 2018-01-06 15:45:13 · 241 阅读 · 0 评论 -
JVM学习笔记(三)——虚拟机字节码执行引擎
运行时栈结构栈帧是虚拟机进行方法 调用和方法执行的数据结构。它是虚拟机栈的栈中元素。主要由以下四种信息:(1)局部变量表 (2)操作数栈 (3)动态链接 (4)方法返回地址栈帧的大小是在编译时就可以确定的,比如需要多大的局部变量表,操作数栈有多深等等。因此,一个栈帧需要分配多少内存,只受到虚拟机的具体实现影响。符合平时运行逻辑一样,只有栈顶的栈帧元素才有效果,这个被称为当前栈帧,与当原创 2018-01-07 20:40:35 · 243 阅读 · 0 评论 -
JVM学习笔记
java内存区域java内存区域划分为:java堆、方法区(以及运行时常量池)、本地方法栈、虚拟机栈、程序计数器线程共享的区域是:java堆、方法区;线程隔离的是:本地方法栈、虚拟机栈、程序计数器。异常:程序计数器既不抛出StackOverFlow也不抛出OutOfMemoryError;java堆抛出OutOfMemory;本地方法栈和虚拟机栈两者都抛出;方法区抛出OutOfMemo原创 2018-01-02 20:15:36 · 191 阅读 · 0 评论 -
JVM学习笔记(四)——类文件结构、字节码指令
Class类文件的结构Class文件格式:由无符号数和表组成。无符号数属于基本数据类型,以u1/u2/u4/u8代表1、2、4、8个字节的无符号数。这个数可以用来描述数字、索引引用,数量之或者UTF-8编码的字符串值表:和广义表的定义有点像,它的元素可以是多个无符号数或者是其他表。前四个字节为魔数(java是CAFEBABE 咖啡宝贝)、副版本号、主版本号。常量池接原创 2018-01-09 21:00:04 · 220 阅读 · 0 评论