`
greemranqq
  • 浏览: 977308 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

JAVA 虚拟机加载顺序

阅读更多

首先我们看一道题:

 

	static int x, y;
	static {
		int x = 5;
	}


	public static void main(String args[]) {
		x--;
		myMethod();
		System.out.println(x + y + ++x);
	}

	public static void myMethod() {
		y = x++ + ++x;
	}

 

 

答案请先思考:

 

1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化

2、只有在调用new方法时才会创建类的实例
3、类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行本类继承的子类的初始化块,最后是子类的构造方法
4、类实例销毁时候,首先销毁子类部分,再销毁父类部分

 

 

 

 

 

 

 

 

 

 

 

 

答案:3

分享到:
评论

相关推荐

    Java虚拟机规范SE8英文

    - **方法区**:与堆一样,也是各线程共享的内存区域,主要存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。 - **运行时常量池**:每个类或接口的常量池都包含在方法区中,用于存放编译...

    Java虚拟机工作原理详解

    Java虚拟机工作原理详解 Java虚拟机工作原理详解是 Java 程序执行的核心组件之一。了解 Java 虚拟机的工作原理对 Java 开发人员来说非常重要。本文将详细介绍 Java 虚拟机工作原理的详细过程和类加载器的工作机理。...

    java 虚拟机的研究

    通过这些验证步骤,可以确保加载的类文件不会破坏Java虚拟机的安全性和稳定性。 ##### 2. 及时编译器 (JIT Compiler) 及时编译器是一种动态编译技术,用于提高Java程序的运行效率。JIT编译器的主要特点包括: - *...

    深入java虚拟机加载初始化

    ### 深入Java虚拟机加载初始化 #### Classloader的作用及意义 在深入了解Java虚拟机(JVM)的加载初始化之前,我们先明确一下`Classloader`的角色。简单地说,`Classloader`的主要职责是将编译后的`.class`文件...

    《Java虚拟机规范》

    1. 类加载机制:JVM如何加载类文件并创建类的实例,类的加载顺序和双亲委派模型等。 2. 内存管理:JVM内存区域的划分,包括堆、栈、方法区、程序计数器等区域的作用和管理方式,以及垃圾回收机制。 3. 执行引擎:...

    《Java虚拟机精讲》PDF版本下载.txt

    - **方法区**:存储已被虚拟机加载的类信息、常量、静态变量等数据。 #### 3. 垃圾收集算法 为了有效地管理和回收不再使用的对象所占用的内存,JVM采用了多种垃圾收集算法,例如: - **标记-清除算法**:先标记所有...

    Java虚拟机参数详解

    Java虚拟机参数详解 Java虚拟机参数是Java虚拟机的核心组件之一,对Java应用程序的性能和稳定性产生着至关重要的影响。Java虚拟机参数可以分为基本参数和扩展参数两类,基本参数用于设置虚拟机的运行模式和类搜索...

    Java虚拟机规范(Java_SE_7).rar_JAVA 虚拟机规范_JAVA虚拟机

    《Java虚拟机规范(Java SE 7)》是Java开发者深入理解JVM(Java Virtual Machine)运作机制的重要参考资料。这份规范详细定义了Java程序如何在虚拟机上运行,包括类加载、字节码执行、内存管理、垃圾收集、异常处理等...

    Java虚拟机规范(中文 翻译版 Java_SE_7).rar

    Java虚拟机是Java平台的核心组成部分,它负责执行字节码,管理内存,实现类加载,垃圾收集以及线程调度等关键功能。在Java SE 7版本中,JVM引入了许多新特性和改进,以提高性能、兼容性和安全性。 1. **字节码执行*...

    java虚拟机调优--某培训班的课件与源码

    了解这个过程有助于优化类的加载顺序和减少内存消耗。 5. **编译优化**:JVM有即时编译(JIT,Just-In-Time)机制,能够将热点代码编译为机器码,提高运行效率。`-XX:CompileThreshold`参数可以设定触发编译的代码...

    Java虚拟机类装载.doc

    Java虚拟机的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块,而不影响系统其他功能模块的正常运行。 Java虚拟机类装载的过程可以分为三个步骤:装载、链接和初始化。在装载过程中,JVM会查找...

    深入了解java虚拟机,总结得很好

    ### 深入了解Java虚拟机 #### 一、Java技术与Java虚拟机的关系 Java不仅仅是一种编程语言,更是一种全面的技术体系。它由四个关键组成部分构成:Java编程语言、Java类文件格式、Java虚拟机(JVM)以及Java应用程序...

    深入理解Java虚拟机:(第3版)1

    《深入理解Java虚拟机:(第3版)1》是一本专为Java开发人员、系统调优师和系统架构师深度解析Java虚拟机运作原理的著作。作者在第三版中更新了Java技术的发展历程,并对第二版的内容进行了全面修订,以适应Java近年...

    深入java虚拟机第二版.pdf

    类的加载顺序按照这个层级结构进行,每个类加载器在加载类时,首先会检查请求加载的类是否已经被加载过,如果已加载,则返回给请求者;如果未加载,它会将请求委派给父类加载器,如此循环,直到启动类加载器。如果...

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

    Java虚拟机(JVM)是Java程序的核心组成部分,它负责执行字节码并管理程序运行时的内存。本文主要探讨JVM的类加载机制,包括类加载、连接、初始化等关键过程,以及类的主动使用和被动使用的情况。 首先,我们要理解...

    java 继承关系的加载顺序

    验证阶段检查.class文件的格式是否正确,确保它符合Java虚拟机规范,并且不包含恶意代码。这个过程对父类和子类都会执行。 4. 准备 准备阶段为类的静态变量分配内存,并初始化它们到默认值。父类的静态变量在子类...

    关于Java虚拟机.pdf

    Java虚拟机(JVM)是Java平台的核心,它负责运行Java字节码。Java字节码由Java编译器从Java源代码生成,然后可以在任何安装了JVM的机器上运行,实现了“一次编写,到处运行”的跨平台特性。 在Java虚拟机中,有几个...

Global site tag (gtag.js) - Google Analytics