论坛首页 入门技术论坛

Thinking in java学习笔记(三)

浏览 1295 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-09-10  
第四章 初始化与清除 
1. 方法重载?由此碰到这个问题,经典……也总是让人容易去忘记。想一想,方法重载的两个必要条件:○1方法名相同○2参数列表不同(顺序不同也会造成重载)。也是区分的标准。

2. 说实话,我一直在考虑为什么不用方法的返回值作为重载的评判标准呢?看了这一部分后,我大概了解一些了,毕竟我们常常使用的方法,是使用方法的副作用,一个方法名往一个地方一摆,一调用,我们往往会把返回值忘掉;此时编译器该怎样判断使用哪一个方法呢?

3. 有些人执意将this放在每一个方法调用和字段引用之前,认为这样“更清楚更明确”。但是,千万别这样做。我们使用高级语言的原因之一就是它们能帮我们做一些事情。要是你把this放在一些没必要的地方,就会使读你程序的人不知所措,因为别人写的程序并不会到处使用this。遵循一种一致而直观的编程风格能节省时间和金钱。

4. 在一个构造方法中,只能用this去调用一个构造器,而不能用相同的方法调用两个构造器。

5. 也可以这样理解static方法,它就是没有this的方法。

6. Finalize()方法?它为什么存在,有什么用?要跟C++里的析构函数区分开来,而且一定要明白finalize()方法不是析构函数。○1对象可能不被回收;○2垃圾回收并不等于“析构”;○3垃圾回收只与内存有关。这样理解可以么:finalize方法会在对象被回收之前调用,据此可以用来实现清理系统不能自动清除的内存空间等。

7. 不要过多的调用finalize方法,它并不是用来进行普通的清理工作。无论是“垃圾回收”和“终结”,都不保证一定会发生。如果JVM并未面临内存耗尽的情形,它是不会浪费时间在回收垃圾和恢复内存上的。

8. 在类对象的初始化过程中,成员变量会被先初始化,然后是被调用的构造函数。而成员变量中首先被初始化的是静态成员,而且与声明摆放的位置无关,然后才是非静态成员;在生成多个含有静态成员的同一类对象时,静态成员只会被初始化一次。只有在使用这种类时,静态成员才会被初始化。

9. 多维数组可以不是规规矩矩的矩阵,可以由长度不等的数组构成。

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics