V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sang
V2EX  ›  Java

神书 《 Java 编程思想》你真的看完了吗?

  •  
  •   sang ·
    lenve · 2019-06-27 19:20:19 +08:00 · 11245 次点击
    这是一个创建于 1974 天前的主题,其中的信息可能已经有所发展或是发生改变。
    找人推荐一本 Java 编程书,很多人会推荐这本。

    你要是问他这本书你从头到尾看完了吗?可能就会有些尴尬了。

    这本书,你看完了吗?看完了有啥收获?

    如果没看完,又是因为啥放弃的?

    大家来说说。
    43 条回复    2020-03-24 22:44:22 +08:00
    aLazarus
        1
    aLazarus  
       2019-06-27 19:34:19 +08:00 via Android
    看了四“次”,并不是通读全本
    westoy
        2
    westoy  
       2019-06-27 19:39:51 +08:00
    06 年买的第三版, 催眠必备, 基本看不上 10 页就躺了.......
    Yyyye
        3
    Yyyye  
       2019-06-27 19:51:28 +08:00 via Android
    这书,不读个几次,是没法理解里面的东西的
    hhhsuan
        4
    hhhsuan  
       2019-06-27 19:59:13 +08:00 via Android
    真正的编程思想,是跟语言无关的
    momocraft
        5
    momocraft  
       2019-06-27 20:08:26 +08:00
    没,节奏太慢

    后来需要写 jawa 时已经不是新司机了,可以用 learnxinyminutes + 专题书学
    linvaux
        6
    linvaux  
       2019-06-27 20:34:50 +08:00 via Android
    没看
    SurfaceView
        7
    SurfaceView  
       2019-06-27 20:37:36 +08:00   ❤️ 1
    这本书根本不适合推荐给纯新手,推荐这本书给纯新手的人,大多都是自以为是的人
    相反 纯新手更适合看 高手瞧不起的 疯狂 Java 这种
    SurfaceView
        8
    SurfaceView  
       2019-06-27 20:40:44 +08:00   ❤️ 5
    接上条, 等被推荐的小白拿到这本书,看了几天以后被里面莫名其妙的内容和语气迷惑的不行的时候,跑过去问他们,java 这么难的吗? 好了 这个时候他们的目的达到了,嘴角上扬,微微一笑,轻轻的在键盘上敲出一行字
    “这书是入门书啊,这你都看不懂,可能你不太适合这行业哦”
    hahaayaoyaoyao
        9
    hahaayaoyaoyao  
       2019-06-27 20:41:58 +08:00 via Android
    @SurfaceView 说的对
    l33ch
        10
    l33ch  
       2019-06-27 20:45:02 +08:00
    相比《 Java 编程思想》,《计算机程序设计艺术》才是神奇,没几个人看过,但动不动就给别人推荐……
    SurfaceView
        11
    SurfaceView  
       2019-06-27 20:47:44 +08:00
    @l33ch
    @hahaayaoyaoyao

    我在知乎上和论坛上亲眼见过 起手给别人推荐 深入理解计算机系统的。。。而且不是一次
    l33ch
        12
    l33ch  
       2019-06-27 20:59:44 +08:00 via iPhone
    CSAPP 还好吧,我刷过第一版中文版,第二版英文版,觉得对 C/C++方向码农有点用…
    ryougifujino
        13
    ryougifujino  
       2019-06-27 21:00:30 +08:00
    看的英文版的,大概看了 3/4,然后没有然后了
    32ddd
        14
    32ddd  
       2019-06-27 21:02:13 +08:00
    @SurfaceView 精辟
    Salvation
        15
    Salvation  
       2019-06-27 21:07:31 +08:00   ❤️ 2
    1. 没看完。
    2. 不需要看完。

    现在读书读的是什么,这是一个有点意思的问题。就用《 Java 编程思想》举例子,买它,是没有问题的。读它也没有问题。但是问题关键是要明白自己要的是什么:

    学会基础的语法✅
    学会繁复晦涩的语法❌

    学会编程思想✅
    学会那些示例代码❌

    这些道理是很明确的,但是在执行层面上很不明了。比如你学个 java 中的 Integer,大家都知道这个是值得的,那么学 synchronized 这种关键词呢?从书中学习这种知识的的问题,不在于这个知识是否重要,也不在于其使用是否频繁,而在于是否可以通过书本真正学会这个知识。

    就用 synchronized 这个关键词来说,你说它重要吗?当然重要,但是恐怕初学者不能从书本中直接学习到这个词背后蕴含的真正的“多线程”,“锁”的思想。

    而老手,在有很多实践之后,再去看《 Java 编程思想》,毫无疑问是有帮助的。但是问题又来了,真正对他有帮助的,其实是他实践的经历,书本的作用,是最后的点醒。就好比武林高手,先是埋头苦练,最后被高人两句话指点,然后大彻大悟。

    过度神化书本、过度贬低这种适当的经验总结,都是不应该的。真正的学问,其实反倒蕴含在这两者的毫厘之间。
    redtea
        16
    redtea  
       2019-06-27 21:08:49 +08:00 via iPhone
    我在等第五版
    Cbdy
        17
    Cbdy  
       2019-06-27 21:10:44 +08:00 via Android
    学 Java 的时候看了一遍,后来复习又看了半遍
    IzualBeta
        18
    IzualBeta  
       2019-06-27 21:11:17 +08:00
    忽略了 GUI 的章节看完过一遍 残留印象就是 Java 版本低了点,说话好像有点磨叽,好处是会激起查看常用类源代码和用自带命令行工具的好奇心?看之前没用过当看文档,用过就跳着看看
    chendy
        19
    chendy  
       2019-06-27 21:20:47 +08:00
    多年前被忽悠买了,至今没有读完
    感觉是一部过誉的作品…至少真的不好读
    l1nyanm1ng
        20
    l1nyanm1ng  
       2019-06-27 21:22:29 +08:00   ❤️ 4
    Thinking in Java 我断断续续用了半年才通读了一遍,这本书的里面的 jdk 版本还停留在 1.5,放在现在来看肯定太旧了,bruce eckel 这两年又出了 jdk1.8 的延续款 On Java8,不过目前还没有中文出版,但是 github 上有热心贡献的中文翻译 pdf 版,虽说真正的思想可以超越版本、语言的限制,但是那种一上来对你说学 Java 就看 Java 编程思想第四版的人,不是傻就是坏。

    要入门 java,我刚开始学的时候看的 head first java 个人感觉就挺薄薄的一本,里面还有做一些简单的 swing 界面,虽然放在现在来说 swing 已经没用了,但是对新手来说能够有成就感有反馈更重要。

    或者我推荐另一本更新频率很快的 core java,现在的第十版基于 jdk8,中文翻译还不错,卷 I 讲 Java 基础、并发,卷 II 提高的讲注解、jdbc、网络、IO 以及 jdk8 的 Stream 和 lambda、新时间 api,入门 Java,看 core java 卷 I 完全够用,并且 core java 的卷 II 的 jdbc、网络、xml 这些在圣经级别的书上独此一家。

    要说 thinking in Java 哪里好,我也说不出,但是我看了很多的书,还是挺喜欢 thinking in Java 的,作者的行文风格很流畅,穿插着大部分的代码不跟你多比比,最喜欢的当属泛型这章,作者对比了 c++和 template,又和 python 的鸭子类型对比,还批判了 Java 的泛型是假的泛型,只是编译器强转 Object,同时又肯定了 jdk5 在加入泛型的时候又兼容旧版本的 Object,这种擦除的泛型是 Java 的折衷。

    真的就是 Java 编程思想,里面还讲到了很多思想,真的百看不厌,但是廉颇老矣,这本书要看也行,不看也不会少块肉。因为 bruce eckel 就是个投机者,最近他在写的 python 系列的书让我觉得他很恶心,他只是看什么语言火就追什么语言,只是一个培训机构的老师罢了。真的喜欢 Java 就写一辈子 Java !!
    love
        21
    love  
       2019-06-27 21:41:32 +08:00
    这不是神书,和潭耗强的书类似,没什么思想,例子也很罗唆,总之不推荐
    softtwilight
        22
    softtwilight  
       2019-06-27 21:42:31 +08:00 via iPhone
    在刚入门的时候很费力地啃完了英文版,代码跟着敲了一遍,影响很难说得清楚,可能看完这个行为就比书里的内容意义更大了
    unicloud
        23
    unicloud  
       2019-06-27 22:07:10 +08:00 via iPhone   ❤️ 1
    我就好奇会不会出新版《 Think in Java 》,第四版太老啦。
    cabing
        24
    cabing  
       2019-06-27 22:14:36 +08:00
    没啥意思。太啰嗦。
    VioletTec
        25
    VioletTec  
       2019-06-27 22:15:09 +08:00 via Android
    @l33ch 这种书适合学了一定基础的新手看。其实看完之后收获还是不少的,因为内容太多,书太厚,看完了不容易记在脑子里,推荐买个笔记本做一下笔记。
    shalk
        26
    shalk  
       2019-06-27 22:31:44 +08:00
    以前刚学 java 的时候看完了,习题大部分也做了。图形化的部分不看。

    作者会经常去和 C++去类比,看完之后 java 基础细节掌握牢固,九分推荐。

    另外我也买了 core java,完全是新的。
    mamian
        27
    mamian  
       2019-06-27 22:36:35 +08:00   ❤️ 1
    大部分看完了,这本书很牛逼的一点就是,随意间一个小例子里边随手给你带了一种设计模式
    krisuari
        28
    krisuari  
       2019-06-27 22:51:49 +08:00
    这本书是从整体语言功能设计角度去说明 java jdk 的,先要思考为什么要看这本书,否则如同嚼蜡。不建议小白去看经典书籍,还没学会跑就想飞
    shijingshijing
        29
    shijingshijing  
       2019-06-27 23:13:49 +08:00
    @mamian 对的,这本书很大的一个特点就是结合设计模式来讲,适合老手加深学习或者 C#,C++的转 Java,新手一上来就接触设计模式的东西不合适,本身语言的语法和用途就看得云里雾里,再来设计模式直接蒙蔽。但是如果有其他 OO 语言的底子,有其他项目的经验再来看这本书,各种爽。

    作者的思路是对的,语言毕竟还是要拿来用的,比如 interface 这种东西,如果不结合实际的例子来讲,完全体会不到引入 interface 的精妙之处,我从 C++转过来的时候,就一直觉得这玩意儿就是继承换了个皮肤而已,为什么还要单独弄出来? C++本身对应的应该是虚类。
    shiji
        30
    shiji  
       2019-06-28 07:54:34 +08:00 via Android
    @unicloud 出了。新版叫 <On Java 8> 只在谷歌商店有卖。


    没有纸质版,也没有中文版。只有带版权的电子版。
    cweijan
        31
    cweijan  
       2019-06-28 08:51:47 +08:00
    以前学 Java 的时候过了一遍, 基本上是看完了
    jzq526
        32
    jzq526  
       2019-06-28 09:28:36 +08:00
    通读过一遍,感觉对 Java 的理解加深了不少。
    但不适合入门用,更适合有了一定的基础,提高时使用
    JimmyTinsley
        33
    JimmyTinsley  
       2019-06-28 09:33:44 +08:00
    正在垫显示器。。。
    ztz12
        34
    ztz12  
       2019-06-28 12:38:46 +08:00
    买了吃灰中
    huanghaofu86
        35
    huanghaofu86  
       2019-06-28 14:42:58 +08:00
    @jzq526 JAVA 入手你觉得看那本,然后看那本,你是怎么入门
    jzq526
        36
    jzq526  
       2019-06-28 17:37:59 +08:00   ❤️ 1
    @huanghaofu86 我觉得我看过的入门书中,最好的是《 Java 7 入门经典》,对基础知识讲解得非常细致。不知道有没有新版
    huanghaofu86
        37
    huanghaofu86  
       2019-06-28 17:44:05 +08:00
    @jzq526 谢谢,
    huanghaofu86
        38
    huanghaofu86  
       2019-06-28 17:44:51 +08:00
    @jzq526 可以交个友么扣 2146 隔离字 274454
    LudwigWS
        39
    LudwigWS  
       2019-07-01 00:48:13 +08:00 via iPad
    TIJ 感觉细节太多了,不适合快速上手
    cmower
        40
    cmower  
       2019-11-14 08:46:54 +08:00   ❤️ 2
    这本书在豆瓣的评分高达 9.1 分,但我总觉得有点虚高。

    记得刚上大学那会,就在某宝上买了一本影印版的《 Java 编程思想》,但由于初学 Java,对编程极度缺乏信心,导致看这本书有一种看天书的感觉。后来,去苏州参加工作的时候把它作为最宝贵的纪念品带了过去。

    2014 年回洛阳的时候把它送给了一位关系还不错的同事,权当是分别的礼物吧。2016 年的时候,我又重新买了一本,希望自己能够夯实一下基础。但事与愿违,它被我束之高阁了,读起来无比的枯燥。2018 年的时候,我重新捧起它读了一遍,总觉得有一种莫名的负罪感。

    《 Java 编程思想》是个大部头,足足 880 页,文字更是密密麻麻。我不建议大家一个字一个字的读,知晓其中的精华就可以了。如果你觉得这本书读起来很痛苦,不妨来读一读我加工润色后分享博文,足足 25 篇,每一篇都很精彩。

    先来通过思维导图看一下这 25 篇 Java 博文涉及到的知识点。

    ![]( https://upload-images.jianshu.io/upload_images/1179389-ffd65cf0bc5726ee.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


    下面是这 25 篇 Java 技术博文对应的链接。

    [Java 的核心目的和并发编程]( http://www.itwanger.com/java/2019/10/30/think-java-book-read-1.html)

    [Java:程序不过是几行代码的集合]( http://www.itwanger.com/java/2019/11/01/java-mian-class.html)

    [什么是面向对象编程( OOP )?]( http://www.itwanger.com/java/2019/11/01/oop.html)

    [如何理解 Java 中的继承?]( http://www.itwanger.com/java/2019/11/01/java-extends.html)

    [吃人的那些 Java 名词:对象、引用、堆、栈]( http://www.itwanger.com/java/2019/11/05/java-eat-human-words.html)

    [Java 的操作符——“=”号]( http://www.itwanger.com/java/2019/11/06/java-caozuofu-denghao.html)

    [害死人的自动递增,不偿命的自动递减]( http://www.itwanger.com/java/2019/11/06/java-caozuofu-++.html)

    [Java 流程控制语句]( http://www.itwanger.com/java/2019/11/06/java-liuchengkongzhi.html)

    [Java 是通过什么机制来确保对象初始化呢?]( http://www.itwanger.com/java/2019/11/06/java-chushihua.html)

    [Java 访问权限控制:public、private、protected]( http://www.itwanger.com/java/2019/11/07/java-public-private-protected.html)

    [Java 代码复用的三种常用方式:继承、组合和代理]( http://www.itwanger.com/java/2019/11/06/java-code-fuyong.html)

    [Java:多态乃幸福本源]( http://www.itwanger.com/java/2019/11/06/java-duotai.html)

    [Java 抽象类和接口,看这一篇就够了]( http://www.itwanger.com/java/2019/11/06/java-abstract-interface.html)

    [Java 内部类]( http://www.itwanger.com/java/2019/11/07/java-inner-class.html)

    [Java String,看这篇就够了]( http://www.itwanger.com/java/2019/11/08/java-string.html)

    [Java 数组,看这一篇就够了]( http://www.itwanger.com/java/2019/11/08/java-array.html)

    [Java 集合类入门篇]( http://www.itwanger.com/java/2019/11/08/java-jihe-rumen.html)

    [HashMap,难的不在 Map,而在 Hash]( http://www.itwanger.com/java/2019/11/08/java-hashmap.html)

    [Java 泛型的重要目的:别让猫别站在狗队里]( http://www.itwanger.com/java/2019/11/08/java-fanxing.html)

    [Java 异常处理:给程序罩一层保险]( http://www.itwanger.com/java/2019/11/08/java-exception.html)

    [如果有人再问你 Java 的反射,把这篇文章扔给他]( http://www.itwanger.com/java/2019/11/08/java-fanshe.html)

    [Java 枚举:小小 enum,优雅而干净]( http://www.itwanger.com/java/2019/11/09/java-enum.html)

    [Java 注解( Annotation ):请不要小看我!]( http://www.itwanger.com/java/2019/11/08/java-annotation.html)

    [Java I/O 入门篇]( http://www.itwanger.com/java/2019/11/09/java-io.html)

    [Java:并发不易,先学会用]( http://www.itwanger.com/java/2019/11/09/java-bingfa.html)

    《 Java 编程思想》无疑一直都会被大力推荐,可是第四版的出版时间竟然早在 2007 年,全书大部分的代码是基于 JDK 1.5 完成的。如今什么年代了?

    告诉你一个好消息,《 Java 编程思想》的作者 Bruce Eckel 在 2017 年的时候发布了第五版,没想到吧?为什么在网上都看不到这本书的消息呢?因为改名了,而且只有电子版。

    ![]( https://upload-images.jianshu.io/upload_images/1179389-639d139652356363.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    这本书的所有源代码已经开源在 GitHub,传送门:

    https://github.com/BruceEckel/OnJava8-Examples

    如果英语水平像我一样菜,看英文版比较费劲,可以在 GitHub 上查看大婶们的译本,传送门:

    https://github.com/LingCoder/OnJava8


    如果英语水平还不错,可以自行购买电子版的《 On Java 8 》,虽然比较贵。我建议你关注「沉默王二」公众号,后台留言「 Java 编程思想」,即可获取电子版。
    playboy0
        41
    playboy0  
       2020-03-22 16:11:24 +08:00
    @SurfaceView 这书做科班的计组课外读物很过分嘛?我觉得工作了应该不会去看这种书了吧~
    SurfaceView
        42
    SurfaceView  
       2020-03-23 10:41:44 +08:00
    @playboy0 注意审题 注意我喷的语境- -
    我喷的是那种给那种初学者 小白推荐这本书的行为
    他们可是都是非科班哦
    科班看这个肯定没什么问题
    poorguytech
        43
    poorguytech  
       2020-03-24 22:44:22 +08:00
    目前看了一半,看的第二版,觉得有可能过誉了。讲了不少代码和程序设计方面的模式和语言的特性(好些以目前写程序的认识也不太实用),但是总感觉例子太短小 /碎片化 /浅,不能有深刻的认识,也就谈不上能运用了。如果读者有能力把这些琐碎的知识点拼凑完,那读者对本书主题的理解水平又不太需要本书去促进了。
    还是决定继续再看下去,说不定是我理解不够所以才会有这样的看法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3060 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:52 · PVG 21:52 · LAX 05:52 · JFK 08:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.