这几年互联网领域先后经历了几次大革命,包括物联网、大数据、云计算等,如今则处于人工智能的火热时代。伴随其中的一个重要的编程语言便是Java。

(Java口号“一次编写,到处运行”)

Java由于其强大的跨平台(主要指操作系统)能力,而备受各种中间件组件开发人员的钟爱。而Java之所以能够跨平台,主要归功于JVM虚拟机。

在Java刚推出来的几年里,由于JVM的性能低下,导致不太被认可。

但是后来随着各种黑科技的引入,例如:

JIT即时编译

基于Java字节码的栈顶缓存技术

垃圾回收算法的改进

JDK高性能类库

JVM的性能得到长足改进和飞速提升,早已今非昔比,在部分场景下甚至比C/C++的性能还要高。

(Top 10 编程语言 TIOBE 指数走势)

人们再也没有任何理由拒绝使用Java,所以Java得到了飞速发展,多年来稳居服务端应用编程语言使用率第一的宝座。

(Top 5 编程语言 近20年排位)

同时,JVM是一个开源的产品,在统一的技术规范下,不对实现做任何约束。因此各种基于JVM规范的编程语言也得以被发明出来,例如Scala、Clojure、Groovy等,甚至PHP、Ruby等程序也可以转换到JVM规范。

(基于JVM规范的编程语言占比)

虽然Java与JVM在最近这些年取得了巨大的成功,但是也并非没有缺点。


例如Java是一种严格的面向对象设计的编程语言,一切编程要素都被严格编写在Java类型内部,你不可能像C语言那样,直接在源程序中定义一个函数。这种完全的面向对象设计的特性也给Java自己造成了很多不便,例如无法对底层类库进行扩展,除非你去继承并实现一个新的类型。

同时,Java编程语言的语法太过于严格和死板,不像很多其他编程语言那样,有不少让人心动的功能特性,这种死板和严格往往会造成工作效率的低下。

于是,Kotlin诞生了。

2017 年度的 Google I/O 上的重磅消息相信大家都知道,Kotlin 正式成为了官方的 Android 开发语言。该消息迅速占据了国内各大技术媒体的头条。

同时,谷歌技术大牛 Steve Yegge在 Hacker News写了一篇关于 Kotlin 的使用体会总结文章《Kotlin is better》在首页引发了热烈讨论。

Kotlin带给Steve Yegge的体验与所有实践过它的开发者相同:它的发明者 JetBrains 所言非虚,这是一门简洁、安全、实用的语言,用了就停不下来,就忍不住地想推荐给周围的人。

(务实、简洁、安全与互操作性正是Kotlin设计哲学)

虽然Kotlin底层仍然基于JVM虚拟机,但随着对Kotlin特性了解的加深,你会越来越发现Kotlin真的不是随随便便搞出来的一个全新的编程语言。因为这真的是一门融合了众多编程语言特性的编程语言,并且是在不违反JVM规范的基础上,将其他众多语言的特性融入了进来,说其是博采众家之长,一点也不为过。

口碑畅销好书《揭秘Java虚拟机:JVM设计原理与实现》作者封亚飞,将自己对Kotlin语言的透彻理解和分析,以浅显易懂的形式完整地浓缩在新作《揭秘Kotlin编程原理》一书中。

本书主要从封装、继承和多态这三方面介绍Kotlin的面向对象设计的语法特性及其背后的实现方式。

Kotlin保留了Java封装好的一面,勇敢地摒弃了其不好的一面。例如对静态字段和方法的舍弃与变通。而在方法封装上,Kotlin更是玩出了新花样,打破了Java封装的彻底性,让Java开发者可以体验“面向过程”编程的感觉。同时,Kotlin充分吸收其他编程语言中的好的语言特性,提供了诸如VB语言中的“with语法”。

在继承方面,Kotlin也有自己的思考,其综合了Java和C++等面向对象编程语言继承的优缺点,设计出自己的一套独特的继承机制。不过Kotlin依然保留了Java语言中一个类不能同时继承多个类的强制约束。

Kotlin给人最多的惊艳,都集中在“多态”这一领域。其中,最让人惊叹的便是Kotiln提供了这样一种能力:不用修改原有类,也无须通过继承的方式,就能为某个类增加新的行为。虽然Kotlin仅仅是取巧,仅仅实现了一个语法糖的包装,但是这种小的改变却秀出了“美”的新高度。或许,这都不能算是继承,这里姑且将其与继承混为一谈吧。

本书推荐

在《揭秘 Kotlin 编程原理》中,读者不仅能清晰地了解Kotlin的语法、高级特性,还能真正地掌握Kotlin背后的实现机制和设计哲学,形成对Kotlin语言既直观、又深刻的认识——在此基础上,读者能准确、快速地上手实践,大大提升自己的移动开发能力。

例如,Kotlin在不违反JVM规范的基础上,融合了众多编程语言的特性:它打破了Java封闭的彻底性,让开发者可以体验“面向过程”编程的感觉;它充分吸收了其他编辑语言中的好特性,提供了诸如VB语言中的“with语法”……此外,它提供了这样一种能力,不用修改原有类,也无须通过继承的方式,就能为某个类增加新的行为,等等。

Kotlin的这些特性和实现机制,可以帮助开发者扫清开发道路上的一些障碍,让开发变得更加简单!《揭秘Kotlin编程原理》是一本值得拥有,能切实帮助读者加薪提职的好书!

本书获得了诸多业内人士的赞誉

张建锋,永源中间件共同创始人

《揭秘Kotlin编程原理》从语言的本质方面对Kotlin进行了全面讲解,对于学习Kotlin语言的Java开发者,是一本难得的技术书籍。

占军(公众号:占小狼的博客),美团点评基础架构组技术专家

目前市面上还没有见到剖析Kotlin内部机制的著作。本书作者,基于多年来对Java虚拟机的深刻理解,在第一时间研究了Kotlin语言,并将自己对Kotlin的透彻理解条分缕析地分享在这本《揭秘Kotlin编程原理》中:从浅显易懂的入门知识到豁然开朗的原理分析,使读者不仅能够知其然,并且能够知其所以然,从而能得心应手地运用好Kotlin。

骆昊,北京千锋互联(成都)科技有限公司技术总监

《揭秘Kotlin编程原理》对Kotlin的关键语法和核心特性进行了深入的讲解,通过与其他语言(Java、C++)的比较以及直达JVM字节码的分析,为有编程经验尤其是对Java语言有经验的读者迅速掌握Kotlin语言构建了一条快速通道。

本书目录结构
1 快速入门
• 1.1 简介
• 1.2 编写第一个Hello World程序
• 1.3 程序结构
2 基本语法
• 2.1 基本类型
• 2.2 变量与常量
• 2.3 函数
3 封装
• 3.1 构造函数与实例化
• 3.2 内存分配
• 3.3 初始化
• 3.4 类成员变量
• 3.5 数组
• 3.6 静态函数与伴随对象
4 继承
• 4.1 继承基础概念
• 4.2 多重继承
• 4.3 继承初始化
• 4.4 类型转换
5 多态
• 5.1 概念
• 5.2 扩展
• 5.3 操作符重载
• 5.4 指针与传递
6 Kotlin的I/O
• 6.1 Java I/O类库
• 6.2 Kotlin I/O类库
• 6.3 终端I/O
• 6.4 文件I/O
• 6.5 文件压缩示例
• 6.6 序列化
7 Kotlin机制
• 7.1 函数定义
• 7.2 变量与属性
• 7.3 类定义

Kotlin:比 Java 做得更好相关推荐

  1. 用Ruby替代Java做rest接口的单元测试!

    Ruby早就该代替java做一些更灵活更需要变化的事情了,如果不是公司的java文化根深蒂固,我想...... 下面是我写的用来对Rest接口做的测试套件,同样适用于其他的web接口测试. 用Test ...

  2. 现在企业编程用java还是python_想转行做程序员,是学习 Java 还是 Python 更好?

    只有小孩子才做选择,我都要 我们学习的目的是为了更好的就业,那当然Java就是首先,然后在学Python 下面给你谈谈我为什么建议你先学Java JAVA的市场占有率相当高,因其广泛的应用型和不易出错 ...

  3. 应届生学C好还是学JAVA好,做什么更挣钱

    老师: 你好. 我是一名09界刚毕业工作不久的java菜鸟级程序员.本人对java水平可以混口饭了,现在可以在工作中开发一般的小项目,都是B/S的. 本人基础很烂,基本上:算法 .数据结构.计算机组成 ...

  4. 【转】应届生学C好还是学JAVA好,做什么更挣钱

    老师:        你好.        我是一名09界刚毕业工作不久的java菜鸟级程序员.本人对java水平可以混口饭了,现在可以在工作中开发一般的小项目,都是B/S的. 本人基础很烂,基本上: ...

  5. Kotlin极简教程:第10章 Kotlin与Java互操作

    Kotlin is 100% interoperable with Java™ and Android™ 在前面的章节中,我们已经学习了Kotlin的基础语法.类型系统.泛型与集合类.面向对象与函数式 ...

  6. Kotlin 与 Java有什么区别(最全最新的)

    目录 什么是Kotlin? 什么是Java? 主要区别: Kotlin 的特点 Java的特点 Kotlin 的历史 JAVA的历史 Kotlin 和 Java 的区别 Kotlin 的优势 Java ...

  7. Kotlin与Java之争

    Kotlin \\ Kotlin是一门相对比较新的JVM语言,JetBrains自2011年以来一直在积极地开发. \\ 多年来,该语言在Android社区受到的关注度越来越高,并在Google IO ...

  8. Kotlin和Java混合开发总结(基于Kotlin1.3.0版本)

    我本来是不想学习kotlin的,但是现在的形势,很多公司都在使用kotlin开发,可以说学会kotlin也是无奈之举,既然是潮流,谷歌也在大力推广,所以还是只能硬着头皮逼迫自己学一下,也能更快适应公司 ...

  9. kotlin和java语言_Kotlin VS Java – 2020年您应该学习哪种编程语言?

    kotlin和java语言 It has been several years since Kotlin came out, and it has been doing well. Since it ...

  10. java:数字转string 报空指针_超干货详解:kotlin(4) java转kotlin潜规则

    前言 以一个java老鸟的角度,如何去看 kotlin. Java源代码应该如何用Kotlin重构. 如何正确学习kotlin并且应用到实际开发中.本文将会探究. 本文分两大块,重难点和潜规则. 重难 ...

最新文章

  1. SAP CRM呼叫中心和Hybris Commerce Backoffice的轮询设计
  2. 数据结构与算法--二叉查找树实现原理
  3. win7系统如何取消自动开机
  4. mips语言实现 f(n) = f(n-1) + 2*f(n-2) + 3*f(n-3)
  5. 用SpringGraph制作拓扑图和关系图
  6. eclipse lombok插件安装_Eclipse安装virgo插件
  7. Linux:VMware Tools安装方法及共享文件夹设置方法
  8. 论文笔记_S2D.50_Kimera 具有结构规律的增量视觉-惯性三维网格生成
  9. MADlib——基于SQL的数据挖掘解决方案(7)——数据转换之其它转换
  10. 珠玉落盘【珠盘玉落】
  11. Matlab实现图像简单的几何校正
  12. java跑p_javap使用
  13. 微信小程序实现身份证识别-ocr
  14. win7电脑右键菜单选项的顺序怎么调整
  15. Python实现京东抢秒杀
  16. 兔斯基QQ表情全集GIF篇下载(到8月2日)234整理
  17. SDNUOJ 1058 人名查询 (练习map的用法)
  18. 广东计算机学会 信息学省初赛,广东CCF NOIP2019信息学竞赛复赛提高组一等奖获奖名单...
  19. php微信支付判断是否成功,微信支付,大家是通过什么来进行判断支付成功的
  20. QQ新功能,申请专属QQ号,申请QID教程

热门文章

  1. 第一章 计算机网络参考模型
  2. win10 升级导致找不到SQL Server配置管理器
  3. LSTMs和递归神经网络的初学者指南
  4. Java实现二进制转换16进制(可以去掉空格)
  5. 技术开发人员,一些需要注意的权利和义务
  6. 一些mootools的资源
  7. SuSE 10操作系统中设置系统时间的方法
  8. 使用JsonCpp编写JSON封装程序的方法
  9. 20、自动装配-@Autowired@Qualifier@Primary
  10. Python入门-函数