Java程序员面试宝典(第四版)错误记录

抱着试一试的态度买的,这本书已经出了第四版了,按道理来说应该还不错。但是错误好多啊。

1、P38
下面哪个选项可以正确编译?
A. Short myshort = 99S;
B. int t = "abc".length();
C. float z = 1.0;
D. char c = 17c;

答案竟然给的是B,D里面的17c中的c是什么鬼啊,从来没有见过这样的写法啊。

2、P46
下面程序的运行结果是多少?
int a = 1, b = 2;
int c = a & b;
System.out.println("a&b" + c);

答案给的是0,c的结果是0没错。这里是按位与。但是“a&b”让作者吃了吗?应该是a&b0啊。
好吧,相信只是一个笔误。

3、P80
这道题没什么问题,只是下面的描述都用的是O,选项用的是里面带H的O。

4、P87
面试例题5和面试例题2是重复的啊,这不能接受啊,浪费纸张啊。

5、P99
下面哪个不是Object类所定义的public method?
A. finalized()
B. clone()
C. wait()
D. sleep()
答案给的是D,sleep是Thread类里的方法,确实不是Object的。但是在Object里finalize、clone是protected方法,也不应该选。应该选A、B、D。
@Deprecated(since="9")
protected void finalize() throws Throwable { }

@HotSpotIntrinsicCandidate
protected native Object clone() throws CloneNotSupportedException;

6、P100
下面代码输出结果是什么?
public class Test {
private String value = null;

public Test(String value) {
    this.value = value;
}

@Override
public boolean equals(Object obj) {
    if (obj == this) {
        return true;
    }
    if (obj instanceof Test) {
        Test test = (Test) obj;
        return value.equals(test.value);
    }
    return false;
}

public static void main(String[] args) {
    Test test3 = new Test("object");
    Object test4 = new Test("object");
    System.out.println(test3.equals(test4));
}

}

这段代码我用机器执行了好几遍,答案是true啊。

虽然作者解释的有鼻子有眼,说调用的是object的equals方法,而且我真的差点就信了。多亏实践一把。

目前就看到100页,等再攒点再说。目前来看,这本书小瑕疵真的很多,而且作者给的blog上竟然没有勘误,而且文章极少,还看不懂,一点售后的样子都没有啊。

2020/3/1晚 补充
7、P102
D选项ava.util.Set,少了一个J

8、P105
题太长了,解释的挺好,System.currentTimeMillis()是毫秒级,计算机运行速度很快,因此只输出3,但是答案选错了应该选D、以上答案都不对。
给的答案C、123顺序无法确定,应该是针对他说的java.lang.System.nanoTime()来说的。
但是!!!他的换一种写法,代码里并没有换,跟原来一样!作者好粗心啊,后悔买这本书了有没有?

posted @ 2020-03-01 16:15  聪明的聪聪  阅读(300)  评论(1编辑  收藏  举报