谷歌钦定的编程语言Kotlin大揭秘
第一时间关注程序猿(媛)身边的故事
谷歌钦定的编程语言Kotlin大揭秘
语法+高级特性+实现原理;移动开发者升职加薪宝典!
谷歌作为世界级的科技公司巨头,强悍的技术研发与创新能力使其一直是业界的楷模,其在各个领域的每一次创新,都能够引领一个新的时代!
Kotlin便是其最新的一个创新力作。
这几年互联网领域先后经历了几次大革命,包括物联网、大数据、云计算等,如今则处于人工智能的火热时代。在这个时代,人们极其努力地开启机器智慧,在大数据样本下,通过算法,让机器进行一定的模糊识别,从而解决很多传统办法解决不了的棘手问题。伴随其中的一个重要的编程语言便是Java,因为Java的口号是“write once, run anywhere”(即:一次编写,到处运行)。Java由于其强大的跨平台(主要指操作系统)能力,而备受各种中间件组件开发人员的钟爱。而Java之所以能够跨平台,主要归功于JVM虚拟机。
JVM虚拟机内部针对不同的底层平台进行了通用性抽象,从而可以让Java这种上层编程语言对外提供统一的API,例如在进行多线程开发时,开发者无须在不同的平台上引入不同的类库,而在开发界面视图时,Java也提供统一的界面组件类库。平台的差异化工作都交给底层的JVM虚拟机进行适配处理,从而让高层业务开发人员可以专心进行业务设计与逻辑实现,不用再关心底层各种纷繁复杂的硬件和平台特性。开发人员唯一需要感知的平台差异性仅仅在于需要在不同的平台上下载平台相关的JVM软件而已。
在Java刚推出来的几年里,由于JVM的性能低下,导致不太被认可。但是后来随着各种黑科技的引入,例如JIT即时编译、基于Java字节码的栈顶缓存技术、垃圾回收算法的改进、JDK高性能类库(例如并发包、NIO等)的发布,等等,JVM的性能得到长足改进和飞速提升,早已今非昔比,在部分场景下甚至比C/C++的性能还要高,例如运行期所进行的方法与线程级的逃逸分析以及C1、C2分级动态编译等技术。人们再也没有任何理由拒绝使用Java,所以Java得到了飞速发展,多年来稳居服务端应用编程语言使用率第一的宝座。
同时,JVM是一个开源的产品,在技术体系上也是开放的,当然,并不是无条件的开放,而是在统一的技术规范下,不对实现做任何约束。因此各种基于JVM规范的编程语言也得以被发明出来,例如Scala、Clojure、Groovy等,甚至PHP、Ruby等程序也可以转换到JVM规范。不管高级编程语言是Java还是Scala,只要能够被翻译成Java字节码,JVM都能够执行,这便是技术规范的开放性。
虽然Java与JVM在最近这些年取得了巨大的成功,但是也并非没有缺点。例如Java是一种严格的面向对象设计的编程语言,一切编程要素都被严格编写在Java类型内部,你不可能像C语言那样,直接在源程序中定义一个函数。这种完全的面向对象设计的特性也给Java自己造成了很多不便,例如无法对底层类库进行扩展,除非你去继承并实现一个新的类型。
同时,Java编程语言的语法太过于严格和死板,不像很多其他编程语言那样,有不少让人心动的功能特性,这种死板和严格往往会造成工作效率的低下。
于是,Kotlin诞生了。
640?wx_fmt=www.dasheng178.com jpeg
《揭秘www.dashuj5.com Kotlin编程原理》
主要内容
Kotlin被谷歌宣布为官方语言以来,引发了极大的关注,并成为学习的热点。
本书主要从封装、继承和多态三个方面全面介绍了Kotlin面向对象设计的语法特性及其背后实现方式。全书可分为基础篇、实战篇与提高篇,内容上层层深入,揭示了Kotlin对属性包装、多种形态的函数定义方式、以及各种特殊类型的定义等方面的背后实现机制。
作者简介
封亚飞,阿里巴巴技术工程师,关注Java,现任职于菜鸟网络,负责中间件开发。著有《揭秘Java虚拟机:JVM设计原理与实现》一书,倍受读者好评。
编辑推荐
Kotlin的底层是基于Java虚拟机(www.tygj178.com JVM)的,而本书的作者恰恰是口碑畅销好书《揭秘Java虚拟机:JVM设计原理与实现》的作者,他对Kotlin语言的透彻理解和分析,以浅显易懂的形式完整地浓缩在本书中。
因此,在本书中,读者不仅能清晰地了解Kotlin的语法、高级特性,还能真正地掌握Kotlin背后的实现机制和设计哲学,形成对Kotlin语言既直观、又深刻的认识——在此基础上,读者能准确、快速地上手实践,大大提升自己的移动开发能力。
例如,Kotlin在不违反JVM规范的基础上,融合了众多编程语言的特性:它打破了Java封闭的彻底性,让开发者可以体验“面向过程”编程的感觉;它充分吸收了其他编辑语言中的好特性,提供了诸如VB语言中的“with语法”www.abo1ge.com……此外,它提供了这样一种能力,不用修改原有类,也无须通过继承的方式,就能为某个类增加新的行为,等等。
Kotlin的这些特性和实现机制,可以帮助开发者扫清开发道路上的一些障碍,让开发变得更加简单!《揭秘Kotlin编程原理》是一本值得拥有,能切实帮助读者加薪提职的好书!
本书写给谁看
《揭秘Kotlin编程原理》适合各种编程语言的开发者阅读,不管你是Java开发、Kotlin开发、Android开发,还是PHP、JSP,或者是C、C++、VB、Go语言的爱好者,都可以翻开阅读。因为里面总会有让你感到熟悉的一些语言特性,当你看到Kotlin中也有这样一种特性的时候,你一定会会心一笑!
谷歌钦定的编程语言Kotlin大揭秘的更多相关文章
- 【腾讯Bugly干货分享】iOS黑客技术大揭秘
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5791da152168f2690e72daa4 “8小时内拼工作,8小时外拼成长 ...
- 诗人般的机器学习,ML工作原理大揭秘
诗人般的机器学习,ML工作原理大揭秘 https://mp.weixin.qq.com/s/7N96aPAM_M6t0rV0yMLKbg 选自arXiv 作者:Cassie Kozyrkov 机器之心 ...
- Spark Streaming揭秘 Day3-运行基石(JobScheduler)大揭秘
Spark Streaming揭秘 Day3 运行基石(JobScheduler)大揭秘 引子 作为一个非常强大框架,Spark Streaming兼具了流处理和批处理的特点.还记得第一天的谜团么,众 ...
- 【高德地图API】汇润做爱地图技术大揭秘
原文:[高德地图API]汇润做爱地图技术大揭秘 昨日收到了高德地图微信公众号的消息推送,说有[一大波免费情趣用品正在袭来],点进去看了一眼,说一个电商公司(估计是卖情趣用品的)用高德云图制作了一张可以 ...
- 【高德地图API】从零开始学高德JS API(七)——定位方式大揭秘
原文:[高德地图API]从零开始学高德JS API(七)——定位方式大揭秘 摘要:关于定位,分为GPS定位和网络定位2种.GPS定位,精度较高,可达到10米,但室内不可用,且超级费电.网络定位,分为w ...
- 编码(1)学点编码知识又不会死:Unicode的流言终结者和编码大揭秘
学点编码知识又不会死:Unicode的流言终结者和编码大揭秘 http://www.freebuf.com/articles/web/25623.html 如果你是一个生活在2003年的程序员,却不了 ...
- 2018谷歌I/O开发者大会8大看点汇总 新品有哪些
2018谷歌I/O开发者大会8大看点汇总 新品有哪些美国科技媒体The Verge近日撰文,列举了在即将召开的2018年谷歌I/O开发者大会上的8大看点,包括Android P.人工智能等等. 以下为 ...
- [百家号]看完再也不会被坑!笔记本接口大揭秘:HDMI、DP、雷电
看完再也不会被坑!笔记本接口大揭秘:HDMI.DP.雷电 https://baijiahao.baidu.com/s?id=1577309281431438678&wfr=spider& ...
- Web安全大揭秘
web安全大揭秘,通常会有那些web安全问题呢? 1,xss 2,sql注入 3,ddos攻击
随机推荐
- Kickstart Round H 2018
打了ks好久都没有更新 诶,自己的粗心真的是没救了,A题大数据都能错 A #include <iostream> #include <cstdio> #include < ...
- OpenGL(2)-窗口
写在前面 通过本节,你可以毫不费力的--->创建一个窗口 OpenGL中窗口,即载体 导入头文件 #include <glad/glad.h> #include <GLFW/g ...
- Django中的Project和App的区别
Django是一个非常流行的用python编写的Web框架,在使用Django之前,我们需要了解一些基本的概念,这样可以在使用Django的时候对其有一个更加深入的把握.本文主要介绍Django中两个 ...
- Mac环境搭建以太坊私有链
原文地址: 石匠的blog 为了测试以太坊智能合约,最方便的是在本地搭建一个以太坊私有链.在mac上搭建环境主要需要以下步骤. geth安装 geth是go-ethereum的简写,是一个用go语言编 ...
- golang slice使用不慎导致的问题
原文链接 : http://www.bugclosed.com/post/16 背景 go语言中切片slice是方便且好用的强大数据结构,但是使用的时候需要注意,不然容易出问题,最近因为遇到了一个sl ...
- 基于NABCD评论作业-王者荣耀交流协会PSP DAILY
一.根据(不限于)NABCD评论作品的选题 N(Need,需求):在我知道PSP DAILY这款软件的时候,就认为这款软件对于学习软件工程课的学生来说有很大的需要.对于需求来说,软件工程课程中的学 ...
- 第二阶段Sprint冲刺会议10
进展:把所有功能整合到主界面,结果导致视频只能播放不能录制,闹钟加不进去,导致闹钟功能差点不能用,放弃整合.
- 2018软工实践—Beta冲刺(2)
队名 火箭少男100 组长博客 林燊大哥 作业博客 Beta 冲鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调组内工作 修改前端界面 展示GitHub当日代码/文档签入记录(组内 ...
- 作业1.3——Android平台的开发环境的发展演变
一开始的打算是在eclipse的基础上搭建Android平台,在ADT.SDK上兜兜转转,听过一些前车之鉴后,还是选择了Android studio.因为之前安装过eclipse,就省去了JDK下载和 ...
- mvc拦截请求IHttpModule
代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syste ...