读《Java编程思想》(中文/英文)第四版 笔记

本次分享主要围绕《思考Java》第四版的学习体会展开,详细介绍了作者对Java SE5/6的更新,深入探讨了接口、内部类及设计模式等内容,并分享了在学习过程中遇到的一些细节问题与心得。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天开个头,从一个学弟那里借到了Thinking in Java的中文第四版,先看着,要是他要呢,我在去看英文原版的,美啊~~~

有很多话是需要仔细并反复品味的,我想这本书中也存在大量的珍贵格言和不敢或望的知识点。记录一下,也总比原来东一点、西一点点记录要好很多。只要这个Blog不倒,相信将来都可以回顾这些学习心得。

好,下面就开始正题吧: [list=1]
[*]TIJ4ed对JavaSE5/6做了相应更新,作者的宏愿是买过之前版本的读者还能买新版,第三版我也读二百多页,难懂的挺多,希望第四版能改进吧
[*]读完第九章接口了,本来在本书的第三版中接口和内部类是在一章中的,现在分开使得读者对阅读的对象更好的把握,这应当是作者的意图吧。 另,这章中涉及到了几种设计模式:适配器、工厂。尽管学过设计模式的课,不过还是一知半解,对适配器模式没有一个准确概念,只是有个感性认识,似乎是对某个类进行封装,创建新的接口。工厂模式还好一些,至少大体上明白了书中用工厂模式的目的是体现接口的优点---灵活、方便。
[*]第十章 内部类。 看到了迭代器模式的一个例子,不过不太明白哪里实现了迭代器模式。
[*]还让深奥的东西往后排吧,如果其他章和内部类关系不大就先不读了,现在暂时读到10.4。将来要看到话可以从10.5开始。
[*]第11章 持有对象 保存对象的容器,Java中分两类:Collection和Map
[list]
[*]Collection:ArrayList,LinkedList,HashSet,TreeSet,LinkedHashSet
[*]Map: HashMap,TreeMap,LinkedHashMap
[/list]
[*]发现了练习题的答案,yeath!
[*]开始第12章了,异常处理 看到了[color=red][b]印刷错误[/b][/color]: 256页,12.5 异常说明中的第2段之后4行排版混乱。不过仔细读也能找到正确的顺序。(英文版456页)
[*]P269 练习18的答案似乎有误啊:

class VeryImportantException extends Exception {
public String toString() {
return "A very important exception!";
}
}

class HoHumException extends Exception {
public String toString() {
return "A trivial exception";
}
}

class MeaninglessException extends Exception {
public String toString() {
return "A meaningless exception";
}
}

public class LostMessage18 {
void f() throws VeryImportantException {
throw new VeryImportantException();
}
void dispose() throws HoHumException {
throw new HoHumException();
}
void eliminate() throws MeaninglessException {
throw new MeaninglessException();
}
public static void main(String[] args) {
try {
LostMessage18 lm = new LostMessage18();
try {
try {
lm.f();
lm.dispose();
} finally {
lm.eliminate();
}
} catch(Exception e) {
System.out.println(e);
}
} catch(Exception e) {
System.out.println(e);
}
}
//个人觉得上面的程序中lm.dispose()没有运行,也就没有产生HoHumException异常
/*应当是这样做:
try{
try {
lm.f();
} finally {
lm.dispose();
}
} finally {
lm.eliminate();
}
*/
}

[*]看完 Exception 这章了,感觉作者对Java的“被检查的异常”不乐观,小程序用起来尚可,大规模的就成为负担。 作者也提出来两种解决方法,算是完美 了一些。不过后一种方式还没太明白透。
[*]13章 String,13.6这一节讲正则表达式,值得注意到是反斜杠‘\‘在Java中的意思是不一样的,除了\n\t等都要用\\,如\\d表示一位整数,“-?\\d+”表示可能有一个负号后面跟着一位或多位数字。问号表示前面的字符可能有。

使用正则表达式:String.matches(d)方法,例如("-123".matches("-?\\d+")),结果为boolean型。
[*]今天中文版的《Thinking in Java》还给学弟了,我看到302页,英文版的534页左右。
[*]今天是2008-4-24,正式启动读书计划,因为我昨天和老婆一起去买了一本。有书看了。
[/list]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值