新建一个对象初始化执行顺序
2014-03-26 09:23
253 查看
/** * Person p = new Person(); 1,加载Person.class文件。 2,执行Person类中的静态代码块对Person类进行初始化。 3,在堆内存开辟空间分配内存地址,并对对象中的属性进行默认初始化和构造代码块初始化。 注:(构造代码块的初始化跟对象中的默认属性是一致的,谁在前,就先实例化谁。) 如:下面则先运行int x=4; 在运行构造代码块,之后再执行int y=5; ======================================= int x = 4; { System.out.println("d"); } int y=5; ======================================= 4,与之对应的构造函数初始化。 5,将对象的内存地址值赋值给p。 * */
public class StaticCode {
int x = 4;{// System.out.println("d" + age);//在这里如果写上成员变量age,则会编译失败,不管age属性是私有还是共有。System.out.println("d");}static {System.out.println("a");}private int age=2;
StaticCode(int x) {System.out.println("g");}
StaticCode() {System.out.println("f");}
void show() {System.out.println("e");} }
class StaticCodeDemo {
static {System.out.println("b");}
//此方法执行的输出的值依次是:b、a、d、f、e、d、g、epublic static void main(String[] args) {new StaticCode().show();new StaticCode(4).show();}}
public class StaticCode {
int x = 4;{// System.out.println("d" + age);//在这里如果写上成员变量age,则会编译失败,不管age属性是私有还是共有。System.out.println("d");}static {System.out.println("a");}private int age=2;
StaticCode(int x) {System.out.println("g");}
StaticCode() {System.out.println("f");}
void show() {System.out.println("e");} }
class StaticCodeDemo {
static {System.out.println("b");}
//此方法执行的输出的值依次是:b、a、d、f、e、d、g、epublic static void main(String[] args) {new StaticCode().show();new StaticCode(4).show();}}
相关文章推荐
- 简单测试java里一个对象的初始化是按怎样的顺序执行的
- 实例化一个对象(类加载)的执行顺序详解
- 新建一个对象,java虚拟机的各个执行操作
- 对象初始化的执行顺序
- C#创建对象时各种初始化属性、字段的方式的执行顺序
- 剖析一个java对象初始化顺序问题
- 浅析一个java对象初始化顺序问题
- 对象初始化执行顺序
- java 用自身类的对象初始化静态变量 执行顺序
- java类的初始化块/执行顺序,实例化对象数据赋值
- Java中创建对象时,初始化成员变量的代码的执行顺序
- 一个java对象的初始化顺序
- Unity对象实例的执行顺序探究及一个对象关联多个脚本的
- 通过一个简单类就可以知道java类和对象的初始化顺序
- 对象初始化的执行顺序
- java所有对象初始化的执行顺序
- Java 对象初始化顺序 执行顺序
- 一个小例子看懂java对象初始化执行过程
- 剖析一个java对象初始化顺序问题
- java类的初始化块/执行顺序,实例化对象数据赋值