Thinking in java 个人笔记 第五章(持续更新ing)

第五章  初始化与清理

1.用构造器确保初始化,例如:new person();将会为对象分配存储空间,并调用相应的构造器。

2.不接受任何参数的构造器称为默认构造器,也叫做无参构造器。构造器是一种特殊类型的方法,因为它没有返回值,但是这与返回值为空(void)明显不同,对于空返回值,尽管方法本身不会自动返回什么,但仍可选择让它返回的东西,但构造器则不会返回任何东西。

3.方法重载,方法名相同,方法签名不同(形式参数类型不同,顺序不同),区分重载方法:每个重载方法都有一个独一无二的形式参数列表,根据返回值来区分方法重载是行不通的

4.构造器,如果你没有写任何构造函数,那么系统会自动为你添加一个无参构造函数,若你已经添加了一个有参构造函数,那么,实例化该对象时,就必须调用有参构造函数,不能调用无参构造函数(除非你明确定义了一个无参构造函数),否则会报错。

5.this关键字,this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用,但要注意,如果在方法的内部调用一个类的另一个方法,就不必使用this,直接调用即可,当前方法中的this引用会自动应用于同一类中的其他方法。只有当需要明确指出当前的对象的引用时,才需要使用this关键字。this关键字对于将当前对象传递给其他方法也很用。如:return XXX.xxx(this)

6.在构造器使用this,如果为this添加了参数列表,那么就有了不同的含义,this(构造方法的形式参数)必须放在第一行,且只能调用一个,否则编译器会报错。

7.static关键字,static方法就是没有this的方法,在static方法中不能调用非静态方法,反过来倒是可以的,在没有创建任何对象的前提下,可以通过类名调用静态方法,在类中置入static方法就可以访问其他static方法和static域。

8.清理:终结处理和垃圾回收,把一个对象用完后就“弃之不顾”的做法并非总是安全的,垃圾回收器负责回收无用对象占据的内存对象,只知道释放那些经由new分配的内存,为了清理“特殊”内存,在类中定义一个finalize()方法,工作原理:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用finalize()方法,并且在下一次垃圾回收动作发生时,才会真正的回收对象占用的内存。finalize()方法的真正用途:1.对象可能不被垃圾回收2.垃圾回收并不等于“析构”3.垃圾回收只与内存有关。

9.java不允许创建局部对象,必须使用new创建对象,如果java虚拟机并未面临内存耗尽的情形,它是不会浪费时间去执行垃圾回收以恢复内存的,system.gc()用于强制进行终结动作。

10.成员初始化,所有变量尽量在使用前得到恰当的初始化,全局变量都有默认的初始化值,但是局部变量若在定义的时候没有初始化,则在使用的时候就会报错。

11.初始化顺序,在类的内部,变量定义的先后顺序决定了初始化的顺序,即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。

12.静态数据的初始化,无论创建多少个对象,静态数据都占用一份存储区域,static关键字不能用于定义局部变量,如果一个域是静态的基本类型域,且也没有对它进行初始化,那么它就会获得基本类型的标准初值,如果它是一个对象引用,那么它的默认初始化值就是null。注:静态变量初始化在静态方法之前调用,且静态对象只会初始化一次。

13.即使构造方法没有显示static关键字,但是它也是静态方法。静态代码块与其他静态初始化动作一样,仅此执行一次,当首次生成这个类的一个对象时,或者首次访问属于那个类的静态数据成员时。

14.数组初始化,数组是相同类型的,用一个标识符名称封装到一起的一个对象序列或基本类型数据序列。编译器不允许指定数组的大小,数组的赋值(复制)真正做的只是复制了一个引用。

15.若方法中XXX(String ...xxx),意义:可变参数列表,用于可选的尾随参数。

16.枚举类型,在创建enmu时,编译器会自动添加一些有用的特性,包括toString()方法,ordinal()方法(数序,第一个位置为0),values()方法(按照声明顺序产生常量值构成的数组)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值