Java中对象的初始化过程详解
来源:互联网 发布:成都富士康java 编辑:程序博客网 时间:2024/05/21 18:31
在Java中,我们需要对对象进行初始化操作。
经常需要new 对象。但是new对象时到底发生了什么呢?
有时候我们不是特别清晰。
所以今天又重新学习了一下JavaSE部分,又有了新的感受。
在此记录一下
首先代码部分
Person类:
class Person{ private String name; private int age; private static String country = "cn"; Person(String name,int age){ this.name = name; this.age = age; } //构造代码块 { System.out.println(name+".."+age); } //静态代码块 static{ System.out.println("静态代码块"); } public void setName(String name){ this.name = name; } public void speak(){ System.out.println(this.name+"..." +this.age); } public static void showCountry(){ System.out.println("country="+country); }}
PersonDemo类(测试类)
class PersonDemo{ public static void main(String[] args) { Person p = new Person("zhangsan",20); }}
在Person p = new Person(“zhangsan”,20);
在运行这句这行代码时做了什么呢?
首先栈内存中有个引用(p)
右边有 值(new Person())所以需要加载Person类,
当Person p = null;是不会加载Person类的
1. new 对象的的时候。JVM从硬盘中取Person.class文件并加载到内存中。
2. 执行该类中的static代码块(静态代码块),如果有的话,给Person.class类进行初始化
3. 并开辟了堆内存空间。分配内存地址
4. 在对内存中建立对象的特有属性,并进行默认初始化(比如int类型默认为0,引用类型默认为null等)。
5. 对属性进行显示初始化,
6. 对对象进行构造代码块初始化
7. 对对象进行对应的构造函数初始化
8. 将内存地址赋值给栈内存中的p变量
阅读全文
0 0
- Java中对象的初始化过程详解
- Java中对象的初始化生成过程
- java中对象的初始化过程
- java中一个对象的初始化过程
- Java中对象的初始化过程
- Java中子类对象初始化的过程
- java中类的初始化过程详解
- java面向对象中对象的初始化过程
- JAVA对象的初始化过程
- java对象的初始化过程
- JAVA 的对象初始化过程
- JAVA 对象的初始化过程
- JAVA对象的初始化过程
- Java对象初始化的过程
- 对象的初始化过程-java
- Java - 对象的初始化过程
- Java: 对象的初始化过程
- Java 对象的初始化过程
- 欢迎使用CSDN-markdown编辑器
- win7_64+opencv3.10+opencv_contrib+cmake3.6配置
- 整数中x出现的次数(1-n中x出现的次数)
- tomcat 广播方式配置session共享的server.xml
- Linux——PXELINUX网络安装
- Java中对象的初始化过程详解
- ssm项目遇到的问题
- Java 8 reduce 是什么
- python条件判断 if else
- (0072)iOS开发之UITableViewCell高度自适应探索--cell预估高度
- 抽象类与接口“类”的区别
- 迷茫的学生想好Android Studio
- 解决maven web项目Cannot change version of project facet Dynamic Web Module错误
- 未来数字货币发展前景巨大,业内人士看好莱德币