`
aids198311
  • 浏览: 59896 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

虚拟机学习笔记2

阅读更多
class Lava{

     private int speed = 0;

     void flow(){

     }

}

class Volcano{

public static void main(String args[]){
     Lava lava = new Lava();
     lava.flow()
   }

}


学习后,理解的执行过程:
  1. 虚拟机找到Volcano的class文件,提取里面的二进制文件到方法区。
  2. 执行保存在方法区的字节码,开始main方法。此时,Lava类还没有被加载,等到需要时,才会加载。
  3. 为常量池中的类分配内存,发现第一个是Lava类的一个符号引用,这个符号引用是com/test/aaa/Lava 这种类型的表示方式,仅仅是个字符串,检查方法区,发现Lava类尚未加载。查找Lava.class文件,读取二进制信息到方法区。
  4. 以一个指向方法区的直接引用替换掉上面字符串“Lava”,以后就可以用这个指针来访问Lava类了,这就是所谓的常量池解析。把常量池中的符号引用替换成直接引用。
  5. 终于到new这里了,虚拟机为新的Lava对象分配内存,这时候,又需要方法放到方法区里的Lava类的信息了,通过刚才的指针,从里面找出:创建这个类需要多少内存呢?(这个由虚拟机的设计者决定)。好了,在内存堆里分配一块给Lava对象。然后初始化属性speed,如果有超类,且有实例变量,超类也会初始化。
  6. 可以执行方法了。把Lava对象的引用压到栈中。此时,算是执行完main方法的第一行了。接着就是执行方法。这个下次再说。嘿嘿。



分享到:
评论

相关推荐

    VMware ESXi虚拟机学习笔记.doc

    VMware ESXi虚拟机学习笔记 本文是关于VMware ESXi虚拟机学习笔记,涵盖了ESXi的安装、vSphere Client的安装和配置、虚拟机的创建和安装操作系统等内容。 ESXi的安装 VMware ESXi是 VMware 公司推出的虚拟机软件...

    虚拟机学习笔记--周志明老师第三版

    虚拟机学习笔记 Java 虚拟机(JVM)是 Java 语言的 runtime 环境,负责加载、验证、执行 Java 字节码。以下是 JVM 相关知识点的总结。 1. 运行时数据区域 JVM 的运行时数据区域主要包括: * 堆(Heap):...

    深入理解Java虚拟机学习笔记借鉴.pdf

    Java 虚拟机(JVM)自动内存管理机制 Java 虚拟机(JVM)自动内存管理机制是 Java 语言的一大特色,它使得 Java 程序员无需手动管理内存,从而提高了开发效率和程序稳定性。JVM 自动内存管理机制主要通过 JVM 的...

    Java 虚拟机学习笔记:Java 内存区域,垃圾收集,内存分配与回收策略,JVM 调优,文件结构,类加载机制,Java 程序

    Java 虚拟机学习笔记: Java 内存区域, 垃圾收集, 内存分配与回收策略, JVM 调优, 文件结构, 类加载机制, Java 程序 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,...

    java虚拟机学习笔记进阶篇

    2. 堆内存结构 Java的堆内存分为两个主要区域:新生代(Young Generation)和老年代(Tenured Generation)。新生代主要用于存放生命周期短的对象,占堆内存的1/3,其中又细分为Eden区(8/10)、From Survivor区(1/...

    读书笔记:学习周志明先生的深入理解Java虚拟机的笔记.zip

    读书笔记:学习周志明先生的深入理解Java虚拟机的笔记

    java学习笔记3(java虚拟机)

    java学习笔记3(java虚拟机)java学习笔记3(java虚拟机)

    虚拟机linux上网配置学习笔记

    你还在为新安装的虚拟机不能上网发愁吗?关于linux上网配置你还没有完全掌握吗?那欢迎下载这篇文档学习一下吧!

    学习笔记之java虚拟机

    ### 学习笔记之Java虚拟机详解 #### 运行时数据区域概览 Java虚拟机(JVM)运行时数据区域主要包括以下几部分:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区以及运行时常量池。 1. **程序计数器**: -...

    学习笔记:深入浅出 Java 虚拟机.docx

    Java 虚拟机(JVM)是Java编程语言的核心组成部分,它允许Java代码在不同的操作系统上运行,实现了“一次编写,到处运行”的目标。JVM 是一个虚拟计算机,能够执行字节码(.class文件),这些字节码是Java源代码经过...

    java学习笔记4(java虚拟机)

    java学习笔记4(java多线程)java学习笔记4(java多线程)

    Java学习笔记.zip

    Java学习笔记作为程序员学习和掌握Java技术的重要资料,对于初学者来说是一个宝贵的参考。 在Java学习笔记中,通常会包括以下几个方面的内容。首先,基础语法是学习的起点,它涵盖了变量、数据类型、运算符、控制...

    深入Java虚拟机读书笔记1

    2. 即时编译器(JIT,Just-In-Time Compiler):JIT在运行过程中将热点代码编译成本地机器码,提升性能,但会增加内存开销。 3. 自适应优化器:结合了解释器和JIT的优点,初期使用解释器,随着程序运行,对高频执行...

    读书笔记:深入理解Java虚拟机(周志明)源码及学习笔记.zip

    读书笔记:深入理解Java虚拟机(周志明)源码及学习笔记

    JVM 学习笔记(Java虚拟机)

    **JVM学习笔记(Java虚拟机)** Java虚拟机(JVM)是Java语言的核心组成部分,它是Java程序运行的平台,负责解释和执行字节码。深入理解JVM对于优化Java应用程序性能至关重要。本笔记将从以下几个方面详细介绍JVM:...

    深入Java虚拟机JVM类加载学习笔记

    ### 深入Java虚拟机JVM类加载学习笔记 #### 一、Classloader机制解析 在Java虚拟机(JVM)中,类加载器(ClassLoader)是负责将类的`.class`文件加载到内存中的重要组件。理解类加载器的工作原理对于深入掌握JVM以及...

    java虚拟机学习笔记基础篇

    总结来说,了解Java虚拟机的学习笔记基础篇,可以帮助Java开发者更好地掌握Java程序的执行机制,理解类的加载、链接和初始化过程,以及JVM的内存模型和执行引擎的工作原理,从而编写出更加高效和稳定的Java应用程序...

    读书笔记:《深入理解Java虚拟机JVM高级特性与最佳实践第2版》学习笔记.zip

    读书笔记:《深入理解Java虚拟机JVM高级特性与最佳实践第2版》学习笔记

    Java学习笔记——良葛格

    "Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...

    VMware Ubuntu虚拟机学习笔记(一)

     1) 命令:sudo passwd root  2) 输入两遍新的密码 ... 2) 命令:sudo apt-get upgrade 对系统中的软件都更新升级  3) 命令:sudo apt-get upgrade 软件名 更新升级某个软件 常用命令: ls 查看

Global site tag (gtag.js) - Google Analytics