据我了解,"静电初始化挡路"是用来设置静电字段的值,如果不能一行完成的话.

但我不明白为什么我们需要一个特殊的区块.例如,我们将一个字段声明为静态(没有赋值).然后编写几行代码,生成并为上述声明的静态字段赋值.

为什么我们需要这条线在一个特殊的区块里,比如:static {...}

推荐答案

non-static block:

{
    // Do Something...
}

在构造类的实例时调用every time.static block只在类本身初始化时才被调用once,无论您创建了多少个该类型的对象.

例子:

public class Test {

    static{
        System.out.println("Static");
    }

    {
        System.out.println("Non-static block");
    }

    public static void main(String[] args) {
        Test t = new Test();
        Test t2 = new Test();
    }
}

这张照片是:

Static
Non-static block
Non-static block

Java相关问答推荐

Annotation @ Memphier无法正常工作,并表示:class需要一个bean,但找到了2个bean:

在Java 8之后,HashMap的最坏情况下时间复杂度仍然是O(n)而不是O(log n)?

空手道比赛条件

同时运行JUnit测试和Selenium/Cucumber测试时出现问题

参数值[...]与预期类型java.util.Date不匹配

Java记录的不同序列化/反序列化

将带有js文件的 bootstrap 程序导入maven项目时出错

如何正确创建序列图?

为什么使用JDK21获取锁定锁比使用JDK11慢

如何使用值中包含与号的查询参数创建一个java.net.URI

为什么S的文档中说常量方法句柄不能在类的常量池中表示?

Spring和可编辑";where";@Query

Java-动态绑定-问题-了解

尽管通过中断请求线程死亡,但线程仍将继续存在

如何为JavaFX Spring Boot应用程序制作Windows/MacOS/Linux安装程序

为什么当我创建Robot对象时,JavaFX引发IlLegalStateException异常?

有没有可能在时间范围内得到多种解决方案?

向Java进程发送`kill-11`会引发NullPointerException吗?

验证没有';t work on Hibernate Entity';s字段

Android上的SQLite:Android.database.SQLite.SQLiteReadOnlyDatabaseException:try 写入只读数据库(代码1032 SQLite_readonly_DBMOVED)