朱涛 · Kotlin 编程第一课
朱涛
Google 认证的 Kotlin、Android 开发者专家,博客“Kotlin Jetpack 实战”作者
6717 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 50 讲
朱涛 · Kotlin 编程第一课
15
15
1.0x
00:00/00:00
登录|注册

答疑(一)| Java和Kotlin到底谁好谁坏?

你好,我是朱涛。
由于咱们课程的设计理念是简单易懂、贴近实际工作,所以我在课程内容的讲述上也会有一些侧重点,进而也会忽略一些细枝末节的知识点。不过,我看到很多同学都在留言区分享了自己的见解,算是对课程内容进行了很好的补充,这里给同学们点个赞,感谢你的仔细思考和认真学习。
另外,我看到不少同学提出的很多问题也都非常有价值,有些问题非常有深度,有些问题非常有实用性,有些问题则非常有代表性,这些问题也值得我们再一起探讨下。因此,这一次,我们来一次集中答疑。

Java 和 Kotlin 到底谁好谁坏?

很多同学看完开篇词以后,可能会留下一种印象,就是貌似 Java 就是坏的,Kotlin 就是好的。但其实在我看来,语言之间是不存在明确的优劣之分的。“XX 是世界上最好的编程语言”这种说法,也是没有任何意义的。
不过,虽然语言之间没有优劣之分,但在特定场景下,还是会有更优选择的。比如说,站在 Android 开发的角度上看,Kotlin 就的确要比 Java 强很多;但如果换一个角度,服务端开发,Kotlin 的优势则并不明显,因为 Spring Boot 之类的框架对 Java 的支持已经足够好了;甚至,如果我们再换一个角度,站在性能、编译期耗时的视角上看,Kotlin 在某些情况下其实是略逊于 Java 的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Kotlin枚举类的valueOf()方法在解析枚举值时存在问题,因为它实际上是用于解析枚举变量名称而非值。文章提出了使用自定义的realValueOf()方法来解决这一问题,并强调了在使用Kotlin枚举时需要小心谨慎。此外,文章还强调了Kotlin和Java在特定场景下的优劣,并指出了Kotlin在Android开发等领域的优势。同时,文章还提到了Kotlin中Double类型字面量、逆序区间和密封类的注意事项,以及对枚举的补充。总的来说,本文强调了Kotlin的特性和注意事项,以及在实际开发中需要注意的细节,对读者在使用Kotlin时提供了有益的指导和思考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《朱涛 · Kotlin 编程第一课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • Paul Shan
    Java 和Kotlin很难直接比较,因为这两个语言是诞生在不同年代。不过倒是可以从Kotlin的诞生看看两者的区别。Kotlin是Jetbrains公司开发的,Jetbrains是Java的重度使用者,开发跨平台的IDE,这个世界上比Jetbrains公司更擅长Java的公司,怕是不多。Jetbrains选择研发一门新语言本身就说明,现阶段Java不是Jetbrains的最优选择,Jetbrains估计受够了Java的短板,所以才要在Java的基础上迭代。Kotlin在Java的基础上开发的,所以更为简洁顺手。个人觉得将来Kotlin Multiplatform比Kotlin Backend成功的概率更大一些,虽然Kotlin Backend技术上和Kotlin Android没什么差别。这主要是因为Jetbrains是一家精通UI开发的公司,后端开发并非Jetbrains的强项。 Kotlin是Jetbrains俄罗斯团队研发的(Kotlin名字来自于圣彼得堡旁边的小岛),俄乌战争开打以后,Jetbrains就无限期关停了在俄罗斯的研发和销售业务,这给Kotlin Multiplatform等项目蒙上阴影。从Jetbrains的Channel上看,战争开打以来,视频更新明显减少。请问老师,俄乌战争给Kotlin带来的影响会短期过去,还是会成为长期挥之不去的阴影?

    作者回复: 很棒的见解!Kotlin Multiplatform的潜力确实比后端要大很多。 关于俄乌战争对Kotlin的影响:Jetbrains的创始人由于自身立场,选择了制裁俄罗斯,停止对俄罗斯提供服务,也停止了俄罗斯的研发团队。不过,总的来说,Jetbrains是一个全球化的公司,我相信这个影响只是短期的。

    2022-03-27
    2
    8
  • 白乾涛
    Kotlin 舍弃了 Java 中很多容易出错的语法,那为什么引入了 in 却又不支持 6…0 这种写法呢? 这不就是另一个容易出错的语法吗?

    作者回复: 我赞同,只能说Kotlin还不够好吧! 当然这不是一个特别大的问题,因为:6..0这样的写法,它到底执行还是不执行,其实都是可以接受的,只是Kotlin选择了后者。

    2022-03-26
    3
  • 7Promise
    kotlin中要考虑集合是否可变其实有时候也是麻烦的事情

    作者回复: 是的。

    2022-03-25
    3
  • 张国庆
    使用kotlin是不是包体积会比Java大

    作者回复: 会稍微大一点点,但不会很多。

    2022-03-25
    3
  • focus on
    大佬能多讲讲flow吗,随着flow取代livedata,而且Android上的StateFlow和SharedFlow不好理解

    作者回复: 好的,记下了,请留意后续的加餐。

    2022-03-28
    2
    2
  • PoPlus
    涛哥,能讲讲 kotlin 中 IntArray、Array<Int> 这些集合的设计缘由吗?

    作者回复: IntArray、Array<Int>,这么设计的初衷是为了提升性能。前者是原始类型的数组,后者是封装类型的数组。大部分情况下,我们应该使用前者。

    2022-04-11
    1
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部