V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
tail2
V2EX  ›  程序员

Java 书籍推荐

  •  
  •   tail2 · 2019-01-14 19:25:19 +08:00 · 5413 次点击
    这是一个创建于 2175 天前的主题,其中的信息可能已经有所发展或是发生改变。

    题主今年大四, 计算机专业,找了一份 java 后端开发的工作, 明年毕业入职, 想在入职前给自己充充电。

    题主小白一只, 跟着慕课网的 java 职业路径看了前三部分, 最后的框架部分还没看完。 但是觉得视频讲的不一定深入, 而且里面有的知识好像有点过时比如 jsp。

    在知乎上搜索有个大神推荐了下面的书单:

    java 核心技术

    java 编程思想

    算法 4

    敏捷软件开发原则模式与实践

    java 并发编程实战

    深入理解 java 虚拟机

    Head First 设计模式

    effective java

    J2EE development without EJB

    买之前想问问大家觉得这些书怎么样, 有哪些值得一看, 哪些不太好?

    大家如果有推荐的书 或是视频 或是其它渠道的学习方法与心得 还请与我分享一二, 感激不尽~~~

    第 1 条附言  ·  2019-01-15 08:44:31 +08:00
    请帮我分辨以下书单中的书是否值得一读,
    并分享一下 Java 后端的学习书籍和学习方法与心得~ thanks~
    26 条回复    2019-01-16 15:11:19 +08:00
    Mistwave
        1
    Mistwave  
       2019-01-14 19:31:13 +08:00 via iPhone
    建议楼主优先看 Java 核心和算法第四版 这个算基础
    然后可以辅以 Spring Boot 实战 敲一点代码
    接下来才是进阶,这部分完全可以工作后再看:jvm/effective java/设计模式
    bajie
        2
    bajie  
       2019-01-14 19:35:31 +08:00
    当年我自学 js 的时候,被知乎大神推荐过 js 权威指南,看得我是头大如斗,一度怀疑自己的智商,后来还是看高程三才入门,所以一开始你千万别选那种可以当字典的书来看
    tail2
        3
    tail2  
    OP
       2019-01-14 19:55:58 +08:00 via Android
    @Mistwave 非常感谢
    tail2
        4
    tail2  
    OP
       2019-01-14 19:58:22 +08:00 via Android
    @bajie 是, 看着还有这么多没涉及的知识有些恐慌
    xiaoidea
        5
    xiaoidea  
       2019-01-14 20:21:48 +08:00
    个人愚见,从初级 java 进阶第一本应该看的书应该是《 java 并发编程实战》
    jeffersonpig
        6
    jeffersonpig  
       2019-01-14 20:34:34 +08:00
    @bajie js 跟 java 不是同一个东西吧?
    tail2
        7
    tail2  
    OP
       2019-01-14 20:40:42 +08:00 via Android
    @xiaoidea 好哒, 谢谢😜
    tail2
        8
    tail2  
    OP
       2019-01-15 08:41:55 +08:00
    咋收藏的比回复的还多···
    Narcissu5
        9
    Narcissu5  
       2019-01-15 08:57:22 +08:00
    不同意一楼,我认为对于新手来说核心技术并不重要,能出东西才是第一位的

    首先就是《 Effective Java 》,新人能写出规整的代码绝对会让人眼前一亮的,先把代码写好了写工整了,其它的才有的谈。
    aaronysj
        10
    aaronysj  
       2019-01-15 09:29:21 +08:00
    先看一遍,工作一年再看一遍,工作两年再看一遍。
    bajie
        11
    bajie  
       2019-01-15 10:21:29 +08:00
    @jeffersonpig 我只是举例而已,编程思想这本书不就和 js 的权威指南差不多,通篇各种概念,和字典差不多吗
    shijingshijing
        13
    shijingshijing  
       2019-01-15 11:49:03 +08:00 via iPhone   ❤️ 1
    @Narcissu5 可拉倒吧,我这个写了 N 年 c 和 c++的看 effective java 有些都整不明白,你一上来就推荐这个。这本书适合写了一段时间 java 想提高自己的编码和设计水平的 java 程序员看,里面的东西其实是最佳实践,绝不能一上来就看,看也看不懂。里面提到的工厂模式,订阅模式要有设计模式的基础才能知道为什么这种情况在 java 里面用这个模式最合适。

    我建议新手还是 head first java 看起来,然后 Think in Java (有点老了),然后开始实战积累经验,做了几个项目后,边做边看设计模式、jvm、并发,然后进一步深入 jvm 是怎么实现的,effctive java,concurrent practice 那本。

    算法其实不需要了解很深入,链表,哈希表,二叉树,字符处理等基础的就够了,最短路径,红黑树,动态规划根本不需要看。
    shijingshijing
        14
    shijingshijing  
       2019-01-15 11:55:25 +08:00 via iPhone
    我个人认为 c 转 c++再转 java 每次都需要突破。

    从 c 到 c++主要是面向过程到面向对象的思想转换;
    从 c++到 java 主要是从面向特定机器编程模型到面向通用机器的编程模型,所以才需要了解 GC 和 jvm,其实学习 jvm 某种程度上相当于重新撸一遍 x86 和 ARM。
    micean
        15
    micean  
       2019-01-15 14:00:55 +08:00
    个人觉得的顺序是
    1. 语法
    2. maven+spring+常用第三方 lib
    3. 常用的 map 和 collection+并发
    4. 字节码+jvm

    设计模式在自己写了几年代码之后自然就领悟了
    Narcissu5
        16
    Narcissu5  
       2019-01-15 14:01:37 +08:00
    @shijingshijing 《 Effective Java 》在 google 是当作编码规范来用的,编码规范这种东西能有多难?

    我觉得可能你受 C++的影响太深了,C++的 OO 是残废的,实际上如果你真的用 OO 的方式来写代码你就会发现 EJ 里面写的都是些不言自明的东西。有或者我们看的不是一本 EJ。。。。
    shijingshijing
        17
    shijingshijing  
       2019-01-15 16:03:23 +08:00 via iPhone
    @Narcissu5 拜托你先弄清楚 coding standard 和 best practice 的区别再说好么?二者有重叠但绝不是一回事好么?实现一个项目有多种方法,根据自身实际情况,针对某种场景,找出最适合的实现方法这个叫 best practice 好么?不是强制性的,但这样做是兼顾可扩展性,可维护性,系统性能等多方面的出的最佳方案。coding standard 很多都是强制性的,比如命名规则,注释方式。

    c++不是残废而是给你选择太多了,新手上来就像小孩子逛糖果店这个很好那个也不错,最后弄出来的东西就可能出现有的地方发育的非常完美,但有的地方烂的流脓(最典型的就是内存泄漏)。Java 把某些方面限制死了,然后针对一些场景进行了某种折衷处理,带来的好处是能在总体上保持某种程度健康( GC 和 jvm )。

    我始终认为真正会的人用 c++和 c 写出来的东西是优雅的,让他们去用 java 写反而难受。比如 linux 下的那些小工具,还有 Adobe 全家桶,Firefox 系列这种生产力工具。
    tail2
        18
    tail2  
    OP
       2019-01-15 16:39:33 +08:00
    @aaronysj 希望自己能做到💪
    tumi9527
        19
    tumi9527  
       2019-01-15 16:40:00 +08:00
    没有编程经验,head first java,有经验,核心一,先入门再说,然后看个框架,做个小网站啥的,之后在看设计模式之类
    tail2
        20
    tail2  
    OP
       2019-01-15 16:41:49 +08:00
    @micean 感谢🙇‍
    tail2
        21
    tail2  
    OP
       2019-01-15 16:42:48 +08:00
    @tumi9527 万分感谢~
    PazuLee
        22
    PazuLee  
       2019-01-16 01:04:54 +08:00
    一只加班狗尝试回答下:看全了太难,就算局限在 java,也分很多方向。CRM ?基础框架?还是所谓互联网公司的高并发系统?关注点都不太一样。建议描述更清晰些。
    tail2
        23
    tail2  
    OP
       2019-01-16 01:17:44 +08:00 via Android
    @PazuLee 都 1 点了你还在加班!?小白一只, 目前还没入职也不知道去了公司做哪块, 只知道是 java 后端,只想在入职前打好基础到时候别跟不上进度拖后腿_(:з」∠)_
    lancelock
        24
    lancelock  
       2019-01-16 10:54:30 +08:00
    转行写 java 6 个月,到现在只看了一本 java 核心技术 卷 1,感觉自己是在太懒散了
    PazuLee
        25
    PazuLee  
       2019-01-16 12:31:57 +08:00
    @tail2 # 23 那我个人感觉,问下公司现有 java 框架 + 中间件然后熟悉,是现阶段比较重要的事儿。对自己来说能提高开发效率,节省时间;对同事来说能有一个不错印象
    tail2
        26
    tail2  
    OP
       2019-01-16 15:11:19 +08:00 via Android
    @Pazulee OK, 万分谢谢😜
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2380 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 02:05 · PVG 10:05 · LAX 18:05 · JFK 21:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.