虚拟机加载类的先后顺序和特性:虚拟机加载类的时候,1.先加载该类的静态常量和变量(静态常量和变量按顺序加载),2.然后加载静态代码块,3.最后再加载其它部分。
而且,静态常量和静态代码块只在加载类的时候执行一次,new 新的对象的时候不再执行.
public class StaticTest {
public static final a btest= new a("btest");
public static a atest= new a("atest");
static {
System.out.println("I AM STATICS'S CODE");
}
public static void main(String [] args){
StaticTest staticTest =new StaticTest();
staticTest.test();
StaticTest staticTest1 = new StaticTest();
staticTest1.test();
}
public void test (){
System.out.println("I AM NOT STATICS'S CODE");
}
static class a{
a(String a){
System.out.println(a);
}
}
}
以上为demo代码,
以下为执行输出内容:
btest
atest
I AM STATICS'S CODE
I AM NOT STATICS'S CODE
I AM NOT STATICS'S CODE
,无论新建该类的多少个对象,该类的 静态变量和静态常量还有静态代码块只执行一次.
分享到:
相关推荐
其中,类加载器扮演着非常重要的角色,从文件系统中加载类文件,并将其加载到 JVM 的内存区域中。 五、结论 Java 虚拟机工作原理详解是 Java 程序执行的核心组件之一。类加载器是 Java 虚拟机中的一种机制,负责将...
- **方法区**:与堆一样,也是各线程共享的内存区域,主要存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。 - **运行时常量池**:每个类或接口的常量池都包含在方法区中,用于存放编译...
通过这些验证步骤,可以确保加载的类文件不会破坏Java虚拟机的安全性和稳定性。 ##### 2. 及时编译器 (JIT Compiler) 及时编译器是一种动态编译技术,用于提高Java程序的运行效率。JIT编译器的主要特点包括: - *...
### 深入Java虚拟机加载初始化 #### Classloader的作用及意义 在深入了解Java虚拟机(JVM)的加载初始化之前,我们先明确一下`Classloader`的角色。简单地说,`Classloader`的主要职责是将编译后的`.class`文件...
在客户端应用程序中,需要设置虚拟机的类搜索路径以正确地加载类文件;在移动应用程序中,需要设置虚拟机的堆大小和垃圾回收机制以提高性能和减少内存占用。 Java虚拟机参数是Java应用程序的核心组件之一,对Java...
1. 类加载机制:JVM如何加载类文件并创建类的实例,类的加载顺序和双亲委派模型等。 2. 内存管理:JVM内存区域的划分,包括堆、栈、方法区、程序计数器等区域的作用和管理方式,以及垃圾回收机制。 3. 执行引擎:...
- **方法区**:存储已被虚拟机加载的类信息、常量、静态变量等数据。 #### 3. 垃圾收集算法 为了有效地管理和回收不再使用的对象所占用的内存,JVM采用了多种垃圾收集算法,例如: - **标记-清除算法**:先标记所有...
Java虚拟机(JVM)是Java程序的核心组成部分,它负责执行字节码并管理程序运行时的内存。本文主要探讨JVM的类加载机制,包括类加载、连接、初始化等关键过程,以及类的主动使用和被动使用的情况。 首先,我们要理解...
Java虚拟机的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块,而不影响系统其他功能模块的正常运行。 Java虚拟机类装载的过程可以分为三个步骤:装载、链接和初始化。在装载过程中,JVM会查找...
《Java虚拟机规范(Java SE 7)》是Java开发者深入理解JVM(Java Virtual Machine)运作机制的重要参考资料。这份规范详细定义了Java程序如何在虚拟机上运行,包括类加载、字节码执行、内存管理、垃圾收集、异常处理等...
虚拟机将描述类的数据从Class文件加载到内存,并对数据进行校验、准备、解析和初始化,终会形成可以被虚拟机使用的Java类型,这是一个虚拟机的类加载机制。Java中的类是动态加载的,只有在运行期间使用到该类的...
Java虚拟机类装载机制是Java运行环境的核心技术之一,它允许程序在运行时动态加载和使用类,极大地增强了软件的灵活性和可扩展性。本文主要探讨了类装载的原理、实现方式及其在实际应用中的作用。 首先,类装载的...
2. **类加载机制**:JVM按照“加载、验证、准备、解析、初始化”的顺序加载类。双亲委托模型确保类加载的唯一性,避免类的冲突。 3. **内存管理**:JVM内存分为堆内存和栈内存,其中堆内存主要存放对象实例,栈内存...
类加载器的作用不仅仅是加载类,还包括确保类的唯一性,避免重复加载,并且遵循特定的加载顺序。以下是对类加载器原理的详细解释: 1. 类加载器作用: 当JVM启动时,如果需要使用某个类,对应的类加载器会将这个类...
### 深入了解Java虚拟机 #### 一、Java技术与Java虚拟机的关系 Java不仅仅是一种编程语言,更是一种全面的技术体系。它由四个关键组成部分构成:Java编程语言、Java类文件格式、Java虚拟机(JVM)以及Java应用程序...