本文是《
JAVA
编程思想》第四章的读书笔记
一、
用构造函数初始化
1.1、
函数的签名和返回值
构造函数可以通过不同的函数签名来进行重载。构造函数没有返回值,这和返回值为
void
的是不同的
1.2、
构造函数的重载
如何区分构造函数的不同呢,用不同的函数签名。函数签名的顺序不同都可以,但是这样的编程风格是不好的。
函数的签名会上升转型(当没有合适的函数签名出现的时候),但是不会窄化转型,你必须要显示的进行强制类型转换。
不能以
return value
的不同作为重载的标准。
当程序提供了构造函数以后,系统就不在提供默认的构造函数了。
This
关键字指的是当前对象,有了
this
后,可以在构造函数中以如下的方式调用
Class A
{
A ()
{…}
A(
int
a,
char
b)
{… }
A(
int
a,
char
b,
float
c)
{
This(a,b);
//
注意:只能调用一次
}
}
1.3、
Static
的含义
你无法在
static
函数中调用
non-static
函数,但是你可以在
non-static
中调用
static
函数。
二、
类的清理
JAVA
的垃圾回收机制只能回收
new
出来的对象,但是你的对象不是
new
出来的而获得的“特殊”内存,那么
JAVA
的垃圾回收就不能处理,这样就必须用
finalize()
函数来释放你的“特殊”内存。
JAVA
的清理方式是先调用你的
finalize()
,然后在下次垃圾回收的时候来清理你的“特殊”内存。
关键的三句话:
垃圾回收不等于析构;
你的对象可能不被回收;
垃圾回收动作只回收内存。
用
System.gc()
可以用来强迫终结动作的发生