重读《Java编程思想》之四:初始化与清理

来源:互联网 发布:ubuntu安装输入法命令 编辑:程序博客网 时间:2024/06/04 18:46

最近老加班,没时间再读,拖了好长时间才写了这些。


初始化与清理

1.      用构造器确保初始化:

1)       在创建对象时就会为对象分配存储空间,并调用相应的构造器。这就保证了在你能操作对象之前,它已经恰当地初始化了。注意:由于构造器的名称必须与类名完全相同,所以“每个方法首字母小写”的编码风格并不适用于构造方法。

2)       构造器没有返回值,这与返回值为void的类型也不同,void尽管不返回什么,但仍可以选择让它返回别的东西。构造器则不会返回任何东西。New表达式返回新建对象的引用,但构造器并没有返回任何值。

2. 方法重载:

1)       当创建一个对象的时候,就给这个对象分配到的空间起了一个名字,也就是说对象的名字就是对象实体的“门牌号”。所谓方法则是给某个动作取的名字。

2)       重载的方法就是方法名称相同,方法参数列表不同的几个方法。区分重载方法的标准就是重载的方法要有一个独一无二的参数列表。参数类型,个数,顺序不同都可以区分不同的重载方法,但尽量不要用顺序不同的参数列表来区分重载方法。

3.This关键字:

1)       在代码编译的时候编译器做了一些幕后工作,它暗自把“每个方法所操作的对象引用”作为第一个参数传递给各个方法。

2)       如果想在方法内部获得当前对象的引用,那么就可以用关键字this。This关键字只能在方法内部使用,表示“调用当前方法的那个对象”的引用。如果在方法内部调用用一个类的另一个方法,则没有必要使用this,直接通过方法名调用即可。

4.Static关键字:

1)       Static修饰的方法或变量可以在没有生命对象的前提下使用,也就是说不需要先实例化一个对象,然后再通过对象调用static方法,直接通过类名称就可以调用static修饰的方法,这也是static方法的主要用途。

2)       Static方法内部不能调用非静态方法或属性,反过来则可以。

5.清理:终结处理和垃圾回收

1)       Java有垃圾回收器负责回收无用对象占据的内存资源,但是它只知道释放那些经由new分配的空间。

2)       在C++中对象一定会被销毁(通过析构函数),而在Java中,对象却并非总是被垃圾回收。

3)       垃圾回收只与内存有关,也就是说,使用垃圾回收器的唯一原因是为了回收程序不再使用内存。

4)       Java尽力保证所有变量(这里主要是指基本数据类型成员)在使用前都能得到恰当的初始化。对于全局变量(类变量)即便是没有明确赋值,编译器也会默认为这些变量设置默认值。而对于方法内部的局部变量则是必须要自己进行初始化的,否则Java编译器会报错。

5)       对于对象,如果来类里定义了一个对象引用,如果不将其初始化,此引用就会获得一个特殊值null。

6.构造器初始化:

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

2)       无论创建多少个对象,静态数据都只占用一份存储区域。Static关键字不能应用于局部变量,因此它只能作用于域。

7.数组初始化:

1)       数组知识相同类型的,用一个标识符名称封装到一起的一个对象序列或基本类型数据序列。

2)       Java数组计数从0开始,可以使用的最大下标数十length-1。

3)       Java数组有两种声明方式:string[]str;或者string str[];如果用直接赋值的方式(大括号赋值)则必须在声明数组的时候就在等号后面跟大括号对数组进行初始化。数组的创建是在运行时刻进行的。

4)       不能用new创建基本数据类型数据。

原创粉丝点击