微信号:gh_acee3e9666da

介绍:IT出版旗舰品牌,实时发布最新鲜的IT热点图书资讯,分享优质图书内容,打造与万千精英读者良好的互动平台.

Kotlin:比 Java 做得更好

2018-03-06 21:52 博文视点Broadview


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

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


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


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


但是后来随着各种黑科技的引入,JVM的性能得到长足改进和飞速提升,早已今非昔比,在部分场景下甚至比C/C++的性能还要高,例如:


  • JIT即时编译

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

  • 垃圾回收算法的改进

  • JDK高性能类库


(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 类定义


点击阅读原文获取详情



 

博文视点

您阅读的专业智库

喜欢请分享至朋友圈

了解更多本书详情请点击阅读原文

长按二维码轻松关注

点击阅读原文,了解详情!

 
博文视点Broadview 更多文章 猫工智能:卷积神经网络层的实现 书单丨成为全栈工程师的5种硬实力 今日好书丨《Spring MVC+MyBatis开发从入门到项目实战》 了解MyBatis——让开发更简捷与规范 今日好书丨《人脸识别原理与实战:以MATLAB为工具》
猜您喜欢 Etcd 架构与实现解析 15 个开源的顶级人工智能工具 做设计的小男孩 你看那个让“大哥”服气的华住,好像一个连续创业者 Android 自定义View属性相关细节