java学习笔记_类建立对象初始化过程分析
2013-11-05 00:14
726 查看
示例:
执行顺序:
1,首先执行主函数所在类中的Static代码块;
2,然后执行主函数,因为new Person,类,所以会找到Person.class文件加载到内存;
3,执行Person类中的Static代码块,如果有的话先给Person类进行初始化操作;
4,在堆内存中开辟空间,分配内存地址;
5,在堆内存中建立对象的特有属性,并进行默认初始化;
6,对属性进行显示初始化;
7,对对象进行构造代码块的初始化;
8,对对象进行对应的构造函数初始化;
9,将内存地址赋给栈内存的对象变量。
//声明个人的类 class Person { private static String name = "李四";//对属性进行显示初始化 private static int age = 15; //设置年龄 public void setAge(int age){ this.age = age; } //访问年龄 public int getAge(){ return this.age; } //静态代码块 static { System.out.println("This is static Code in Class Person"); } //构造代码块 { System.out.println("这是对象的构造代码块!"); name = "叶子"; } //构造函数 Person(){ System.out.println("name = "+name+",age = "+age); } Person(String name,int age){ this.name = name; this.age = age; System.out.println("name = "+name+",age = "+age); } //静态函数 public static void show1(){ System.out.println("name = "+name+",age = "+age); } //一般函数 public void show2(){ System.out.println("name = "+name+",age = "+age); } } class PersonDemo { static{ System.out.println("This is Static Code in Class PersonDemo"); } public static void main(String[] args) { Person p1 = new Person("wang",14); Person p2 = new Person(); p1.show1(); p2.show2(); } }
执行顺序:
1,首先执行主函数所在类中的Static代码块;
2,然后执行主函数,因为new Person,类,所以会找到Person.class文件加载到内存;
3,执行Person类中的Static代码块,如果有的话先给Person类进行初始化操作;
4,在堆内存中开辟空间,分配内存地址;
5,在堆内存中建立对象的特有属性,并进行默认初始化;
6,对属性进行显示初始化;
7,对对象进行构造代码块的初始化;
8,对对象进行对应的构造函数初始化;
9,将内存地址赋给栈内存的对象变量。
相关文章推荐
- 嵌入式软件开发培训笔记——Java第三天(方法重载、对象的构造与初始化过程分析、封装等)
- Java学习笔记(注释、对象初始化过程、单例模式)
- Java学习笔记(十三):关于子类初始化的过程
- Webkit初始化以及载入URL过程中各种对象的建立时序以及DOM树的建立详情分析
- java学习笔记——java中对象的创建,初始化,引用的解析
- 【java学习笔记】对象数组初始化问题
- Android(java)学习笔记159:Dalivk虚拟机的初始化过程
- java学习笔记3:对象的初始化顺序
- Webkit初始化以及加载URL过程中各种对象的建立时序以及DOM树的建立详情分析
- Java基础学习笔记--对象的初始化
- Java学习笔记-类与对象(对象内存分析)
- java学习13-面向对象(final和对象初始化过程)
- java学习笔记4:对象的初始化顺序(官方实例)
- JAVA学习笔记之继承和父类子类实例变量的初始化内存分析图
- java学习之对象的初始化过程
- 学习笔记---对象初始化过程
- Java 回顾笔记_对象初始化过程
- Java对象初始化过程例子分析(一)
- java学习笔记4--对象的初始化与回收
- Java学习笔记(一)对象数组的初始化