JVM主要由类加载器,运行时数据区,执行引擎三部分组成。 一. 概述 在JAVA语言规范中,boolean类型的值只有两种,true和false 在JAVA虚拟机规范中,boolean类型被映射成int型。 执行每一条指令之前,Java 虚拟机要求该指令的操作数已被压入操作数栈中。在执行指令时,Java 虚拟机会将该指令所需的操作数弹出,并且将指令的结 ...
JVM主要由类加载器,运行时数据区,执行引擎三部分组成。 一. 概述 在JAVA语言规范中,boolean类型的值只有两种,true和false 在JAVA虚拟机规范中,boolean类型被映射成int型。 执行每一条指令之前,Java 虚拟机要求该指令的操作数已被压入操作数栈中。在执行指令时,Java 虚拟机会将该指令所需的操作数弹出,并且将指令的结 ...
一、Class对象 无符号数是一种基本数据类型,以 u1,u2,u4,u8 来分别代表 1个字节、2个字节、4个字节、8个字节的无符号数,无符号数可以用来描述数字、索引引用、数量值或按照 UTF-8 编码构成的字符串值。 表是由多个无符号数或其它表作为数据项所构成的复合数据类型,所有表都习惯行的以“_info”结尾。表用于描述有层次关系的复合结构数据。 ...
0. 原子性、可见性、有序性 并发编程中引起非线程安全的主要原因是共享变量的原子性、可见性、有序性。 原子性:一个操作或多个操作要么全部执行完成且执行过程不被中断,要么就不执行。 > 对共享变量操作不满足原子性,多线程访问会造成数据不一致。 可见性:当多个线程同时访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。 有序性:程序执行 ...
一、结构 运行时数据区 程序计数器 方法区 堆 虚拟机栈 本地方法栈 分区有助于有效率的处理JVM中产生的对象和数据 其中方法区和堆是线程共享的,虚拟机栈。 ...
概述 算法 标记-清除(Mark-Sweep) 位置不连续,容易产生碎片 标记和清除需要两遍扫描,都比较耗时 复制(Copying) 没有碎片产生 50%的空间浪费 标记-整理(Mark-Compact) 没有碎片产生 扫描和移动指针,效率低 指标 吞吐 ...