1、静态代码块初始化
2、默认初始化
3、构造代码块初始化
4、构造函数初始化
调用实例成员的过程
1、当person.class加载进jvm中,首先会在方法区/共享区/数据区开辟一片属于person的空间,里面会分为类成员、实例成员两部分;
2、当执行new pserson(“zhangsan”,”20”)时,会在堆内存中开辟空间初始化person的一个实例,并且将person的引用p存放在栈内存中;
3、当p.setName被调用时,就调用了方法区中的setName方法,由于出现了临时变量name=lisi,所以会在栈内存中开辟一个空间,this.name=lisi,而这里的this指的就是p这个引用地址,然后就指向了堆内存中的具体对象。最后堆内存中的name就变成了lisi;
调用类成员的过程
1、类成员的访问与是否创建实例对象无关,所以也就造成了,在内存中调用与堆内存无关;
2、其实就是main方法调用方法区中的类方法,改变方法区中的类成员变量
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有