在Java中,类的初始化是指在类的第一次被使用时,JVM对其进行的一系列步骤。当JVM加载一个类时,它首先会进行初始化,这个过程包括以下几部分:
简单了解Java类的初始化以及类的实例化
Java类的初始化
在Java中,类的初始化是指在类的第一次被使用时,JVM对其进行的一系列步骤。当JVM加载一个类时,它首先会进行初始化,这个过程包括以下几部分:
-
分配静态变量存储空间并初始化静态变量,如果静态变量有初始值,那么直接使用该值进行初始化;否则使用默认值进行初始化,例如整型会被初始化为0,布尔型会被初始化为false,引用类型会被初始化为null。
-
执行静态代码块。
-
分配实例变量存储空间并初始化实例变量,如果实例变量有初始值,那么直接使用该值进行初始化;否则使用默认值进行初始化,例如整型会被初始化为0,布尔型会被初始化为false,引用类型会被初始化为null。
-
执行实例构造函数。
Java中,类的初始化是按需进行的,也就是说只有在类第一次被使用时才会初始化。例如,当我们执行Class.forName("com.example.MyClass")
时,JVM会加载MyClass类,并执行它的初始化过程。如果这个类之后没有被使用过,那么它就不会再次被初始化。
Java类的实例化
Java类的实例化是指创建类实例的过程。当我们使用new
关键字创建一个类的实例时,JVM会执行以下步骤:
-
分配存储空间并初始化实例变量,如果实例变量有初始值,那么直接使用该值进行初始化;否则使用默认值进行初始化,例如整型会被初始化为0,布尔型会被初始化为false,引用类型会被初始化为null。
-
执行实例构造函数。
创建类的实例的示例代码如下:
public class MyClass {
private int myField;
public MyClass() {
myField = 42;
}
}
MyClass instance = new MyClass();
在上述示例代码中,我们创建了一个MyClass类的实例,并将它赋值给instance
变量。在执行new MyClass()
时,JVM会自动分配存储空间,并执行MyClass
类的实例构造函数,最终返回一个指向新创建的实例的引用。
另一个示例代码如下:
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
Singleton singleton = Singleton.getInstance();
在上述示例代码中,我们创建了一个Singleton
单例类的实例,并将它赋值给singleton
变量。在执行Singleton.getInstance()
时,JVM会调用getInstance()
静态方法,并在需要时创建一个Singleton
类的实例,最终返回一个指向该实例的引用。注意,由于Singleton
类的实例只会被创建一次,因此这个类被称为单例类。
本文标题为:简单了解java类的初始化以及类的实例化
基础教程推荐
- 图解Java ReentrantLock公平锁和非公平锁的实现 2023-06-10
- Java 二维数组创建及使用方式 2023-04-18
- Spring Cloud Config分布式配置中心使用介绍详解 2023-05-08
- 关于泛型擦除问题的解决--Mybatis查询类型转换 2023-04-23
- java – 在Oracle JDBC客户端中指定密码哈希而不是清除密码 2023-11-06
- JSP自定义标签简单入门教程 2023-08-03
- 你可能真没用过这些 IDEA 插件(建议收藏) 2024-03-01
- Java常用时间工具类总结(珍藏版) 2023-03-15
- Python 实现一个颜色色值转换的小工具 2024-03-02
- 重复提交、重复刷新、防止后退的问题以及处理方式分析 2023-12-17