java 对象的初始化过程
2015-12-26 14:58
585 查看
PersonDemo p=new PersonDemo("lisi",20);这句话都做了什么事情?
因为new用到了PersonDemo.class,所以会先找到PersonDemo.class文件并加载到内存中。
执行该类中的静态成员和static代码块,如果有的话,给persondemo.class类进行初始化。
在堆内存中开辟空间,分配内存地址。
在堆内存中建立对象的特有属性,并进行默认初始化。
对属性进行显示初始化。
对对象进行构造代码块初始化。
对对象进行对应的构造函数初始化。
将内存地址付给栈内存中的p变量。
public class PersonDemo { private String name="zhang"; private int age; private static String country = "cn"; //静态代码块,对PersonDemo.class类进行初始化 static { System.out.println("静态代码块" + country); } //构造代码块,对对象进行初始化 { System.out.println("构造代码块" + this.name); } //构造方法 public PersonDemo(String name, int age) { this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public static void show() { System.out.println("静态方法" + country); } }
相关文章推荐
- java枚举
- java web基础 --- form提交
- java生成二维码 经典demo
- SpringMVC中HelloWorld实现(三)
- java判断一个char是否是由字母数字组成
- java MAP 遍历
- java时间类 Date,DateFormat ,Calendar
- 在java中两个时间相减
- java的静态导入
- Java基础--反射
- 注解
- Java 异常处理
- Java 流(Stream)、文件(File)和IO
- Java动态代理(Dynamic Proxy)
- Struts2基础
- spring事务
- [Java开发之路]Java字符串的10大热点问题盘点
- java 构造方法
- Java 多线程(1)-Thread和Runnable
- Java基础学习总结(1)——equals方法