浅谈Java中静态代码块和非静态代码块
2024-10-01 02:59:54
静态代码块:
static{}
执行优先级高于非静态的初始化块,它会在类初始化(类初始化这个问题改天再详细讨论)的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员。
非静态代码块:
{}
执行的时候如果有静态初始化块,先执行静态初始化块再执行非静态初始化块,在每个对象生成时都会被执行一次,它可以初始化类的实例变量。非静态初始化块会在构造函数执行时,在构造函数主体代码执行之前被运行。
例程:
public class Test1 {
public static String staticField = "静态变量";
public String field = "变量";
static{
System.out.println(staticField);
System.out.println("静态初始块");
} {
System.out.println(field);
System.out.println("初始化块");
} public Test1() {
System.out.println("构造器");
} public static void main(String[] args) {
new Test1();
System.out.println();
new Test1();
}
}
例程运行结果:
静态变量
静态初始块
变量
初始化块
构造器
变量
初始化块
构造器
最新文章
- NodeJs之Path
- C++中的vector 用法解析
- android gpio口控制
- 【UE4+Vive】学习笔记1
- Unity3D基础--动态创建和设置游戏对象
- iscroll5 上拉,下拉 加载数据
- PCH 配置
- java 控制器向页面传值方式
- 每天一个Linux命令(1): find
- 删除TreeView节点以及其子节点
- [OC Foundation框架 - 20] 统计代码行数
- winform下载网页源码
- Jenkins 快速搭建持续集成环境
- kail linux虚拟机安装tools工具
- Redis哨兵
- Nancy in .NET Core学习笔记 - 路由
- 使用fiddler模拟session失效的测试方法
- 幂的运算:X的n次幂
- 洛谷1443 马的遍历【bfs】
- ftp文件上传和下载