JAVA虚拟机15---虚拟机的类加载机制
摘要:1.概述 在Class文件中描述的各类信息,最终都需要加载到虚拟机中之后才能被运行和使用。而虚拟机如何加载这些Class文件,Class文件中的信息进入到虚拟机后会发生什么变化,这就涉及到虚拟机的类加载机制。 2.类加载机制 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、
阅读全文
JAVA虚拟机16-方法的动态调用
摘要:更详细:https://www.cnblogs.com/jthr/p/15762527.html 1.子类重写父类方法 1.1父类 public class Father { public int num = 20; public int get() { System.out.println("fa
阅读全文
JAVA虚拟机14 类加载器
摘要:1.简介 Java虚拟机设计团队有意把类加载阶段中的“通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader) 2.类相等 类加载器虽然只用于实现类的加载动作,但
阅读全文
符号扩展和零位扩展
摘要:https://www.cnblogs.com/mydomain/archive/2012/11/20/2780017.html 1、符号扩展 当用更多的内存存储某一个有符号数时,由于符号位位于该数的第一位,扩展之后,符号位仍然需要位于第一位,所以,当扩展一个负数的时候需要将扩展的高位全赋为1;对于
阅读全文
JAVA虚拟机13-字节码指令简介
摘要:1.简介 Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需的参数(称为操作数,Operand)构成。JVM指令=1字节操作码+0到多个操作数数。 2.特点 由于限制了Java虚拟机操作码的长度为一个字节(即0~255)
阅读全文
JAVA虚拟机12--Class文件结构-属性表
摘要:1 属性表 1.1 简介 属性表(attribute_info)在前面的讲解之中已经出现过数次,Class文件、字段表、方法表都可以携带自己的属性表集合,以描述某些场景专有的信息。 《Java虚拟机规范》允许只要不与已有属性名重复,任何人实现的编译器都可以向属性表中写入自己定义的属性信息,Java虚
阅读全文
JAVA虚拟机11-Class文件结构
摘要:1.平台无关性和语言无关性 Oracle公司以及其他虚拟机发行商发布过许多可以运行在各种不同硬件平台和操作系统上的Java虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现了程序的“一次编写,到处运行”。各种不同平台的Java虚拟机,以及所有平台都统一支持的程序存储格式——字节码(B
阅读全文