Java对象的创建过程
2016-03-20 21:22
471 查看
看到Java编程思想和深入Java虚拟机都有介绍对象的创建过程,在这里结合两本书的内容总结一下。
假设一个Book类,当我们通过new关键字进行对象创建Book mBook = new Book()的时候:
1、虚拟机JVM首先会在常量池中检查是否有Book类的符号引用,如果没有则需要查找类的路径,进行Book.class类文件的定位。
2、类加载器对Book.class进行加载。并进行静态变量、静态代码块、静态方法的初始化(静态成员只会在类加载时初始化一次)。
3、在堆(对象分配到堆上)上为Book对象分配足够的空间。
4、对分配给对象的内存空间进行清零,也就会自动为Book对象的基本类型初始化为默认值(数值为0,布尔值为false),对象引用为null.
5、进行book对象成员变量的自定义初始化,比如:private double price = 92.2;price成员变量先被初始化为默认值0.0,然后才执行我们自定义的初始化92.2。
6、最后执行构造器 Book();
假设一个Book类,当我们通过new关键字进行对象创建Book mBook = new Book()的时候:
1、虚拟机JVM首先会在常量池中检查是否有Book类的符号引用,如果没有则需要查找类的路径,进行Book.class类文件的定位。
2、类加载器对Book.class进行加载。并进行静态变量、静态代码块、静态方法的初始化(静态成员只会在类加载时初始化一次)。
3、在堆(对象分配到堆上)上为Book对象分配足够的空间。
4、对分配给对象的内存空间进行清零,也就会自动为Book对象的基本类型初始化为默认值(数值为0,布尔值为false),对象引用为null.
5、进行book对象成员变量的自定义初始化,比如:private double price = 92.2;price成员变量先被初始化为默认值0.0,然后才执行我们自定义的初始化92.2。
6、最后执行构造器 Book();
相关文章推荐
- java foreach 循环原理
- 20145239杜文超 《Java程序设计》第3周学习总结
- eclipse 是用来写客户端的,MyEclipse 是用来写服务器端的,谐音记忆法,My 买,买服务器这样就好记了。
- 47. Permutations II | Java最短代码实现
- spring学习笔记(8)AOP增强(advice)配置与应用
- selenium在Eclipse中打开fireFox浏览器是报报错connect to host 127.0.0.1 on port 7055
- 随堂笔记160316内部类
- Java并发编程:sleep、wait、yield对比
- 随堂笔记160315工厂和代理模式
- 随堂笔记160314适配器和多态
- ServletConfig与ServletContext对象详解
- Java 套接字使用
- 20145317彭垚《Java程序设计》第3周学习总结
- eclipse通过maven插件添加Jersey archetype
- Java枚举类的高级用法说明
- java常用设计模式
- 20144303 《Java程序设计》第三周学习总结
- 第七届蓝桥杯Java语言B组真题(省赛)
- 《Java程序设计》第三周学习总结
- struts 标签库select、datepicker、checkboxlist、doubleselect标签使用学习笔记