可以自己做视频网站吗,中国黄金集团j建设公司网站,h5设计制作是什么,北京公司注册中介正规包 final 权限修饰符 空着不写是default#xff01; 代码块 1.静态代码块
1.静态代码块优于空参构造方法
2.静态调用只被加载一次#xff1b;
静态代码块在Java中是一个重要的特性#xff0c;它主要用于类的初始化操作#xff0c;并且随着类的加载而执行#xff0c;且只…包 final 权限修饰符 空着不写是default 代码块 1.静态代码块
1.静态代码块优于空参构造方法
2.静态调用只被加载一次
静态代码块在Java中是一个重要的特性它主要用于类的初始化操作并且随着类的加载而执行且只执行一次。静态代码块的实践应用广泛以下是几个主要的应用场景
1. 初始化静态变量
静态代码块经常用于初始化静态变量这些变量在类的所有实例之间共享。通过静态代码块可以在类加载时设置这些变量的初始值确保在使用这些变量之前它们已经被正确初始化。
2. 加载外部资源
在应用程序中有时需要在类加载时加载外部资源如配置文件、数据库驱动等。静态代码块提供了一个很好的时机来完成这些任务因为它在类被JVM加载时执行且只执行一次。
3. 初始化静态数据结构
对于需要在类级别上共享的数据结构如集合、映射等静态代码块可以用于在类加载时初始化这些数据结构。这有助于减少在对象创建时重复初始化相同数据结构的开销。
4. 执行一次性的任务
如果有一些任务只需要在类加载时执行一次比如初始化日志系统、注册服务提供者等那么静态代码块是一个理想的选择。这些任务通常与类的实例无关但需要在类被使用时已经准备好。
5. 控制静态代码块的执行顺序
在存在继承关系的类中静态代码块的执行顺序是按照父类到子类的顺序进行的。这一特性可以用于控制初始化操作的顺序确保在子类使用父类资源之前父类资源已经被正确初始化。
示例代码
public class StaticInitialization { // 静态变量 private static String country; // 静态代码块 static { country 中国; System.out.println(静态代码块执行初始化国家为 country); // 可以在这里加载外部资源或执行其他初始化任务 } public static void main(String[] args) { // 静态代码块在类加载时自动执行无需显式调用 System.out.println(主方法执行国家为 country); } }
在上面的示例中静态代码块在类StaticInitialization被加载时执行并且只执行一次。它用于初始化静态变量country并在控制台打印一条消息。然后在main方法中可以直接访问这个已经初始化的静态变量。
注意事项
静态代码块只能访问类的静态成员变量和静态方法不能访问类的实例成员变量和实例方法。静态代码块的执行顺序取决于它们在类中的定义顺序与它们在代码中的位置无关。如果存在继承关系父类的静态代码块会在子类的静态代码块之前执行。但是需要注意的是这并不会影响静态变量的访问顺序因为静态变量是按照它们在类中的定义顺序进行初始化的。
2.构造代码块
实例化几次就调用几次 3.静态代码块、构造代码块、构造函数执行顺序 内部类 1.内部类的分类 1.成员内部类
public class text {public static void main(String[] args) {A.c c new A().new c();c.setA(3);System.out.println(c.getA());}
}2.局部内部类 3.匿名内部类