java数据的初始化
来源:互联网 发布:优化 编辑:程序博客网 时间:2024/05/20 12:24
public class StaticInitialization {
public static voidmain(String[] args) {
System.out.println("Creating new Cupboard() in main");
newCupboard();
System.out.println("Creating new Cupboard() in main");
newCupboard();
table.f2(1);
cupboard.f3(1);
}
static Table table=newTable();
static Cupboard cupboard=newCupboard();
}
class Bowl{
Bowl(intmarker){
System.out.println("Bowl("+marker+")");;
}
void f1(intmarker){
System.out.println("f1("+marker+")");
}
}
class Table{
static Bowlbowl1=new Bowl(1);
Table(){
System.out.println("Table()");
bowl2.f1(1);
}
void f2(intmarker){
System.out.println("f2("+marker+")");
}
static Bowlbowl2=new Bowl(2);
}
class Cupboard{
Bowlbowl3=new Bowl(3);
static Bowlbowl4=new Bowl(4);
Cupboard(){
System.out.println("Cupboard()");
bowl4.f1(2);
}
void f3(intmarker){
System.out.println("f3("+marker+")");
}
static Bowlbowl5=new Bowl(5);
}
output:
Bowl(1) //先静态非静态变量 在构造器
Bowl(2)
Table() //先静态非静态变量 在构造器
f1(1)
Bowl(4) //静态变量和非静态变量先加载静态变量
Bowl(5)
Bowl(3)
Cupboard()
f1(2)
Creating new Cupboard() in main
Bowl(3) //静态变量只加载一次 下次不会不用加载
Cupboard()
f1(2)
Creating new Cupboard() in main
Bowl(3)
Cupboard()
f1(2)
f2(1)
f3(1)
总结一下对象的创建过程假设有个名为Dog的类;1.即使没有显式地使用this关键字,构造器实际上也是静态方法,因此,当首次创建类型 为Dog的对象时(构造器可以看成静态方法),或者Dog类的静态方法/静态域首次被访问时.java解释器必须查找类路径,以定位Dog.class文件. 2然后载入Dog.class,有关静态初始化的所有动作, 都会执行,因此,静态初始化只在calss对象首次加载的时候进行一次。 3当用 newDog()创建对象的时候,首先将在堆上为Dog对象分配足够的存储空间 4这块存储空间会被清零,这就自动地将对象中的所有基本类型数据都设置成了默认值, (对数字来说就是0,对布尔型和字符型也相同),而引用则被设置成了null 5执行所有出现于字段定义处的初始化动作。6执行构造器。
}
}
class Bowl{
}
class Table{
}
class Cupboard{
}
output:
Bowl(1) //先静态非静态变量 在构造器
Bowl(2)
Table()
f1(1)
Bowl(4)
Bowl(5)
Bowl(3)
Cupboard()
f1(2)
Creating new Cupboard() in main
Bowl(3)
Cupboard()
f1(2)
Creating new Cupboard() in main
Bowl(3)
Cupboard()
f1(2)
f2(1)
f3(1)
总结一下对象的创建过程假设有个名为Dog的类;
0 0
- java数据的初始化
- java static数据的初始化
- Java数据初始化的问题
- java静态数据的初始化
- [Think in java]静态数据的初始化
- JAVA中初始化数据的方法?
- Java初始化servlet数据
- java数据初始化
- Java中数据初始化
- Java数据初始化顺序
- 静态数据的初始化
- 静态数据的初始化
- 静态数据的初始化
- static数据的初始化
- 初始化数据的过程
- 静态数据的初始化
- GlodenGate的数据初始化
- 静态数据的初始化
- git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支,及常用指令
- SQL Error: 1064, SQLState: 42000错误
- 婴儿如何“吃奶”才正确?
- 直方图的反向投影
- MySQL server has gone away,Mysql导入大容量SQL文件数据问题
- java数据的初始化
- linux下配置java环境变量(详细)
- 第十一周 项目四(3):类族的设计
- git reset 回退以前某个版本及常用命令(随时更新)
- asp.net api
- linux下(CentOS)Hadoop集群伪分…
- jquery调用ashx文件和WebMethod方法总结
- 布板的前世今生
- 男女间互送礼物的含义大全.别送错…