
jvm
JustForWorld
我本微末凡尘,也可心向天空
展开
-
编译生成的class文件---字节码内容解析
字节码文件魔数魔数用来表示class文件,由于文件的后缀名可以随意的修改,所以使用魔数来标识一种文件更具安全性每个class文件的前四个字节(u4)称为魔数,作用:确定这个文件是一个能被虚拟机接受的class文件;class 文件的魔数是:0xCAFEBABYclass文件的版本号紧接着魔数后面的就是Class文件的版本号,第5和第6 是次版本号,7,8是主版本号 java 的初...原创 2019-08-08 20:33:45 · 920 阅读 · 2 评论 -
java类的文件结构
类的文件结构概述1.代码编译的结果—从本地机器码到字节码—字节码—才是计算机能够识别执行,字节码是构成无关性平台的基石,实现语言无关性的基础是虚拟机和字节码存储格式2.java虚拟机只和“Class 文件”这种特定的二进制文件 格式进行关联;言外的意思是,多种语言只要能编译成符合规范的Class文件就可以在java虚拟机中执行3. Class文件是一组一8位字节为基础单位的二进制流,各...原创 2019-08-06 21:53:28 · 207 阅读 · 0 评论 -
jvm 中 方法区 永久代 常量池 元数据 这个名字的含义以及关系
方法区:是java虚拟机规范中定义的名字 各个虚拟机实现上有所不同HostSpot虚拟机中1.在jdk1.7 以及前的版本实现的方法区称为- - -永久代2.在java 虚拟机的堆内存中分配3.里面主要存放的内容:已经被虚拟机加载的类信息,常量,静态变量,即时编译后的代码等4.内存回收:主要是常量池的回收 和类型的卸载- -目前的回收效果不好运行时常量池:分配在方法区(永久代)中...原创 2019-09-06 17:30:36 · 1406 阅读 · 1 评论 -
jvm 面试题之就近原则
/** * 就近原则 * * 之所以在不同作用域定义相同变量名不会出错的原因是因为JVM在调用该变量时, * 查找顺序是:先找同一作用域的变量,再找上一级作用域的变量,直到找到一个为止。 * 所以,像在下面代码里面那样命名,并不会让JVM分辨不清。 * * */public class MainTest { static int num = 4; public ...原创 2019-10-10 09:30:09 · 437 阅读 · 0 评论