网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

学习Java对象初始化,掌握依赖单次加载技巧!

GG网络技术分享 2025-11-22 08:34 0


哇哈哈,巨大家优良!今天我要给巨大家讲讲Java对象初始化的学问,还有那东西啥依赖单次加载的技巧。听起来优良高大巨大上啊,但是别怕,我会用Zui轻巧松的话来说明白给你们的。

一、构造器

构造器是啥呢?就是用来创建对象的,就像是给细小汽车装上轮子一样。你想造一个对象,就得用构造器来帮忙。

比如说 我们有一个类叫“细小汽车”,我们想要一个“细小汽车”对象,就得这样写:

    class 细小汽车 {
        public 细小汽车 {
            // 这里写一些初始化的代码
        }
    }
    

然后我们就Neng这样创建一个“细小汽车”对象了:

    细小汽车 myCar = new 细小汽车;
    

二、静态工厂方法

静态工厂方法,听起来优良像是个工厂里用来生产东西的方法。其实呢,它就是一个类里的静态方法,用来创建对象。

Ru果构造方法不Neng直接访问, 我们就用静态工厂方法,这就像是一个细小暗地,只有我们晓得怎么用。Ru果构造方法不Neng直接访问,我们叫它“单例模式”。

比如说 我们有一个“电池”类,我们不想让用户直接创建“电池”对象,我们就用静态工厂方法:

    class 电池 {
        private 电池 {
            // 私有构造器,不Neng直接访问
        }
        public static 电池 getBattery {
            return new 电池;
        }
    }
    

三、通过Class类

Class类,这玩意儿有点麻烦,但是hen关键。它是用来反射的,就是Neng动态地创建对象。

我们先说说用Class类的forName方法来实例化一个Class对象,这玩意儿过程叫反射操作。

然后我们用Class类中的newInstance方法来创建对象。Ru果我们要创建一个带参数的类, 我们需要用getConstructors方法来获取全部的构造方法,然后再用newInstance方法。

初始化数组有三种方式

哇,数组的初始化也有三种方式?那我来给巨大家介绍一下:

方式一:

    String strs = new String; strs = ""; strs = "";
    

方式二:

    String strs = new String{ "", "" };
    

方式三:

    String strs = { "", "" };
    

三种方式, dou有自己的用场景,在合适的时候用就Neng了。

JAVA 对象的初始化到底有几种形式

Java对象的初始化基本上有几种形式呢?我来给你们数一数:

创建对象时初始化,这玩意儿Zui常见了。

二、初始化块

这玩意儿比比kan少许见,但是有些特殊需求的类会用它。

三、方法

这玩意儿是setter方法,挺方便的,但是兴许会引发空指针异常。

四、 规定

全部的对象,变量初始值dou为null,Ru果不初始化,程序就无法用null型Zuo逻辑操作,会报异常或者错误。

所以我们要对对象进行初始化。

搞懂的几个特殊加载过程:

静态代码块、构造代码块,构造方法。

有静态方法先加载,全部的静态方法加载完毕之后进入对象的构建初始化行为1

施行构造代码块初始化行为2

调用无参构造函数初始化对象

施行第一行:super;调用父类无参数构造函数一直往上调。Ru果父类有构造代码块先施行。

注意静态代码是Zui先加载的,无论几许多个父类。

自己许多试着操作练习,kankan运行后来啊,加深厚搞懂!

初始化就是给变量一个初始值。

比方说:

    声明一个变量: String aa = "abc"; int cc = 0; 其中abc和0就是初始化的值, 再说说值不一定是abc或者0加入你覆盖了aa的值如下:
    aa = "def"; cc=1; 那再说说aa变量的值就是def,cc变量就是1了初始化的目的是为了让变量有值,别让用时出现异常。
    

资料:

作用

遇到new, getstatic,putstatic,或invokestatic这4条字节码指令时Ru果类没有进行过初始化,则需要先触发其初始化。生成这4条指令单Zui常见的Java代码场景是:

用new关键字实例化对象的时候, 读取或设置一个类的静态字段的时候,以及调用一个类的静态方法的时候。

用java.lang.reflect包的方法对类进行反射调用的时候, Ru果类没有进行过初始化,则需要先触发其初始化。

当初始化一个类的时候,Ru果找到其父类还没有进行初始化,则需要先触发其父类的初始化。

当虚拟机启动时 用户需要指定一个要施行的主类方法的那东西类),虚拟机会先初始化这玩意儿主类。

标签:

提交需求或反馈

Demand feedback