Java中字段赋值顺序的问题
2024-08-31 13:26:46
static字段
public class Client {
public static int i = 2;
static {
i = 100;
}
public static void main(String[] args) {
System.out.println("i=" + i);
}
}
i=100
public class Client {
static {
i = 100;
}
public static int i = 2;
public static void main(String[] args) {
System.out.println("i=" + i);
}
}
i=2
结论1:静态变量是在类初始化时首先被加载的,JVM会去查找类中所有的静态声明,然后分配空间,注意这时候只是完成了地址空间的分配,还没有赋值,之后JVM会根据类中静态赋值语句(包括静态类赋值和静态块赋值)的先后顺序来执行
实例字段
public class Client {
private int i = 2;
{
i = 100;
}
public static void main(String[] args) {
System.out.println(new Client().i);
}
}
100
public class Client {
{
i = 100;
}
private int i = 2;
public static void main(String[] args) {
System.out.println(new Client().i);
}
}
2
结论2:实例字段与static字段类似
最新文章
- UEFI+GPT安装windows
- 机器学习 1 regression
- Solr学习总结(七)Solr搜索引擎的整体架构
- ActiveMQ启动多个broker
- shellinabox基于web浏览器的终端模拟器
- 数学工具之mathgv
- Core Data 多线程时多个context使用
- etcdctl --help
- rpm 更新/升级 软件包(libGL-devel手动安装过程)
- Maven Project configuration is not up-to-date with pom.xml错误解决方法
- struts2校验器规范错误解决
- 技术之美[程序人生]我在IBM实习的日子
- C++中值传递、指针传递、引用传递的总结
- moment.js
- 读入挂(IO)
- Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2) 【ABC】
- sql语句优化(一)
- Python shutil.md
- Android -- EventBus解析
- iOS开发中多线程基础