第五章 初始化与清理5.6 成员初始化 Java尽力保证:所有变量在使用前都能得到恰当的初始化。对于方法的局部变量,Java以编译错误的形式来保证。如下:void f() {
int i;
i++; //Error:i not initialized
}
会得到一条错误的消息,提示i可能没有初始化。编译器可以给i赋初值,但是并没有这么做,因为没有初始化是程序员的疏忽,为...
分类:
编程语言 时间:
2015-05-06 11:08:53
阅读次数:
122
第五章 初始化与清理(二)5.5 清理:终结处理和垃圾回收 清理的工作常常被忽略,Java有垃圾回收器负责回收无用对象占据的内存资源。但也有特殊情况:假定对象(并非使用new)获得了一块”特殊”的内存区域,由于垃圾回收器只知道释放那些由new分配的内存,所以不知道如何释放特殊内存。Java允许在类中定义一个名为finalize()的方法,工作原理”假定”是这样的:一旦垃圾回收器准备好释放对象占...
分类:
编程语言 时间:
2015-05-05 14:34:52
阅读次数:
269
第五章 初始化与清理5.1 用构造器确保初始化5.2 方法重载 区分重载方法:每个重载方法都必须有一个独一无二的参数列表;基本类型参数能从一个较小的类型自动提升至一个较大的类型;不能以返回值区分5.3 默认构造器 无参构造器,没有编译器会自动生成5.4 this关键字 this关键字只能在方法...
分类:
编程语言 时间:
2014-12-26 21:29:28
阅读次数:
143
Java编程思想学习笔记目录第二章:一切皆对象第三章:操作符第四章:控制执行流程第五章:初始化与清理第六章:访问权限控制第七章:复用类第八章:多态第九章:接口第十章:内部类第十一章:持有对象第十二章:通过异常处理错误第十三章:字符串第十四章:类型信息第十五章泛型第十六章:数组第十七章:容器深入研究第...
分类:
编程语言 时间:
2014-12-24 21:20:45
阅读次数:
391
1. 区分重载方法:参数顺序的不同可以区分两个方法,不过,一般情况下千万别这么做,因为这会使代码难以维护不能通过返回值类型来区分重载方法:因为如果我直接调用f(), 此时java不知道应该调用那一个public void f(){ }public int f(){return 1;}2. 只有当需....
分类:
编程语言 时间:
2014-12-22 21:18:15
阅读次数:
268
1. 区分重载方法:
参数顺序的不同可以区分两个方法,不过,一般情况下千万别这么做,因为这会使代码难以维护不能通过返回值类型来区分重载方法:因为如果我直接调用f(), 此时java不知道应该调用那一个
public void f(){
}
public int f(){
return 1;
}
2. 只有当需要明确指出对当前对象的引用时, 才需要使用this关键字,例如,...
分类:
编程语言 时间:
2014-12-22 16:22:06
阅读次数:
255
从今天开始每天一小时的java 编程思想的阅读和编码,其实就是把书上的代码抄下来。5.5 清理:终结处理和垃圾回收 初始化和清理工作同等重要,但是清理工作却被常常忘记,但是在使用对象之后,对对象弃之不顾的做法并不是很安全。Java有自己的垃圾回收器负责回收无用的对象占据的内存资源。但也有特殊情况:假...
分类:
编程语言 时间:
2014-12-02 20:48:18
阅读次数:
241
1、初始化顺序
1)当首次创建一个新的对象的时候,或者是静态方法或者是属性第一次被访问时候,Java解释器就会尝试去定位相应的.class 文件。
2)载入.class 文件,有关静态初始化的动作都会在这个阶段执行。但是静态初始化只是在对象第一次载入的时候做一次初始化。
3)当用new新建对象的时候,Java虚拟机就会在堆上为对象分配足够的空间,并且将分配的空间清0。并将所有的属性初始化为默认值(数字类型初始化为0,而对象类型初始化为null)。
4)执行所有出现在属性定义处的初始化数据。
5)执...
分类:
编程语言 时间:
2014-11-21 20:35:35
阅读次数:
147
GDI+提供了GdiplusStartup和 GdiplusShutdown 函数来进行初始化和完成清理工作。你必须在调用其他的GDI+函数之前,调用GdiplusStartup函数,在完成GDI+工作后调用GdiplusShutdown 。具体的可以看下面的MSDN上的例子:#include #i...