Java编程思想读书笔记

 
Java编程思想读书笔记
第四章 初始化、清除对象
This
假设你希望在方法的内部获得对当前对象的引用。由于这个引用是由“编译器偷偷”传入、的,所以没有标识符可用。因此,有个可供使用的专门的关键字: this This 关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。注意:如果在方法内部调用同一类的方法,就不必使用 this ,直接调用即可。
Static
静态方法就是没有 this 的方法。在静态方法的内部不能调用非静态方法,反过来倒是可以的。
成员初始化
Java 尽力保证:所有变量在使用前都能得到恰当的初始化。对于定义于方法内部的局部变量, java 以编译时刻错误的形式来贯彻这种保证。
初始化顺序
在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散步于方法定义之间,他们仍旧在任何方法(包括构造器)被调用之前得到初始化。
总结对象的创建过程如下:
1. 当首次创建类型为 Dog 的对象时(构造器可以看成静态方法),或者 Dog 类的静态方法 / 静态域首次被访问时, Java 解释器必须查找类路径,以定位 Dog.class 文件。
2. 然后载入 Dog.class (后面会学到,这将创建一个 class 对象),有关静态初始化的动作都会执行。因此,静态初始化只在 Class 对象首次加载的时候进行一次。
3. 当用 new Dog() 创建对象的时候,首先将在堆上 Dog 对象分配足够的存储空间。
4. 这块存储空间会被清零,这就自动地将 Dog 中的所有基本类型数据设置成了默认值(对数字来说就是 0 ,对布尔型和字符型也相同),而引用则被设置成了 null
5. 执行所有出现于域定义处的初始化动作。
6. 执行构造器。
特殊的初始化语法
Class Fang
{
static int j;
static int i;
static int k;
static{
j=1;
i=2;
k=3;
}
}
第五章 隐藏具体实现
问题:如何将变动的事物与不变事物相互隔离?
第六章 复用类
用组合的时候,初始化引用的时机:
1. 在定义对象的地方。这意味着他们总是能够在构造器被调用之前被初始化。
2. 在类的构造器中
3. 就在你确实需要使用这些对象之前,这种方式被称为:“惰性初始化”。在不必每次都生成对象的情况下,这种方式可以减少额外的负担。
第九章 异常与错误处理
异常处理的好处:
1. 问题出现了,你也许不知道该如何处理,但你的确不应该置之不理,你要停下来,看看是不是有别人或是在别的地方,能够处理这个问题,只是你在当前的环境中没有足够的信息来解决这个问题,所以你就把这个问题提交到一个更高级别的环境中,这里有人作出正确的决定。
2. 它能使错误处理代码变的更有条理性。与原来的对于同一个错误,要在多个地方进行检查和处理相比,你不必在方法调用处进行检查。并且你只需要在一个地方处理错误,既所谓的“异常处理程序”。这种方式不仅节省代码,而且把“描述做什么事情”的代码和“出了问题怎么办”的代码相分离。
3. 异常处理是 java 中唯一正式的错误报告机制,并且通过编译器强制执行。
异常发生要发生几件事情:
1. 首先,同 java 中其他对象的创建一样,将使用 new 在堆上创建异常对象。
2. 然后,正常的程序执行被终止,并从当前环境中弹出异常对象的引用。
3. 异常处理机制接管程序,并开始寻找一个恰当的地方继续执行程序,这个恰当的抵挡就是“异常处理程序”,它的任务就是将程序从错误状态中恢复:以使程序能要么换一种方式运行,要么继续运行下去。
异常形式参数
所有的标准异常类都有两个构造器:一个是缺省构造器;另一个是接受字符串作为参数,用来把相关信息放入异常对象的构造器。
捕获异常
异常处理的好处之一:使你得以先在一个地方专著于正在解决的问题,然后在别的地方处理这些代码中可能发生的错误。要明白异常是如何被捕获的:必须明白理解监控区域的概念。它是一段可能产生异常的代码,并且后面跟着针对这些异常的处理程序。
终止与恢复
异常处理理论上有两种模型:
1. 终止模型:一旦异常被抛出,就表明错误就无法挽回。
2. 恢复模型:
长久以来,尽管程序员使用的操作系统支持恢复模型的异常处理,但他们最终使用终止模型的代码,并且忽略恢复行为,原因:
1 .你的处理程序必须关注异常抛出的地点,这势必要包含依赖于抛出位置的非一般性代码,这增加了代码编写和维护的困难,对于异常可能会从许多地方抛出的大型程序更是如此。
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值