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

初学 Java ,表示真香!

  •  
  •   ahuanggg · 2020-03-10 18:37:22 +08:00 via iPhone · 19736 次点击
    这是一个创建于 1700 天前的主题,其中的信息可能已经有所发展或是发生改变。

    疫情在家办公,变上班边学点 Java,感觉 Java 的语法和逻辑真是严谨,以前自学 python 时好多不懂的概念通过学 Java 全都弄明白了。
    以后推荐初学者学编程是不是都应该先推 Java,感觉 python 语法太松太灵活,不适合理解一些抽象概念。

    172 条回复    2020-04-27 09:31:44 +08:00
    1  2  
    noreplay
        1
    noreplay  
       2020-03-10 18:39:11 +08:00 via Android   ❤️ 1
    不是学 c 吗?
    szxczyc
        2
    szxczyc  
       2020-03-10 18:40:41 +08:00 via iPhone
    无脑推 Python ( ・ω・)=つ≡つ 打你
    ahuanggg
        3
    ahuanggg  
    OP
       2020-03-10 18:42:53 +08:00 via iPhone
    @noreplay 真不会劝退吗🤣
    manami
        4
    manami  
       2020-03-10 18:44:45 +08:00 via Android   ❤️ 14
    学了 go 感觉 java 一点都不香
    noreplay
        5
    noreplay  
       2020-03-10 18:45:10 +08:00 via Android
    @ahuanggg 不会的。学 c 有个大致印象,然后再转到 python,js 之类的,还不是美滋滋。
    BSC5622
        6
    BSC5622  
       2020-03-10 18:46:40 +08:00
    学 C++吧 会感觉语言更加精妙
    tt67wq
        7
    tt67wq  
       2020-03-10 18:50:44 +08:00 via iPhone   ❤️ 17
    看你一副没见过世面的样子! java 也叫香? golang kotlin elixir rust csharp
    哪个不比 java 香?
    就 java 这种罗里吧嗦的东西看着就恶心
    cedoo22
        8
    cedoo22  
       2020-03-10 18:52:24 +08:00   ❤️ 4
    我觉得 python 最香
    java 是一座山,你想爬上去,要先组装一辆车, 先找轮子 再找方向盘 再找离合, 而且这些零件时不时要自己改进。
    python 是 直接给你辆自动挡的悍马,学会踩油门就行,当然后期可能到爬不上去到时候也要你自己造车。
    miao666
        9
    miao666  
       2020-03-10 18:53:15 +08:00 via Android
    你要是学了世界上最好的语言_____,你会觉得其他语言都失去了颜色。
    Mithril
        10
    Mithril  
       2020-03-10 18:54:02 +08:00   ❤️ 2
    你可以学学 C#试试。。。
    1490213
        11
    1490213  
       2020-03-10 18:56:50 +08:00 via Android
    还可以学学 LISP,再看点 Haskell, 打开新的世界。
    keith1126
        12
    keith1126  
       2020-03-10 18:58:02 +08:00   ❤️ 4
    「好多不懂的概念」来自于计算机基本功,比如数据结构、算法、操作系统等等,而不是某门语言。
    ahuanggg
        13
    ahuanggg  
    OP
       2020-03-10 19:00:19 +08:00 via iPhone
    @tt67wq 哈哈孤陋寡闻了
    InkStone
        14
    InkStone  
       2020-03-10 19:00:52 +08:00
    要说香,我觉得 Scala 和 C++比 Java 香多了……涉及的抽象概念也丰富多了。
    ahuanggg
        15
    ahuanggg  
    OP
       2020-03-10 19:02:01 +08:00 via iPhone
    @keith1126 面向对象这块,感觉 java 学起来会比 python 更系统一点。
    ahuanggg
        16
    ahuanggg  
    OP
       2020-03-10 19:03:02 +08:00 via iPhone
    @miao666 php 么😂
    AcoStory
        17
    AcoStory  
       2020-03-10 19:03:47 +08:00
    都啥年代了还学 java
    brendan
        18
    brendan  
       2020-03-10 19:04:50 +08:00 via iPhone   ❤️ 1
    一上来就学底层东西会导致一直在学基础内容,最后就放弃了
    ahuanggg
        19
    ahuanggg  
    OP
       2020-03-10 19:07:51 +08:00 via iPhone   ❤️ 1
    @brendan 感觉 java 也不会太底层,理解起来也没有太难,而且还能很快上手。
    arloor
        20
    arloor  
       2020-03-10 19:13:37 +08:00   ❤️ 9
    java 还是香的,虽然会有一些很啰嗦的东西,但是很严谨,而且这种啰嗦在 jdk8 及以后版本在不断缩减
    说 go 香的,我觉得他的错误处理和没有泛型会导致更加啰嗦

    上面列 golang kotlin elixir rust csharp 的人,太博学了

    python 太野了,会伤到自己
    AngryPanda
        21
    AngryPanda  
       2020-03-10 19:15:59 +08:00
    以前自学 python 时好多不懂的概念通过学 Java 全都弄明白了
    --------------------------------
    比如?
    ahuanggg
        22
    ahuanggg  
    OP
       2020-03-10 19:20:44 +08:00 via iPhone   ❤️ 1
    @AngryPanda 比如面向对象这块,我觉得 java 的逻辑就比 python 要清晰
    bwangel
        23
    bwangel  
       2020-03-10 19:22:10 +08:00   ❤️ 14
    「好多不懂的概念」来自于计算机基本功,比如数据结构、算法、操作系统等等,而不是某门语言。
    ---

    这种言论很扯淡,每个语言都有自己的特性,这些特性会让每门语言衍生出各自的独特写法,长期沉浸在一门语言中,必然会对其他语言的一些概念不熟悉。


    推荐看:

    https://zhuanlan.51cto.com/art/201903/593116.htm
    wmhx
        24
    wmhx  
       2020-03-10 19:28:14 +08:00
    某些语言一个 var 来定类型, 然后很多代码后,你都忘记了具体是什么类型, 然后报错与否全看天意; 虽然 java 也有了这个 var, 但真真的很恶心, 特别是看人家的代码.
    Mithril
        25
    Mithril  
       2020-03-10 19:31:04 +08:00   ❤️ 1
    @wmhx 自动类型推导和动态类型能一样么。。。
    TangMonk
        26
    TangMonk  
       2020-03-10 19:32:01 +08:00   ❤️ 6
    C#比他香
    cdlnls
        27
    cdlnls  
       2020-03-10 19:39:19 +08:00 via iPhone   ❤️ 2
    学了 Python 之后再看 Java,确实也有这种感觉,要是再继续学 kotllin 你会发现 kotlin 更香。
    一圈轮下来,最后发现还是 Python 香。
    crella
        28
    crella  
       2020-03-10 19:40:37 +08:00 via Android   ❤️ 2
    我认为 c#最香,可惜我学不会(懒得找轮子)
    james122333
        29
    james122333  
       2020-03-10 19:48:41 +08:00 via Android
    老实说 一点也不香 命名悲剧 修改困难 某些实现运作联想不到 反射就是反人类 好的代码习惯才是真 没多余代码才是好 什么严谨都是假的 好维护才是真的 不要本末倒置
    loshine1992
        30
    loshine1992  
       2020-03-10 19:52:53 +08:00
    Java 非常适合作为第一门语言

    之后转其它语言都非常简单。
    brendan
        31
    brendan  
       2020-03-10 19:54:33 +08:00 via iPhone
    @ahuanggg 我想说的是 java 要学东西真的太多了,你要学很多东西之后才能做出一个项目出来。很多人学到一半就放弃了。
    softtwilight
        32
    softtwilight  
       2020-03-10 19:55:54 +08:00   ❤️ 14
    语言真是永远的话题。学了 java,懂了一些东西,开心,表示很香,多好的一件事
    TypeError
        33
    TypeError  
       2020-03-10 19:57:41 +08:00
    我还是看 kotlin/go 算了
    masker
        34
    masker  
       2020-03-10 19:59:39 +08:00 via Android
    不懂的概念怕是自己当时不懂没有去资料搜索吧?怪语言了吗?
    Orciorc
        35
    Orciorc  
       2020-03-10 20:00:55 +08:00 via Android
    @cedoo22 这么说 C/CPP 就是,你需要一辆跑车,C/CPP 给了你一堆铁矿石
    littlewing
        36
    littlewing  
       2020-03-10 20:07:02 +08:00 via iPhone
    骚年 学 gi 吧
    littlewing
        37
    littlewing  
       2020-03-10 20:07:10 +08:00 via iPhone
    yulihao
        38
    yulihao  
       2020-03-10 20:08:32 +08:00
    我一开始学 VB,然后 C++,现在仍然 C++,偶尔用 C#。没有学 Python,不过打算偶尔学一下 Pythom,主要 C++(毕竟还是高中生)
    james122333
        39
    james122333  
       2020-03-10 20:14:36 +08:00 via Android
    @cedoo22
    用过别人开发的就知道了 这不是组装 为何元件内拆卸困难重重
    zhuangzhuang1988
        40
    zhuangzhuang1988  
       2020-03-10 20:20:37 +08:00
    没办法,
    python 有"人生苦短"宗教
    一遍遍洗脑
    写完一个月后, 看自己代码都不知道是啥, 参数应该传啥,
    更不要说 看别人代码了
    watzds
        41
    watzds  
       2020-03-10 20:25:24 +08:00 via Android
    以前学了多年 c/c++,最终还是写 java 了
    abcbuzhiming
        42
    abcbuzhiming  
       2020-03-10 20:29:24 +08:00
    @brendan Java 要学的东西还多啊?你要不要试试用 C++做项目,那才叫多
    james122333
        43
    james122333  
       2020-03-10 20:31:37 +08:00 via Android
    @zhuangzhuang1988
    人生苦短 拿来就用
    卡依赖 现在每个都差不多这样了
    Athrob
        44
    Athrob  
       2020-03-10 20:34:16 +08:00   ❤️ 2
    C#: ?
    brendan
        45
    brendan  
       2020-03-10 20:35:16 +08:00 via iPhone
    @abcbuzhiming 纯学个 java 能做什么?不把 j2ee 学完? j2ee 东西还不算多?
    cosmic
        46
    cosmic  
       2020-03-10 20:44:24 +08:00 via Android   ❤️ 2
    Java 太罗嗦了,C#作为工程语言,写起来顺手很多
    james122333
        47
    james122333  
       2020-03-10 20:49:20 +08:00 via Android
    @cosmic
    一模一样的路能有什么改变...
    murmur
        48
    murmur  
       2020-03-10 20:57:10 +08:00
    这就对了,java 主要是名字就比其他语言好,java 加瓦,添砖加瓦,说明 java 是大型项目的基石
    pursuer
        49
    pursuer  
       2020-03-10 21:04:37 +08:00
    Java 确实在现代语言中不算优秀,kotlin,c#,ts 等特性更丰富,表达能力更强,Go 现在没泛型,if err!=nil,热更新半残的状态,我觉得总体比 Java 还差点意思。但是 Java 没有协程方案,Project Loom 不知道要等到什么时候才上了
    augustheart
        50
    augustheart  
       2020-03-10 21:18:47 +08:00   ❤️ 2
    不考虑面向工作学习的话,c#各个方面都比 java 漂亮多了……
    t2doo
        51
    t2doo  
       2020-03-10 21:20:58 +08:00
    java 中的多态,内部类,确实香 :doge
    exploreXin
        52
    exploreXin  
       2020-03-10 21:30:50 +08:00   ❤️ 24
    如果条件允许,时间和精力足够充裕,正统的学习流程应该是:C 语言,之后 C#, Java, C++三选其一学一个,其中如果学 C++请选择一个适合自己工作背景的最小的特性集学习,之后脚本语言 php , python,ruby,perl,这几个脚本语言学下来基本上去中小型企业找工作都十拿九稳了,再之后想学就是返回来学习 C 语言的前辈,汇编语言,再加上一点硬件知识和计算机体系结构的学习,这时你会发现万能的 C 其实也不是能力最强大的,C 只是汇编的高层抽象与封装,汇编的世界里是很神奇和强大的,几近可以为所欲为。到这里,学了一圈回到 C,现在命令型和面向对象语言基本已经了解的差不多了,再想学的话,接下来就是突破范式的壁垒,去研究一下函数范式,JavaScript 可以当做入手语言,注意 JavaScript 只是具有函数特性的命令范式语言,并不算是真正的函数范式,之后可以尝试学习 Lisp 及其方言,Coljure,Scheme 等真正的函数式编程语言,或者如果想体验纯函数式不掺杂一点杂质的学术性语言 Heskell, 也是可以的。如果到这里还有精力,可以了解逻辑范式的编程语言,prolog 是其中的代表,如果不想深入人工智能领域的工作岗位,可以点到为止,尝尝鲜就好了。至此,四大范式:命令型,面向对象,函数式,逻辑式,已经全部有所领略。这时的你,会发现已经获得了七天精通任何一门编程语言的能力,虽然编程语言总共有数千种,并且还在一直增加,但是大体的范式与特性在常见编程语言当中都有所实现,重要的不是学会全世界所有的语言,重要的是领悟编程语言背后共通的编码原则与设计哲学,这些看似神仙般原则与哲学,才是回报收益率最高的。另外提一下,接触的语言越多,学习的速度会越快,并且会指数倍的向上提升,那种融会贯通,高屋建瓴的领悟能力,是自己领略之后,才能体会到其中的乐趣与震撼的,不要被上面一大堆语言吓倒,只要喜欢编程,不管是谁都是可以去学习与探索的。
    ahuanggg
        53
    ahuanggg  
    OP
       2020-03-10 21:35:23 +08:00 via iPhone
    @exploreXin 厉害了👍
    ironMan1995
        54
    ironMan1995  
       2020-03-10 21:36:13 +08:00
    我是自学前端工作两年多了,现在自学 Java 最近跟着 Mooc 上翁恺老师的课学习然后跟着练习,另外就是看 Java 核心技术卷一(11 版),不知道这个学习过程对不对?请教下老哥们
    xuhaoyangx
        55
    xuhaoyangx  
       2020-03-10 22:00:00 +08:00
    Kotlin 走起 golong 走起
    fihserman123
        56
    fihserman123  
       2020-03-10 22:03:18 +08:00
    科班出身选 C++,非科班选 Java。
    ExploreWay
        57
    ExploreWay  
       2020-03-10 22:05:15 +08:00
    还是看实际需要学习,现在不少大公司开始用 go 了。
    dabaitu
        58
    dabaitu  
       2020-03-10 22:21:14 +08:00 via Android
    @wmhx idea 可以开启显示推导类型的 hint 很不错
    ArianX
        59
    ArianX  
       2020-03-10 22:29:27 +08:00
    几次学 java 都没耐心学下去,太罗嗦了
    n2l
        60
    n2l  
       2020-03-10 22:38:06 +08:00 via iPhone
    没人说 swift 么……
    chanchan
        61
    chanchan  
       2020-03-10 22:38:26 +08:00   ❤️ 1
    我觉得其实真正的学习编程语言的顺序是按语言的特性来,从最常见的变量 赋值 语句 /表达式 函数 循环 /递归.. -> 面向对象 -> 函数式编程 + 各种高级点的特性 /概念,什么泛型 闭包 模式匹配 GC 宏 continuation CPS currying.
    大部分人脑袋里想的先学 C,其实学的不只是 C 语言还有一堆计算机科学之类的东西
    nl101531
        62
    nl101531  
       2020-03-10 22:39:13 +08:00   ❤️ 1
    尝试下这个插件,会帮助你理解很多语法糖.

    https://www.v2ex.com/t/651072#reply9
    shanex
        63
    shanex  
       2020-03-10 22:41:22 +08:00
    GrayXu
        64
    GrayXu  
       2020-03-10 22:49:11 +08:00 via Android
    说明 python 没学好…
    yannxia
        65
    yannxia  
       2020-03-10 22:54:38 +08:00
    Java 中规中矩,刚好适合理解大部分的设计理念。
    DefoliationM
        66
    DefoliationM  
       2020-03-10 23:09:01 +08:00
    java 像裹脚布一样,写起来啰哩啰唆,如果有机会可以尝试一下 kotlin.
    james122333
        67
    james122333  
       2020-03-10 23:36:53 +08:00
    @exploreXin
    人脑计算? (滑稽)
    charlie21
        68
    charlie21  
       2020-03-10 23:46:26 +08:00
    Java 作为企业级软件开发的第一语言 自然有它的道理
    ml444
        69
    ml444  
       2020-03-10 23:50:58 +08:00
    我只说两件事:
    1HTML 是一门编程语言!!!!
    2PHP 是世上最好的语言!!!!
    witcherhope
        70
    witcherhope  
       2020-03-10 23:59:18 +08:00 via iPhone
    @DefoliationM 写过一个项目,感觉 Kotlin 并不比 Java 少多少代码,简洁多少
    AM2coder
        71
    AM2coder  
       2020-03-11 00:03:02 +08:00 via Android
    初学者应该选 python。编程在于兴趣,有了兴趣才能推动你向更高、更深层次迈进。而 python 是最能在短期内带给人成功快感的语言,没有之一。另外,python 真香!!
    1002xin
        72
    1002xin  
       2020-03-11 00:12:06 +08:00
    现在看见 java 就有点恶心心
    RobberPhex
        73
    RobberPhex  
       2020-03-11 00:56:15 +08:00 via Android
    loom 还没出,java 的异步编程还是比较难用的
    ericgui
        74
    ericgui  
       2020-03-11 01:06:00 +08:00
    楼主+1

    我也觉得 Java 比动态语言好

    所以我准备学 C++了
    longjiahui
        75
    longjiahui  
       2020-03-11 01:06:13 +08:00
    不喜欢 java
    LokiSharp
        76
    LokiSharp  
       2020-03-11 08:01:00 +08:00 via iPhone
    @DefoliationM Kotlin 和 Java 半斤八两把。。。
    LowBi
        77
    LowBi  
       2020-03-11 08:07:27 +08:00 via Android
    一点都不香,还很繁琐
    AmrtaShiva
        78
    AmrtaShiva  
       2020-03-11 08:17:31 +08:00   ❤️ 2
    @ahuanggg 面向对象逻辑我觉得 C#更好
    blless
        79
    blless  
       2020-03-11 08:57:25 +08:00 via Android
    我觉得都香,但是现在觉得 go 香,我先自学 c,完全不得要领,学了 java 对面向对象程序工程豁然开朗。再学 go,发现对 c,对内存,硬件了解更多了。
    alya
        80
    alya  
       2020-03-11 09:04:43 +08:00   ❤️ 1
    我觉得 scala 更香
    jiom
        81
    jiom  
       2020-03-11 09:06:41 +08:00
    python 不香吗~哈哈哈哈哈~
    zjsxwc
        82
    zjsxwc  
       2020-03-11 09:09:13 +08:00
    c++20 真香
    Perry
        83
    Perry  
       2020-03-11 09:09:52 +08:00
    上学的时候我是这么学过来的:

    python -> Java -> 汇编( MIPS,自定义 instructions ) -> Scheme -> C
    cabing
        84
    cabing  
       2020-03-11 09:16:11 +08:00
    我的路线是 c->php->java/go->c++ :) java 除了啰嗦点,库真是香
    crc8
        85
    crc8  
       2020-03-11 09:19:03 +08:00
    @ironMan1995 看不少人推荐翁同学的课,看了 10 来节,实在看不下去,不对胃口。可能只适合年轻人
    WebKit
        86
    WebKit  
       2020-03-11 09:19:27 +08:00
    你们说了这么多。。工业级的语言,而且还大范围使用的目前除了 java 还有那个能打的?为什么一些人一上来就鄙视 java...繁琐也是 JDK1.7 之前了吧。JDK1.8 后一直在改进。JDK1.7 前 go Python 才刚刚起步
    pythonee
        87
    pythonee  
       2020-03-11 09:20:28 +08:00
    以前看到一个比喻
    JAVA 是正妻
    Python 是小三
    pythonee
        88
    pythonee  
       2020-03-11 09:21:52 +08:00
    @cosmic
    @augustheart
    @Mithril
    @TangMonk

    没怎么用过 C#,能否给几个甜头勾引一下?
    kanezeng
        89
    kanezeng  
       2020-03-11 09:22:38 +08:00   ❤️ 1
    之前不懂的概念现在懂了这种情况很正常,尤其是自学的人。好比有的事情看第一本书时还是有点蒙,换一本接着看有时就有豁然开朗的感觉。但是这并不代表后者就一定是比前者好,很多时候是前者搭了 80%的基础,后者正好从某个适合自己的方向推了一把让你解锁了某方面成就而已。两手都要抓,两手都要硬,二者是相辅相成不可分割………………(对不起,走错片场了)
    Hoshinokozo
        90
    Hoshinokozo  
       2020-03-11 09:27:03 +08:00
    我说 JS 香会被打么。。。我是 C#转 JS 的,C#的确很优雅,但是限制的太死了,JS 用起来真的爽(一旦出事也很爽 23333 )
    Marsss
        91
    Marsss  
       2020-03-11 09:35:30 +08:00
    觉得 python 没学好+1
    afirefish
        92
    afirefish  
       2020-03-11 09:37:12 +08:00   ❤️ 2
    不是面向工作编程的话,建议 C#.......你会认识到现代化语言的魅力......
    huage2580
        93
    huage2580  
       2020-03-11 09:37:29 +08:00
    怎么讲呢,Java 真又长又臭,但是可以限制住新手,按着最低限度规范来写。那些脚本语言吧,下限低,入门快,规范全靠自觉,甚至没那能力做完整的面向对象。成熟以后,大家都喜欢快的,写的快,运行快。
    sonyxperia
        94
    sonyxperia  
       2020-03-11 09:38:33 +08:00
    楼主别听楼上的几位瞎逼逼
    Java 的好处就在于语法简单,配合上 ide 这样的开发工具,你在写代码的时候很少出现语法错误,只要专心实现业务功能即可
    这也是 Java 为什么流行的原因
    至于楼上说的其他语言,你看过就行了。
    newmlp
        95
    newmlp  
       2020-03-11 09:57:11 +08:00
    Java 只适用于工作
    AmazingEveryDay
        96
    AmazingEveryDay  
       2020-03-11 09:57:41 +08:00
    面向工作编程 学个 JAVA 没毛病
    基本功和语言其实不是完全强关联的
    看的多了 你会发现内核都是 基本语法+面向对象(可选)+高级特性
    是从语言去了解这些基本的概念 而不是反过来
    newmlp
        97
    newmlp  
       2020-03-11 09:58:12 +08:00
    @WebKit 有本事用 Java 写 Java 虚拟机啊
    BBCCBB
        98
    BBCCBB  
       2020-03-11 10:05:00 +08:00
    Java 是真的稳!
    guolaopi
        99
    guolaopi  
       2020-03-11 10:08:16 +08:00   ❤️ 2
    我选 C#,虽然现在工作行情不好。
    但是 linq 和语法糖足以让人坚持下去。


    @pythonee #88,语法糖就不说了,linq 了解下,操作集合不要太爽。

    离了 linq 写代码总觉得哪别扭,跟不会写了一样。
    ackfin01
        100
    ackfin01  
       2020-03-11 10:08:37 +08:00
    看看 clojure lisp,才觉得更 6
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4625 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 05:36 · PVG 13:36 · LAX 21:36 · JFK 00:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.