java编程思想学习笔记(5)--初始化与清理
2017-03-23 10:54
369 查看
第五章~~~,内容有点多,先上图了
对象创建过程总结
(假设有个名为Dog的类)
当首次创建类型Dog的对象时(构造器可以看成静态方法),或者Dog类的静态数据被首次访问时,java解释器必须查找类的路径,定位Dog.class文件
载入Dog.class文件(会创建Class对象),有关静态初始化的所有动作都会执行,因此静态初始化只在Class对象首次加载的时候进行一次
当用new Dog()创建对象时,首先将在堆上为Dog()对象分配足够的存储空间
这块存储空间会被清零,这样就自动将Dog的所有基本类型数据都设置成了默认值,而引用则被置为null。
执行所有出现于字段定义处的初始化动作
执行构造器
关于清理的部分,补充一些上次没有写的:
对象可能不被回收
垃圾回收不等于“析构”
垃圾回收只与内存有关
其他的看另一篇博客,Java编程思想学习笔记(5)–垃圾收集器,讲的的比较详细
关于初始化的部分:
类的数据成员的默认值如下:
char、byte、short、int、long为0
float、double为0.0
boolean为false
对象的默认值为null
关于静态数据的初始化,是在类装载时就全部进行初始化的,不过有没有调用,看一个例子
运行结果:
对象创建过程总结
(假设有个名为Dog的类)
当首次创建类型Dog的对象时(构造器可以看成静态方法),或者Dog类的静态数据被首次访问时,java解释器必须查找类的路径,定位Dog.class文件
载入Dog.class文件(会创建Class对象),有关静态初始化的所有动作都会执行,因此静态初始化只在Class对象首次加载的时候进行一次
当用new Dog()创建对象时,首先将在堆上为Dog()对象分配足够的存储空间
这块存储空间会被清零,这样就自动将Dog的所有基本类型数据都设置成了默认值,而引用则被置为null。
执行所有出现于字段定义处的初始化动作
执行构造器
关于清理的部分,补充一些上次没有写的:
对象可能不被回收
垃圾回收不等于“析构”
垃圾回收只与内存有关
其他的看另一篇博客,Java编程思想学习笔记(5)–垃圾收集器,讲的的比较详细
关于初始化的部分:
类的数据成员的默认值如下:
char、byte、short、int、long为0
float、double为0.0
boolean为false
对象的默认值为null
关于静态数据的初始化,是在类装载时就全部进行初始化的,不过有没有调用,看一个例子
/* *定义了两个静态成员,当使用其中的一个时,所有的静态变量都进行了初始化 */ public class StaticInitialValue { static String str=ss(); //使用函数进行初始化,方便查看是否初始化了 static int i=si(); static String ss(){ System.out.println("static String initial"); return "string"; } static int si(){ System.out.println("static int initial"); return 0; } public static void main(String[] args) { System.out.println(StaticInitialValue.str); } }
运行结果:
相关文章推荐
- Java编程思想学习(三) 初始化与清理
- Spring学习笔记 关于Bean的初始化和清理-init和destroy方法
- thinkinginjava学习笔记04_初始化与清理
- 《Java编程思想》学习笔记2——对象初始化和面向对象特性
- 【学习笔记】第五章 初始化与清理
- [学习笔记][Java编程思想]第5章:初始化与清理
- 学习笔记(一)初始化与清理
- Java 学习笔记 5 - 初始化与清理
- Thinking In Java 学习笔记 - 初始化与清理
- Java学习笔记——初始化与清理
- 《JAVA编程思想》笔记-初始化与清理
- Java学习笔记-初始化与清理
- 【Java】《Java编程思想》笔记-第五章 初始化与清理
- java 编程思想的学习笔记 - 第五章 初始化与清理
- 《Java编程思想》笔记 第五章 初始化与清理
- Java 编程思想(第四版)学习笔记(5)初始化与清理
- [原创] MicroWindows学习笔记之初始化过程
- SilverLight学习笔记--Silverligh之如何把InitParams 初始化参数从WebPage传递到Silverlight
- Directx9.0 a shader approach 学习笔记1---初始化D3D
- 学习笔记(JSJ-ServletConfig设置servlet初始化信息)