《写给大忙人看的Java核心技术》(2016年1月第1版)一书中,有一些来自英文原版的错误,勘误表必不可少。
Append: 因为此书翻译错误极多,不推荐该中文版。
网上流传的一份中文勘误表错误百出(主要由于中文版的笔误导致),而英文版勘误表因为版本更新已经不具备参考意义。
所以找到了英文旧版勘误表的备份页面,译回中文:
Page 1
5个整型、2个浮点型和一个布尔型
改为:
4个整型、2个浮点型、字符型 char 和布尔型 boolean
Page 17
char next = (char)(‘J’ + 1); // 将75转换为’K’
改为:
int n=1;
char next = (char)(‘J’ + 1); // 将75转换为’K’
Page 18
>>以0替换前面的位,>>>将符号位拓展为最前面的位。
改为:
>>将符号位拓展为最前面的位,>>>以0替换前面的位。
Page 34
done = false;
改为:
done = true;
Page 34
if (n < 0) continue;
改为:
if (input < 0) continue;
Page 45
{3, 10, 11, 8}
改为:
{5, 10, 11, 8}
Page 50
写个程序,读取0~65535之间的两个数,在short变量中存储,并计算它们的无符号之和、之差、之积、之商和余数,不要将它们转换为int类型。
改为:
写个程序,读取0~4294967295之间的两个数,在int变量中存储,并计算和显示它们的无符号之和、之差、之积、之商和余数,不要将它们转换为long类型。
Page 51
3 10 11 8
改为:
5 10 11 8
Page 77
作用域(三处)
改为:
访问权限(三处)
Page 82
private ArrayList<Member> members;
改为
private ArrayList<Member> members = new ArrayList<>();
Page 83
myFace.enroll(“fred”)
改为:
myFace.enroll(”Fred”)
Page 111
int difference = first.length() < second.length();
把 < 改为 -
Page 111
Runnable task = () -> { for (int i = 0; i < 1000; i++) doWork(); }
最后加一个分号
Page 120
public class Application()
改为
public class Application
Page 124
return (x, y) -> comp.compare(x, y);
改为
return (x, y) -> comp.compare(y, x);
Page 126
最后一个 return 的 } 后面缺一个分号
Page 141
public class ConcurrentWorker extends Greeter
改为:
public class ConcurrentWorker extends Worker
Page 142
对象为null时也安全的Object.equals(obj, other)
改为
对象为null时也安全的Objects.equals(obj, other)
Page 155
public Modifier()
去掉 public
Page 167
obj.getDeclaredField(“salary”)
改为
obj.getClass().getDeclaredField(“salary”)
Page 189
ex.printStackTrace(out);
改为
ex.printStackTrace(new PrintStream(out));
Page 192
Logger.global
改为
Logger.getGlobal()
Page 209
printAll(employees, e -> e.toString().length() % 2 == 0);
改为
Predicate
Page 215
public void add(String e)
改为
public boolean add(String e)
Page 215
public void add(Object e) { add((String) e); }
改为
public boolean add(Object e) { return add((String) e); }
Page 223/Page 230
public static
改为
public static
Page 235
表格 7-2 中,第二和第四个all改为 addALL
Page 248
byte[] toByteArray[]
long[] toByteArray[]
改为
byte[] toByteArray()
long[] toLongArray()
Page 251
那么Arrays.asList(a)将返回包含原数组元素的List
改为
那么Arrays.asList(a)将返回包含原数组元素的List<E>
Page 254
第6题,最后一句话改成:假设你有一个方法的类型是 Map
Page 255以后
暂略。
Page 279
.filter(s -> s.length() < 10)
改为
.filter(s -> s.length() < 12)
Page 303
2.当遇到一个文件或目录时
改为
2.当遇到一个文件时
Page 316
Employee peter = new Employee(“Fred”, 90000);
Employee paul = new Manager(“Barney”, 105000);
改为:
Employee peter = new Employee(”Peter”, 90000);
Employee paul = new Manager(”Paul”, 105000);
Page 397
你可以调用这些方法:toNanos, toMillis, toSeconds, toMinutes …
改为
你可以调用这些方法:toNanos, toMillis, getSeconds, toMinutes …
Page 421
表13-4 指定locale的日期和时间格式化样式
改为
表13-4 日期和时间格式化样式
Page 444
下面介绍如何以Java语法调用JavaScript的Greeter类对象:
改为
下面介绍如何以Java语法调用JavaScript的SimpleGreeter类对象: