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

9102 年,如何从零开始学习 Java ?

  •  
  •   wildnode · 2019-03-21 09:59:36 +08:00 · 7586 次点击
    这是一个创建于 2076 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位大佬好,我是个半路出家的前端。

    现在想在业余时间学习一门除了 JS 以外的强类型语言。

    因为公司在用,所以我选择了 Java。

    希望大佬们推荐一下入门该看的书或者学习路线什么的,或者说说您之前在学习 Java 时遇到的小坑啥的。

    这里晚辈先行谢过!

    第 1 条附言  ·  2019-03-21 18:42:23 +08:00
    回复的人太多不能一个一个 @了,在这里统一感谢大家的回复~
    45 条回复    2019-03-22 12:45:38 +08:00
    kosmosr
        1
    kosmosr  
       2019-03-21 10:18:58 +08:00   ❤️ 1
    看 core java
    smeraldo
        2
    smeraldo  
       2019-03-21 10:23:26 +08:00   ❤️ 1
    core java+1 一开始看上册就可以了
    不过,既然公司用 java,为啥不问问同事?
    allgy
        3
    allgy  
       2019-03-21 10:27:36 +08:00   ❤️ 1
    买本书,照着例子敲一遍,做个小项目
    wildnode
        4
    wildnode  
    OP
       2019-03-21 10:30:06 +08:00
    @kosmosr 感谢~
    @allgy 感谢~
    @smeraldo 问了,但是同事们众说纷纭,想着来 V 站再问问,挑个票数多的哈哈。
    allgy
        5
    allgy  
       2019-03-21 10:37:42 +08:00   ❤️ 2
    @wildnode 入门推荐得话 《 java core 核心卷 》上下册( swing 图形编程和其他过时的章节跳过就行),另外在有一定的代码量后可以看《 think in java 》这两本是必看,多线程并发编程部分推荐《 Java 并发编程实战》
    10Buns
        6
    10Buns  
       2019-03-21 10:46:46 +08:00   ❤️ 1
    《 Java 核心-上》除了图形界面,快速看看多写代码实战。找本 Spring 相关书快速入门。maven 起码会熟练使用

    语法熟练使用掌握,做点项目框架也熟练使用,其他都是业务问题了。想继续提高就是并发、jvm 这些也不是一朝一夕就有效果的,找两本书做好长期攻坚的准备。
    Mrun
        7
    Mrun  
       2019-03-21 10:47:44 +08:00   ❤️ 1
    Java 核心编程
    wobuhuicode
        8
    wobuhuicode  
       2019-03-21 10:52:48 +08:00   ❤️ 1
    看一遍书,打一遍代码。逼着自己写一个作品。既能锻炼自己的产品思维,又能学到新技术
    wlh233
        9
    wlh233  
       2019-03-21 10:59:21 +08:00   ❤️ 2
    首先,new StringBuilder().append("9102").reverse();
    yuthelloworld
        10
    yuthelloworld  
       2019-03-21 11:21:30 +08:00   ❤️ 1
    难道只有我一个人觉得 eclipse 很丑吗
    zhygkx
        11
    zhygkx  
       2019-03-21 11:23:00 +08:00   ❤️ 1
    推荐个薄一点的书《 Java 8 in action 》
    dafengqi
        12
    dafengqi  
       2019-03-21 11:25:05 +08:00
    19 年入国军
    gowk
        13
    gowk  
       2019-03-21 11:28:57 +08:00 via Android   ❤️ 1
    建议学 Go 🙄
    snoopy1024
        14
    snoopy1024  
       2019-03-21 11:36:50 +08:00 via iPhone
    @yuthelloworld 换 idea 啊
    ahaowo
        15
    ahaowo  
       2019-03-21 11:37:44 +08:00
    学点其他竞争低的语言吧,java 人都爆炸了
    mgso
        16
    mgso  
       2019-03-21 11:45:17 +08:00
    @yuthelloworld #10 我来回翻了很多回复.都没有看到有人提及 eclipse.. 你这个突然冒一句...
    pzh702
        17
    pzh702  
       2019-03-21 11:47:52 +08:00   ❤️ 1
    怎么学啥都是入国军???回家种田?
    fngtz
        18
    fngtz  
       2019-03-21 11:58:14 +08:00 via iPhone
    当年我就被 thinking in java 劝退了- -
    GTim
        19
    GTim  
       2019-03-21 12:13:59 +08:00
    不厚道的推荐 https://www.twle.cn/l/yufei/java/java-basic-index.html 和其它的类似,没多大差别,因为站在它们的肩膀上
    zzzzzzZ
        20
    zzzzzzZ  
       2019-03-21 14:45:26 +08:00   ❤️ 3
    看点书入门即可,用来学习其他语言的底子,如果要钻到 Java 里就很耗时了,3 颗星以下的可以不用看

    学前读物:
    《 Head First Java 》推荐指数:1 颗星
    《 Head First 设计模式》推荐指数:1 颗星
    入门级:
    《 Core Java 》推荐指数:4 颗星
    《 Effective Java 》推荐指数:2 颗星
    精通级:
    《 Thinking in java 》推荐指数:4 颗星
    《 Java 与模式》推荐指数:4 颗星
    大师级:
    《程序员的思维修炼:开发认知潜能的九堂课》推荐指数:5 颗星
    《程序员的修炼之道》推荐指数:4 颗星
    宗师级:
    《脱发的中西医治疗》
    coolloves
        21
    coolloves  
       2019-03-21 15:38:55 +08:00
    马克下,关注!
    dongya
        22
    dongya  
       2019-03-21 15:54:30 +08:00
    public class HelloWorld
    vincenteof
        23
    vincenteof  
       2019-03-21 16:15:57 +08:00
    @pzh702 老哥真实了
    stone666
        24
    stone666  
       2019-03-21 16:18:45 +08:00
    直接上 jdk12 吧
    LeungV2
        25
    LeungV2  
       2019-03-21 16:22:11 +08:00   ❤️ 1
    在看这个
    http://how2j.cn/
    kanekakou
        26
    kanekakou  
       2019-03-21 17:39:02 +08:00
    直接上 GO
    xiaozaiziwyt
        27
    xiaozaiziwyt  
       2019-03-21 18:00:39 +08:00 via Android
    Java,从入门到精通
    fantastM
        28
    fantastM  
       2019-03-21 18:23:50 +08:00
    如果我没记错的话,《 Thinking In Java 》 是 JDK5,而《 Core Java 》是 JDK8
    fantastM
        29
    fantastM  
       2019-03-21 18:29:37 +08:00   ❤️ 1
    个人觉得《 Thinking In Java 》并没有大众吹捧中得那么神乎其神,不看也没啥影响......

    另外,楼主不妨看看 R 大在豆瓣的关于 Java 的读书列表 https://book.douban.com/people/RednaxelaFX/collect?sort=time&tags_sort=count&filter=all&tag=Java&mode=grid
    mohoumk2
        30
    mohoumk2  
       2019-03-21 18:41:12 +08:00 via Android
    后排问一下 core java 是不是《 java 核心技术》 ?
    murmur
        31
    murmur  
       2019-03-21 18:42:26 +08:00   ❤️ 1
    java 速成了也没法面试啊 工程性和考点太多了
    顺便说 tij 没那么神的 有些公司喜欢用 tij 的课后习题当笔试题 还是英文原版的
    wildnode
        32
    wildnode  
    OP
       2019-03-21 18:43:44 +08:00
    @gowk 我也想过学 Go,但是感觉我这种基础知识不太牢固的是不是还是从 Java 开始好一些。。
    wildnode
        33
    wildnode  
    OP
       2019-03-21 18:47:16 +08:00
    @murmur 没想着速成转行,还是继续干前端,但是想学一门后端语言的同时顺便补补后端基础知识和计算机基础,算是个人业余的精进,万一学好了还能自己干个全栈啥的。
    xiaxiaokang
        34
    xiaxiaokang  
       2019-03-21 18:52:29 +08:00
    @wildnode 基础知识不行和 java 没关系,基础可以看 C,没必要看 java,java 唯独是是面向对象思想的代表。但 go 又不完全是面向对象思想
    wildnode
        35
    wildnode  
    OP
       2019-03-21 18:56:04 +08:00
    @xiaxiaokang 总感觉 C 比 Java 还要难啃的多,关键我的想法是基于 Java 能展开的东西比较多,数据结构算法网上大把基于 Java 实现的讲解之类的,数据库、消息队列、或者等等这些后端的东西只要学 Java 或早或晚都有机会玩得到,可能我说得不对,还请大佬指正。
    anyele
        36
    anyele  
       2019-03-21 19:15:19 +08:00 via Android
    @yuthelloworld 我在学校就是被 eclipse 劝退的,后来用 IDEA 才重入 Java 坑
    xiaxiaokang
        37
    xiaxiaokang  
       2019-03-21 19:26:47 +08:00   ❤️ 2
    @wildnode
    第一:你要学 java 做什么?后端,那么你学好后优势是什么?
    第二:数据结构和算法难道其他的语言没有?
    第三:数据库其他的语言没有? 你知道消息队列用来干嘛的嘛?
    第四:[重点]已经有 java 了为什么会有 go,rust 或者其他语言。

    nodejs 是你向后端入门的通道,要比 java 成本低且能让你了解后端知识。
    通信协议(tcp/udp/http/https/websocket...),
    异步优势
    加密
    算法(当然密集型算法不是它强项)
    线程(什么是单线程多线程,node 是单线程)
    垃圾回收机制(任何语言都涉及,这块 java 是做的比较好)
    ...
    还有很多,所有一个 node 就够你学这么多知识为什么非去搞 java,类型 typescript 就足够
    你要学数据库结构就要了解内存存储原理了。
    多一句嘴:语言永远是载体,思想才是根本!
    zeromake
        38
    zeromake  
       2019-03-21 19:33:59 +08:00 via Android
    去阿三找个外包,远程替你写 Java
    VioletTec
        39
    VioletTec  
       2019-03-21 19:55:22 +08:00   ❤️ 5
    Thinking in Java 不适合作为新手的书籍,需要有一定的基础才能看得懂,thinking in Java 属于半工具书,虽然讲的很详细,但是不容易看懂,而且感觉看不进去(其实我也是一开始基本看不进去 TIJ 的人……)。没有功底读这本书很吃力,我建议楼主看一下网络教程,比如壁虎老师的 Java 基础教程视频,虽然他最近(2017 年)重录了一次,但是放在了百度云,如果楼主有百度云会员的话可以看下面的链接,他的老版视频在 51zxw,基础学完还有金金的进阶教程和高级实战教程。个人就是从他那里起步的,感觉挺好,很适合新手学习,也就是专门面对新手的。书籍的话,我建议你把基础教程看完,再去买一本 think in Java,这样效果会好一点。
    推荐楼主这两本
    1.《 head first java 》适合基本没啥基础,又不喜欢看大段的文字类书籍的人。但这本书特别贵,也是仅仅入门。
    2.《 Core java 》,中文名叫《 java 核心技术》这本书简浅易懂,很适合新手入门。知识点也说得比较详细,特别是一些细节很到位。
    (二者选一即可)


    壁虎老师 Java 基础视频百度云链接:
    链接: https://pan.baidu.com/s/1Z-gkitkkSP0ZCI0OQ8Wo0A 提取码:6hmc

    混 V2EX 也不容易,求打赏了!!拜托
    wildnode
        40
    wildnode  
    OP
       2019-03-22 00:33:22 +08:00
    @xiaxiaokang
    细细品味了一下您说的话,觉得您说的很对,我确实是操之过急了。
    可能我只是不想承认和面对自己的惰性,所以拿语言什么的来说事儿了。
    确实只要想学,不管什么语言都可以学到这些知识。
    我想我应该静下心来想想您说的思想本质上是什么。
    总之今天您这一席话让我非常受用,再次向您表示感谢。
    谢谢!
    zkeeper
        41
    zkeeper  
       2019-03-22 07:59:17 +08:00
    楼上说 thinking in java 做为入门书看不下去, 可能每个人感受不同吧. 我一开始就是看的 thinking in java, 越看越 high
    Jasonluo925
        42
    Jasonluo925  
       2019-03-22 10:54:39 +08:00
    @xiaozaiziwyt 很赞同你说的话, 感谢~~思想才是根本.
    目前我也认识到我个人也处于思想的惰性, 公司工作也不会接触任何代码, 只是个人觉得以后懂点开发会对自己不管思维上还是运用上都会有些帮助.
    自己现在对开发语言这块是属于 0 基本, 学校也没有接触过, 想请教一下对于我们这种零基础 ( 纯属做为提升自身能力却看不清计算机语言日后的发展趋势 ), 你可否站在前辈们经验和发展趋势上帮忙推荐一下计算机语言的学习.
    a852695
        43
    a852695  
       2019-03-22 10:58:22 +08:00
    最近也想入坑 java,v2 果然是个学习的好地方 (狗头
    geying
        44
    geying  
       2019-03-22 11:01:04 +08:00 via iPhone
    从 12 开始学吧
    SilentDepth
        45
    SilentDepth  
       2019-03-22 12:45:38 +08:00
    没人提 Kotlin 吗……

    另外「国军」是啥?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6006 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:15 · PVG 10:15 · LAX 18:15 · JFK 21:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.