自制Java虚拟机(四)-对象.new.invokespecial 一.对象的表示 刚开始学Java的时候,图书馆各种教程,书名往往都是“Java面向对象高级编程”,通常作者都会与C++做个比较,列出的优点往往都有纯面向对象.自动垃圾收集(不用管理内存).跨平台(Write once, run everywhere 是宣传的重点,前提是需要在每个平台上安装jvm).没有指针(后来证明是有的).安全等.本篇文章就来实现面向对象(简单版,暂不考虑继承),涉及的指令主要有: new 创建一个对象get…
参考于 深入理解Java虚拟机 这里介绍HotSpot虚拟机(自带的虚拟机) 1.对象的创建 对于程序员来说,创建对象的方法: User user1 = new User(); User user2 = new User(04, "Tom", 20); 对于虚拟机来说: 1.首先遇到new指令,先去方法区(一块内存,有些人也叫永久代,不过书上说了这种叫法其实不是很准确)检查类有没有加载过了,如果没有,虚拟机去加载,如果加载了,在堆中进行创建. 2.创建对象有两种方法:由虚拟机自己决定,…