本帖最后由 jlu_lamp_lamp 于 2011-10-27 11:26 编辑
本书已经重印,下面大部分勘误都已得到了改正。
我根据“《疯狂Java讲义》征集勘误”帖子将所有的勘误按照页码顺序列了出来,同时把重复的删除了。
并且会根据“《疯狂Java讲义》征集勘误”的帖子保持即时更新。
更新依据:“《疯狂Java讲义》征集勘误”帖子中有评分记录的贴子。
当前更新日期至:2011年10月27日11点21分
当前更新位置至:“《疯狂Java讲义》征集勘误”帖子第148楼。
PIV(序言部分)
最后一段,"Hibernate"写成了"Hiberate"!
P13
文字部分第4行
编辑Java程序需要使用javac命令,"编辑"改为"编译"
P17
中间的"注意", 后边少了个 "同" 字. 应该该为:"相同".
P19
文字部分第4行,则是运行的是java hellwolrd . 缺少"o"
P27
2.1.2节
直到型循环:表示从结构入口处直接执行循环体,在循环终端出判断条件,如果条件不满足,返回入口处
继续执行循环体,直到条件为真时再退出循环到达流程出口处,是先执行后判断。因为是“直到条件为真
时为止”,所以。。。
直到型循环:表示从结构入口处直接执行循环体,在循环终端出判断条件,如果条件满足,返回入口处继
续执行循环体,直到条件为假时再退出循环到达流程出口处,是先执行后判断。因为是“直到条件为假时
为止”,所以。。。
P29
2.2节下面的第一行(即倒数第18行):OOA面向对象分析、OOD(面向对象设计)和OOP(面向对象编程)
。。。应该加个括号:OOA(面向对象分析)
P32
文字倒数第三行,最后那里应该是图2.14显示了它们之间的依赖关系。错写成图12.14了
P32
2009年第二次印刷,P32,图2.12中,Student与BasketBallClub之间的关系,菱形应该指向BasketBallClub,表示BasketBallClub是由Student聚合而成的。同样,在Student与HandWritingClub之间的关系,菱形应该指向HandWritingClub。
P33
2.2.3节
对java程序而言,可复用的组件通常打包成一个JRA、WAR等文件,JRA改为JAR
P43
3.1.2节
javadoc的常用选项有如下几个:
-d<directory>:
-windowtitle<text>:
doctitle<html-code>:
缺少中划线“-”
P44
TestJavadocTag.java源码中private String hello(String name)与光盘的codes中不一致,codes的源码
文件中是public String hello(String name)
P47
3.2.3节 表3.1 java关键字
vlass改为class
P49
.4.2节
字符常量必须使用单引号(")括起来
字符常量必须使用单引号(')括起来
P51
中间位置,科学计数法形式:例如5.12e2(即5*10的二次方)
应改为 科学计数法形式:例如5.12e2(即5.12*10的二次方)
P56
3.5.2节
8个包装类都提供了一个parseXXX(String str)的静态方法用于将字符串转换成基本类型
Character类中没有这样的方法,字符串转换成字符数组可以用String类中的非静态方法toCharArray()
P63
图3.13 左侧文字说明的最后一行,应该是正数的补码和原码相同,书上写成了整数!
P67
老师回答里面,第一句话:
在java、javaEE平台的很多地方都会通过缓存来提供系统的运行性能。
通读整段话,其中的提供应该改为提高
P74
页第一段代码后的第一段,第二行,应为:"当c--语句...",少了个"-".
P74
倒数第二行:"else 的隐含条件对前面条件取反",建议在"隐含条件"后加个"是"
P76
4.2.2节
switch语句后面的控制表达式的数据类型只能是整型,不能是boolean型
不可以是long类型
P77
如果所有case标签后的值都不与expression表达式的值相等,则执行default标前后的代码块
如果所有case标签后的值都不与expression表达式的值相等,则执行default标签后的代码块
P91
注释://使用循环输出pricese数组的每个数组元素的值 。"pricese"改为"prices"
P96
文字倒数第5行:每个数组元素里存储还是引用
改为:每个数组元素里存储的还是引用
P100
第四段第二行:"这个一维数组的长度是3个",多了个"个"字
P102
4.6.5节下面第二个方法:binarySearch(type[] a , int fromIndex , int tolndex , type key)前面少
了返回值int
应该为:int binarySearch(type[] a , int fromIndex , int tolndex , type key)
P104
倒数第二个灰色部分里,程序运行结果:陆千壹百零玖
应该是:陆仟壹佰零玖
P136
第二个灰色块往下数第四行,假设某个应用中包含2个Helle类
应该是Hello类
P136
第二个灰色块“javac -d . Hello.java”的上面第一行,如下命令来编辑这个Java文件
应该是编译
P139
第5章5.4.3
倒数第6、7行:
import static package.subpackage...ClassName.fieldName;
上面语法导入package.subpackage...ClassName类的fieldName静态属性,例如可以使用import
static import java.lang.System.out;语句来导入java.lang.System类的out属性。
红色的那个import是多余的。
P143
第一行,从图5.14中可以看出
最下面的那个方框里的答学生提问的第5行也是图5.14
右边的图是5.19,所以都应该是5.19
P144
中间部分. ..........extend 关键字在英文是扩展,而不是继承! "extend"缺少"s"
P155
第二段代码倒数第二行:不用在父类构造器中调用被子类重写的方法
改为: 不要在父类构造器中调用将要被子类重写的方法
P156
第1行,则编程调用被子类重写后的方法, "编程"改为"变成"
P158
class wolf代码里,中间部分://直接复用A niaml 提供的breath方法来实现Bird的breath 方法,是否应该成把实现wolf 的 breath 方法
P159
倒数第3行第一句话:"Java 使用构造器对单个对象进行初始化 块 操作",多了个"块"字
P160
最下面一行,初始化只能在创建Java对象时隐式的执行,而且....., 初始化改为"初始化块"
P169
第7行,int类型的变量只能自动装箱成Integer 对象(.......................),不要试图装箱Boolean对
象,"装箱"缺少"成"
P172
讨论"== 和 equals比较运算符",建议加上"== 不能比较类型不同的两个对象":
class A{} class B{} A a = new A(); B b = new B(); System.out.println(a == b); 这样有错
。但这样可以: List list = new ArrayList(); System.out.println(a == list);
P174
文字部分第1行,上面程序.................;另一个对象必须是Person类, "类"后面应该加上"实例"
P178
文字部分14行,final修改的类属性,实例属性能指定初始值........, "修改"改为"修饰"
P179
文字部分1行,上面程序详细示范了初始化成员变量的各种情形, "成员变量"前缺少"final修饰"
P186
数组缓存的例子:"如果缓冲池已满时",让 pos = 1重新开始缓存,这个时候会出现重新缓存已经缓存的
内容,例如现已经缓存了{1,2,3,4,5,6,7,7,9,10}. 此时若查找 11,则数组的第一个元素重新缓存 11:
{11,2,3,4,5,6,7,7,9,10}. 再次查找 10,但此时需要重新将 10 缓存到数组的第二个元素,而10 才刚
刚被缓存过
P197
倒数第4行
抽象父类作为多个子类的抽象父类, 更正:把前一个"父类"中"父"去掉
P198
6.6.6 第三段:"简单工厂模式" 和后面的 "命令模式" 相对应,应该为粗体
P198
6.6.6节下面的这一段,出现了3个"computer"单词拼写错误的情况,都拼写成了"comupter"
P201
//文字部分第1行,通过一个Command类,就实现了...... , "类"该应改为"接口"
P205
上面一段代码, System.out.println("局部变量的属性值"+prop); //"局部变量的属性值" 改为"局部变
量的值"
P205
代码块中最下面一行,
out. accessInnerProp(); 中间多了一个空格
P207
第一段"注意"中:第一句话,应该为"非静态内部类里不可以有静态初始化块"
P209
第四行"则能在访问控制符对应的访问访问权限内使用",多了个"访问",应该去掉
P210
非代码的倒数第六行应该为粗体
P215
下面的一段代码段中的 System.out.println(super.name+"教师在讲台上讲课");
将super.name改为getName()。
P222
文字部分倒数第5行,从上面的程序....当我们为Gender类创建了一个Gender(String name)构造器后,
"Gender类"改为"Gender枚举类"
P222
"Gender.java"代码段中应该把"private String name "改为"private final String name;"才和上面一
段文字的描述相符
P224
第一行最后一句话:"如果读者还没有记得匿名内部类的话",应该去掉"没有"
P227
最下面的 "TestGc.java"代码段中"private double height;"这句代码应该删除,才和P228页中,最上面一
行的表述的内容相符
P232
非代码倒数第四段第一句话:"无法通过虚引用来获 被引用的对象","获"后面少了个"取"或者"得"
P232
最下面的代码的第一句注释应该是“//取出弱引用所引用的对象”
一下的都是同一个错误~!就是把该用“弱”的地方用成啦“虚”~!
P236
第五点
5.查看JAR包内容:
里面举了两个例子:
“例如第二条命令。。。”
下面又有个“例如第二条命令。。。”
后面那个应该是第三条命令吧。。
P244
提示方框中 "warnning"单词多了一个"n"
P245
注意方框中:开头"Iteator"拼写错误
P246
7.2.2节第3行
程序清单:codes/07/7-2/TestIteratorError.java 改为"codes/07/7-2/TestForeach.java"
P246
除了可以使用Iterator类迭代访问.......... "类"改为"接口"
P248
第一段,第 二句话和第三句话重复
P254
第 10 行,"跑出异常" 应该为 "抛出异常"
P257
代码段下第1行
上面程序中R对象是一个正常重写了equals方法和comparable方法类(读不通)
改为:上面程序中R"类"是一个正常重写了equals方法和compareTo方法的类
P259
7.3.3节第1行
EnumSet是一个专为枚举类......,EnumSet中所有值都必须是指定枚举类型......., 把"值"改为"元素"
P264
7.4.2节第6行,
最后: 这可以减少增加重新分配的次数,把"增加"去掉
第8行,
...........,则可以在创建该他们时就指定....... ,把"该"去掉
P265
(倒数第7行)
//依然输出:[Struts2权威指南, 轻量级J2EE企业应用实战]
System.out.println(v);
依然 多余
P266
灰色代码段中第一行注释 //.......,将输出Arrays& rrayList 缺少"A"
P266
7.5节,第2行,队列的头部保存在队列时间最长的元素,队列的尾部保存在队列时间最短的元素,(读不通)
改为: 队列的头部保存的是在队列中存放时间最长的元素,队列的尾部保存的是在队列中存放时间最短的
元素
P268
注意下面的第一段:""当通常的编程过程...." 应该为:"但通常的编程过程"
P272
注意方框中第3行中间,"Hasbtable"单词拼写错误
P273
第二个 if 后面多了个 ")"
P274
文字第二行"对对象" 多了个 "对" 字
P275
灰色代码段下第2行,
该文件用于处理属性文件(前后结合起来读不通)
改为:该对象在处理属性文件时特别方便。
P275
灰色code下3行
Properies 改为"Properties"
P277
注意方框往上数2行,括号部分中CompareTo ,"C"改为小写
P284
/代码段中的第3行注释
//card是一局游戏中剩下的扑克牌 "card"改为"cards"
P284
initPlayer方法前的注释
/**
*初始化玩家,.........
*/
改为:
初始化玩家用户名
P297
倒数第二个灰色代码块的往下第二行
这就是泛型检查的警告,读者应该在前一章看到无数这样的错误.
我觉得这里改成警告比错误适合,因为错误和警告还是有区别的,警告并不是错误.
P299
第四块灰色的代码段
注释://下面代码编译错误,但运行时会引发:ArrayStoreException.
改为://下面代码能够正常编译,................
P299
第4段灰色code上2行
如果试图把一个Float对象保存到..... Float 改为"Double",
代码中是na[0] =0.5;
P300
最下面的一行注释 //定义Shape的子类Circle,
改为://定义Shape的子类Rectangle
P300
第一行:"写作:Collection<?>"与前文想对应, 应改为:"List<?>"
P301
第三块灰色的代码段
c.drawAll(shapeList); 把实参"shapeList"改为"circleList"才符合该行注释的要求
P303
文字部分倒数第4行,可见上面的方法的参数不可以使用Collection<Object>, Collection<Object>改
为"Collection<String>"
P303
文字部分第4行, .............,程序需要为形参设定多个上限......, “形参”改为“类型形参”
P304
第二块灰色代码段,倒数第三行注释
//下面代码中T代表String类型,
将上面的String改为Object
P305
文字部分第8行,
......,不难发现该T型参代表的实际类型是String类型. "T形参"改为"T类型形参"
P305
第一块灰色代码段往上数4行,
发现该T形参代表的Number类型, 改为发现该T类型形参代表了Number类型
P305
与泛型方法签名进行对比:test(Collection<?extends T>a,Collection<T>c),编译器就无法正确识别T所
代表的实际类型。
是否应该改为:与泛型方法签名进行对比:test(Collection<T>a,Collection<T>c),..........
P306
顶行:
List<Object> ao = new ArrayList<Object>();
List<String> as = new ArrayList<String>();
//下面代码将产生编译错误
test(as , ao);
}
应该把注释://下面代码将产生编译错误 去掉。
因为此时已经没有编译错误了。
P307:
public static <T> void copy(Collection<T> dest , Collection<? extends T> src)
{
T last = null;
for (T ele : src)
{
last = ele;
dest.add(ele);
}
return last;
}
应该改为:
public static <T> T copy(Collection<T> dest , Collection<? extends T> src)
{
T last = null;
for (T ele : src)
{
last = ele;
dest.add(ele);
}
return last;
}
P307
8.4.3节1到3行中,有4处出现dist的地方,前3个"dist"改为"dest",按照"dist"出现的顺序第4个"dist"
应该改为"src"
P307
第三段灰色代码段
public static <T> void copy.................... void 改为 T (否则编译报错) return last "缺
少;"
P308
灰色代码段上面一行,
程序清单: codes/08/8-4/TestTreeSet.java, 而光盘中没有
P309
第三块灰色代码段下第一行 .......,此时T参数的类型是Number,"T参数"改为"T类型参数"
P310
代码段下面一行,
上面程序.............,其实类型形参的上限是Number, 把"其实"改为"其"
P311
代码第四行最后的 o 应该为:lsa
P311
最下面的灰色代码段
//将List<Integer>对象作为oa的第一个元素
oa[1] = li; 把"1"改为"0"才符合注释的描述
P316
文字第一段最后一行 "JVM" 后多了个 "以" 字
P320
第4段,关于currentTimeMillis()和nanoTime()的叙述,第2行,“前者以毫秒作测量单位,后者以微秒作为测量单位”
根据API,nanoTime()应该是以毫微秒(即纳秒)作为测量单位的(1微秒=1000毫微秒),所以这一段关于nanoTime()的
说法都应该是毫微秒为单位,不是微秒。
P323
第 8 段:"将指定字符串数组" 应该为 "将指定字符数组"
P323
14行中函数参数为int count,而后面的说明中却用的是length。所以可能是笔误
P325
倒数第8行,上面程序除了使用了4字符串直接量之外,"4"改为"3个"
P326
程序清单TestStringBuilder.java中
sb.replace(5,6," ,");//sb="hello java"应该是
sb="hello,java"
P326
中间有行字是:
“可通过length()和setLength(int len)方法里访问和修改其字符序列的长度”
“方法里”错了,应该是“方法来”。
P327
文字部分第2行,.....,程序看到StringBuilder的leng()方法, "leng()"改为"length()"
P329
上边的代码片段注释第四行:long 应该为 int
P333
文字部分倒数第7行,
int compareTo(Date antherDate) :比较两个日期的大小,后面的时间大于前面的时间.
错误:"后面的时间大于前面的时间"这句话掉了半截,
(作者修改为:后面时间大于前面时间时返回-1,否则返回1。)
P334
9.4.2节第8行,
Java本身提供了一个GregorianCalendar类,一个代表GregorianCalendar的子类,
改为:Java本身提供了一个GregorianCalendar类,一个代表Gregorian日历的子类,
P334
第二块灰色代码段
注释://通过Date 对象获得对应的对象中(结合后面注释读不通)
改为://通过Date对象获得对应的Calendar对象
P334
void roll(int fiele,int amount):与add方法基本类似,区别在于加上的value超过了......
红色value改为amount
P335
倒数第2行中
call.add(MONTH,6); //2003-08-23 =>2004-2-29
此处的23 实为 31
P342
第一段的代码并没有输出"------------------------------",但运行结果中却有
P346
最下面
书中提到的对应的codes/09/9-6/LocalList.java源文件,光盘中不存在
P355
代码段中的第一行注释//创建一个Simpledate
改为: //创建一个SimpleDateFormat对象
P359
出于这种考虑,我们试图把"错误处理代码业务"从"业务实现代码" 中分离处理, 把"错误处理代码业务
"中"业务"去掉
P360
10.2.2下面第一行,注意上面ShowHand 程序中catch关键字的形式
ShowHand改为GoBang
P361
图10.2继承树中"RunttimeException"拼写错误
P362
文字部分第6行, ........不是数字,而是字母,将发生数字格式异常,Java运行时将调用
IndexOutOfBoundsException异常,
"IndexOutOfBoundsException"改为"NumberFormatException"
P364
第一个提示方框中,上面程序使用的FileInputStream是.......文件输出流,"出"改为"入"
P366
第3行最后, "finllay"单词拼写错误
P367
10.2.5节,
正如Testfinally.java程序中斜体字体部分代码,catch块中再次包含了一个........,
错误:结合代码"Testfinally.java"来看,"catch块.........."应该改为"finally块..............."
P368
第三段灰色代码段往上数3行
.......声明抛出的异常类型的子类或相等,"相等"改为"相同"
P369
文字第三段:"Java 要求必须现显示......" 多了个"现" 字
P370
文字第一行倒数第5个字该为:"棋"
P370
第一个代码块中粗体部份中的“throws”应该为"throw"吧?
P371
10.4.2节第6行
带一个字符串的构造器,"字符串"改为"字符串参数"
P373
灰色代码段和P374页第一段灰色代码段的第一行
"public calSal throws SalException" calSal缺少"( )"
P375
倒数第二段第二行最后一句话:"或异常没有被处理后..." 是否应把"没有"去掉?
P377
10.6.1节
第6行,程序可能不再愿意编写烦琐的错误..... "程序"改为"程序员"
P386
第一个灰色代码及其上面的说明文字:
“c.setLayoutManager(new XxxLayout());”
文档里的容器方法只有setLayout(LayoutManager mgr),而不是书上写的这样
P389
疯狂java讲义中的代码,印刷少了一行声明p2变量的。还有这一章的代码,总是把import省略掉,但其实
读者没有看到静态引入的话,会很难理解SOUTH等成员变量怎么来的。。。我也是对照看了光盘源代码才
看懂的。。。
P398
图11.17中Strut水平间距 应该为 Glue水平间距
P409
11.5.3节往上数第三行
即程序只想重写windowClosingw
后面多了一个w,应为windowClosing
P428
到数第4个行注释 //定义个BuffedImage对象,用于保存缩小后的位图
BuffedImage 应该改为BufferedImage
P430
代码中黑体部分的/*...*/注释的第三行
1.如果下棋的点已经有棋子,不能重复下棋。
少了一个有字
P431
//绘制白棋
该为:
if (board[j].equals("○"))
{
g.drawImage(black , i * RATE + X_OFFSET, j * RATE + Y_OFFSET, null); } black改为white P434
Transferable接口代表了可以放入剪贴板的接口---》‘接口’改为‘传输对象’
P435
有了该StringSelection封装类后,--》StringSelection改为ImgeSelection
P441
只是将java本身提供了Data.imageFlavor数据格式,
改为:只是前面程序使用了Java本身提供的DataFlavor.imageFlavor数据格式。
P451
从下往上数,第八排:“//创建一个垂直排列组件,盛装topLeft、colorList”
应该将“垂直”换成水平。
P455
回答方框中,多行文本域组件默认是没有邮件菜单的。邮件--->右键
P456
提示下面一行:为Swing组件添加边框可换如下步骤进行。换->按
P459
上面的方法比较容易理解,比较难以理解的是add(Action a)方法,系统为工具条添加Action对应的按钮呢?
改为:上面的方法比较容易理解,比较难以理解的是add(Action a)方法,系统如何为工具条添加Action对应的按钮呢?
P465
倒数第二行:但我们可以调用JfileChooser的setAcceptAllFile(false)来取消显示该选项。
setAcceptAllFile(false)-->setAcceptAllFileFilterUsed(false)
P478
提示框下面的灰色代码:
JTabbedPane tabPane = new JTabbedPane ( JTabbedPane.LEFT , JTabbedPane , WRAP_TAB_LAYOUT );
应该为:JTabbedPane.WRAP_TAB_LAYOUT(把逗号改成点,WRAP_TAB_LAYOUT前的空格去掉)
P478
提示框下面第一行:
该JTabbedPane的标签页标题位于窗口顶部,但是下面的灰色代码却是JTabbedPane.LEFT
所以应该改为位于窗口的左侧
P534
提示框往上第三行
从图12.41中可以看出DefaultTreeModel是TreeModel的默认实现类
少了一个"是"字
P534
代码第12行的 "TreePath movePath" 是多的,,,
P542
第二个行注释,少了个“根”
P575
文字第三行:程序中粗体字代码是为最后一列安装了一个基于JComboBox的DefaultTableCellEditor. –> DefaultCellEditor
P599
倒数第6行
单击Setup.exe文件
应该是双击
P603
倒数第二行:标准SQL语句通产可分为如下几种类型。 通产---> 通常
P604
表13.1中 存储过程描述:…..但可通过传出参数传将多个值…..---> 去掉 传
P609
提示框中有个“TABLE_CONSTRAINTS”
将TABLES_CONSTRAINTS 改为:TABLE_CONSTRAINTS
P609
第一段代码上边倒数第 5 行,"这里要介绍一些 SQL ...","些" 建议改成 "下"
P610
第二段代码倒数第二行,"...分别建立唯一约束,这意味着这两列都不能为空" 改为 “都不能出现重复
值”
P610
倒数第一行的结论也应该改为:...都不能出现重复值,而unique_test3只要求test_name,test_pass两
列值组合不能重复。
P612
最后一段:"则向该表插入记录时不能为该列指定值",建议将 "能" 改为 "该",即 "可以插入但不该插
入"
P615
第三段代码的倒数第二行,"foreign id" 中间缺少 "_"
P615
第三个灰色块
foreign key(foreign_id) references foreign_test(foreign_id)
应改为refer_id
P618
最后一段代码上边的倒数第二行第三句话 "不能某列的值不能确定" 不通顺,建议将第一个"不能" 该为"
若"
p618 第5行
........deleteform三个命令组成 "deleteform"改为"delete from"
P620
倒数第三段代码下边第一行:"上面语法格式中的数据源既可以是表,视图等" 不通顺,去掉其中的"既"。
p620
注意方框中最后一行
定当主键记录被删除时, "键"改为"表"
P621
最后一段:从头13.13中可以看出。头--->图
P636
"注意" 上边第四行:所有它比Statement多了如下两个方法,改为:所以它比Statement多了如下方法:
P640
代码段中缺少成员变量,Connection conn;Statement stmt;而光盘中有
P642
上面一段灰色代码段中ed.insertData()的sql语句中的表名 jdbc test 缺少"_" jdbc name jdbc desc
都缺少"_"
P643
第4行代码多了一个"s"在花括号后面
P644
最上面的灰色代码段下面一行
看到使用Statement的SQL语句执行不同的SQL语句的效果(读不通) 把前一个"SQL语句"改为"方法"
P645 程序中注释://使用Connection来创建一个Statment对象。 Statment--->Statement
P646 第一行注释: //使用Connection来创建一个PreparedStatment对象。 PreparedStatment--->PreparedStatement
P647
第二行第一个","后边的哪句话建议删除
P654
第二段代码上边文字倒数第二行:"getByte" 后少了个 "s"
P667
"批量更新" 建议提及"批量更新的性能"
P671
"13.8" 下边第一行第一句话需要在"关闭" 的后边加一个谓语动词"是"
P674
@SuppressWarning 注释的功能和用法 "SuppressWarning "缺少"s"
P675-P676
在codes/14/14-1/Fruit.java代码中
把灰色代码中的方法名foo改成info
因为P676的第一段里说,如果不小心把info写成inf0,整个意思都跟foo没有一点关系
P675
14.1节往上数一行
(AnnotionProcessing Tool) "Annotion" 拼写错误
675 页注意下边的第一行最后的单词拼写错误:少了个"t"
P676
提示方框中,笔者..........: 需要系统的Action基类,并重写execute方法, 改正: "需要"改为"需要继承"
P677
14.1.3节
第6行
可以使用@SuppressWarningsAnnotation "@SuppressWarnings "和"Annotation"缺少空格, P678页文字部
分第4行"@TestAnnotation"同样的错误,注释中也要改
P677
第二行第二句话,多了个"该"字
P679
14.2.2节往上数4行
一个没有成员定义的Annotation类型被成为标记(读不通)
改为:一个没有成员"变量"定义的Annotation类型被称为标记"Annotation"
P679
最上面一行,如下代码定义了 MyTag Annotation,和灰色第二块代码段, MyTag"前缺少"@"
(而p686,p687页都添加了)
P687
"14.3.4" 下边第二行,"2" 该为 "@".
P687
中间部分, 对比图14.3和14.4两份API文档中灰色........,"图14.3和14.4"改为"图14.2和14.3"
P688
14.4节第2行
使用annotation进行额外的处理,“使用”改为"对"
P688
提示方框上面的一行,(一个名为*.hmb.xml的文件) 把"hmb"改为"hbm"
P689
文字部分第6行 ...........,这个Annotation使用了@Retention元数据注释指定它仅在class文件中保
留,运行时不能通过反射来读取该Annotation信息
错误:这句话对上面代码@Retention(RetentionPolicy.SOURCE),讲解不正确,在P685页对
RetentionPolicy.SOURCE的讲解是"编译器直接丢弃这种策略的注释"
P691
AnnotationProcessorEnv-ironment 错误"Environment单词中多了'-' "
P691
最下面一行
理的类声明,这个类声明可包括类,接口和枚举声明,,,,, "类声明"改为"类型声明"
P695
列出的第一个方法 "String getName()" 前缺少了 那个图标
P698
第一个"提示"的倒数第二行"MyFil-enameFilter" 去掉"-"
P698
第二个提示上边的倒数第一行第二个 "输出" 应该为"输入"
P698
中间部分, Java把所有的传统个流类型(类或抽象类)都放在java.io包中,
把“个”去掉
P699 倒数第4行,InputSteam好像应该改为"InputStream"吧?少了一个r
P700
文字部分第一行
从图15.6...... "15.6"改为"15.5"
第二幅图下面第一行
正如图15.5所示, "15.5"改为"15.6"
15.3节往上数一行,
就可以使用相当的输入/输出代码来对读写不同的输入输出设备的数据(读不通)
把"相当"改为"相同", 把"对"删除
P701
文字部分第7行
而是从offset位置开始,把"offset"改为"off"才和read方法中off型参名相同,第14行,"而是从offset位
置开始",也是同样的问题
P703
第2行注释 //创建一个ObjectInputStream输入流, "入"改为"出",
P706
最上面提示方框下面第一行,
通常只需要在创建处理流时传入一个节点流构造参数即可(读不通)
改为: 通常只需要在创建处理流时传入一个节点流作为构造器参数即可
P706
表格下面的第一行, 注:表15.1中粗体字标出的类代表节点流 , 错误:"表格中没有粗体字 "
P706
倒数第8行, ............,而每个类中又分别提供了字节流和字符串, 把"串"改为"流"
倒数第5行,我们认为字节流的功能比字符串功能强大, 同样的错误
P710
文字部分第5行
void unread(byte[]b,int off,int len) :将一个字节/字符数组里从.......
将"byte[] b"改为"byte[]/char[] b"才符合后面文字的叙述 把"里"去掉
P713
"注意"方框中
此处的输入,输入流非常........,如果我们试图将让子进程....... 把第二个"入"改为"出" ,把"将"删
除
P716
文字部分倒数第10行,RandomAccessFile即可以读文件..............,所以它既然包含了完全.....“既
然”改为"既"
P718
灰色代码段注释
//将记录指针移动的out.txt文件的最后(读不通) 把"的"改为"到"
P719
最下面一行
AppendContent.java
实为
InsertContent.java
P722
代码"ReadObject类"中的第1行注释把“出”改为"入"
P724
图画错了:堆内存中两个 "teacher" 应该为 "student"
P724
文字部分第1行.
上面对象创建了2个........, “对象”改为"代码"
P727
代码中第1行注释把“入”改为"出"
P728
注释中的"入"改为"出"
P730
倒数第2行
的Person类提供了writePlace方法,这样可以在写入Person对象时将该对象替换成...... "writePlace"改
为"writeReplace",P731第1行,P732第2行都是同样的问题
P730
文字部分5-8行讲述了"transient"的缺点,使用另外两种方式来序列化对象,但代码段和p731页第一段代码段中还是出现的transient,(应该把代码中的"transient"删除)
P730
第5行
其中writeObject方法在保存Person属性时将其name包装成StringBuffer,并将其字符串反转后写入(读不
通)
改为:其中writeObject方法在保存Person对象时将其name属性包装成StringBuffer,并将其字符序列反转
后写入
P731
第二段灰色代码段第一行注释
//创建一个ObjectOutputStream输入流,把"入"改为"出"
P733
15.8.5节往上数2行
对于final的类重写.......,"final的类"改为"final类"
P733
第5行
也就是让反序列画得到的Orientation值直接丢弃,"值"改为"对象"
P734
灰色代码块往下第5行
反序列化该对象,调用ObjectOutputStream的readObject()方法即可
ObjectOutputStream改为ObjtectInputStream
P735
倒数第 5 行,将 显示,改为 显式
P735
第三块灰色部分
serialve Person "serialve"掉了"r"
P741
代码段finally块中
innChanel.close(); "innChanel"改为"inChannel"
P741
灰色代码段注释
//以文件输出流创建FileBuffer,用以控制输出, "FileBuffer"改为"FIleChannel"
P746
Lock(long position,long size,..........) “L”应该小写
P750
"16.1.2" 下边的第 2 段第 2 句话中多了个" "(空格)
P754
16.3.1节第3行
程序也不会执行线程执行体中的线程执行体(读不通),把前一个"执行体"删除
P756
图上面“处于关起状态的线程。。。”
应该为“处于挂起状态的线程”
P757
多线程章
倒数第八行,提到了
因为i>20,那么该线程肯定已经启动了,所以只可能是死亡状态了
我觉得这句话,因为..,得到 所以,好象没有必然的逻辑关系,有点不准确!
因为,我们知道线程,会经历 新建,就绪,运行,阻塞,死亡 五种状态
当i>20时,这个线程,可能会在就绪,运行,阻塞,死亡 这四种状态中的任何一种状态,都是有可能的
,所以
因为i>20,那么该线程肯定已经启动了,所以只可能是死亡状态了
建议改为:
因为i>20,那么该线程肯定已经启动了,所以当sd.isAlive()值为假时,该线程只能是死亡状态了
P770
大块代码上面:使用该Lock对象可以显示加锁、释放锁。。。
是不是应该:使用该Lock对象可以显式加锁、释放锁。。。
P772
16.5.6节第3行
只是所有线程处于阻塞状态,无须继续 "无须"改为"无法"
P774
倒数第14行
该wait()方法有三种形式:无时间参数的wait(一直等待,知道其它线程通知)
知道应为"直到"
P778
代码第三行注释
// 显示定义Lock对象
改为:
// 显式定义Lock对象
P778 实例实质上被绑定到一个Lock对象上。-> Condition实例实质上被绑定到一个Lock对象上。
P782
倒数第 5 行中的 "A" 和 "B" 应互换位置
P782
倒数第 2 行的前边没有那个 "标记"
P784
文字第 5 段:"static" 后边应该加一个空格
P787
"提示" 下边的第一行最后一句话的第一个字 "但" 应该为 "当"
P788
代码的倒数第 3 行 "ool" 前边少了个 "p"
P788
灰色代码段第一行注释
//实现Runnable接口来定义一个简单的 (简单的后面掉了几个字)
改为:实现Runnable接口来定义一个简单的线程类
P791
16.10.2节第二行
可能会破坏这些集合数据的完整性被破坏(读不通) 把"被破坏"删除
P797 第三行:在目标主机的端口7 (Echo) 上建立TCP连接。
P801
灰色代码段中对getFileLength()方法的注释出现重复
P803
esult+="\n"+line; "esult" 缺少"r"
P806 17.3.2标题:使用ServletSocket创建TCP服务器端。-->ServerSocket
P810
第三行代码
s.connconnect(new InetAddress(host,port),10000);
应该改为:
s.connect( new InetSocketAddress(host,port),10000);
P812
下面一段灰色代码段
//该现成所处理的Socket对应的输入流 "现成"改为"线程"
P822
倒数第一行
法再次打开输出流成输入流 成 应为 或
中间部分
下面程序示范了半关闭的用法,在该程序中服务器先后向客户端发送多条数据,数据发送完成后,该Socket对象调用shutdownOutput()方法来关闭输入流,表明数据发送结束---关闭输出流之后依然可以从Socket中读取数据
入 应为 出 P826 倒数第11行 //遍历该selector里注册的所有 SelectKey 应为 SelectionKey
P831 第三行,当程序准备发送次数据报时,………. --->此
P858
倒数第 5 行没有那个"标记符号"
P856
第六行,被类加载器"KlassLoader"的实例K1负责加载。
KlassLoader 应为 ClassLoader
P870 最后一行:
该方法中的obj是执行该方法的主调,后面的args是执行该方法时传入该方法的实数。
改为:该方法中的obj是执行该方法的主调,后面的args是执行该方法时传入该方法的实参。
P874
18.4.4 节第二行
用Array来动态第创建数组 "第"改为"的"
P876 Static Object newProxyInstance(ClassLoader loader,Class<?>[]interfaces,InvocationHandlerh):....
-->Static Object newProxyInstance(ClassLoader loader,Class<?>[]interfaces,InvocationHandler h):....
P877
文字部分第2行
执行代理对象所有方法执行时替换成执行此inivoke方法,(读不通) 把"执行"改为"当"
P883
第三块灰色代码段往上数2行
不会出现ClassCastException运行使异常 ,"使"改为"时"
P887
倒数第5行,
返回值类型或更小, 类型后加"相同"
P888
倒数第五行:有时候,我们宁“远”记住国外人的话,但不愿记住我们自己说的话。
应该是:有时候,我们宁愿记住国外人的话,但不愿记住我们自己说的话。
P888
包括某大型IT培训结构跳槽的老师,"结构"改为"机构"。
其它: 2010年1月第4次印刷
1、光盘tools文件夹里没有jdk 没有api 没有mySql 虽然可以自己去下载,但希望补完善它。
2、P63 5^9异或运算的那幅图出错了,显示的是~-5的图
[ 本帖最后由 jlu_lamp_lamp 于 2011-2-23 14:37 编辑 ] |