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

Java 书籍推荐

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

    题主今年大四, 计算机专业,找了一份 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 跟 jav 不是同一个东西吧?
    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     Solana     2433 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 15:20 PVG 23:20 LAX 07:20 JFK 10:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86