第四章 初始化和清除 2018-10-09

1.构造器

1.1 编译程序会帮我们自动创建一个默认构造器

1.2若定义带参数构造器,则该方法为唯一的构造器,编译程序不会自动合成默认构造器

1.3属于特殊的方法类型,与类名相同,没有返回值

2.方法过载:方法名相同,采用独一无二的自变量类型列表

3.this 只能在方法内部使用:

3.1 可为已调用了其方法的那个对象生成相应的句柄

3.2 在构造器中调用构造器,不可调用两个

3.3 static方法没有this

4.垃圾回收机制 **:还未看懂

可调用finalize()方法,但不是回收,只是放到了垃圾待回收区域

5.初始化

5.1 句柄初始化---》构造器

5.2静态对象(仅执行一次)---》句柄初始化---》构造器

(1) 类型为 Dog的一个对象首次创建时,或者Dog 类的static方法/static 字段首次访问时,Java 解释器必须找到Dog.class(在事先设好的类路径里搜索)。

(2) 找到Dog.class 后(它会创建一个 Class对象,这将在后面学到),它的所有 static初始化模块都会运行。因此,static初始化仅发生一次——在 Class 对象首次载入的时候。

(3) 创建一个new Dog()时,Dog 对象的构建进程首先会在内存堆(Heap)里为一个 Dog对象分配足够多的存储空间。

(4) 这种存储空间会清为零,将Dog中的所有基本类型设为它们的默认值(零用于数字,以及 boolean和char 的等价设定)。

(5) 进行字段定义时发生的所有初始化都会执行。

(6) 执行构建器。正如第6 章将要讲到的那样,这实际可能要求进行相当多的操作,特别是在涉及继承的时候。

5.3static代码块:代码仅执行一次,首次生成类对象或者首次访问属于那个类的一个 static 成员时

5.4数组初始化:int [] al

Object[] obj = new Object[]();——这个数组就可以存放任意类型的数据

5.5多维数组

int[][] a1 = {{ 1, 2, 3, },{ 4, 5, 6, },};

int[][][] a3 = new int[7][][];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容