谷歌钦定的编程语言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攻击
随机推荐
- OpenGL 笔记<1> 固定管线实例 + 双缓存测试实例
欲以此分类来记录opengl的学习历程,此为第一篇,所以先来一个固定管线的例子,以及对双缓存的测试. 一.配置环境 写之前,先进行配置,然后再讲内容. 注:第一部分涉及的代码均忽略. [环境配置传送门 ...
- grok正则
USERNAME [a-zA-Z0-9._-]+ USER %{USERNAME} INT (?:[+-]?(?:[0-9]+)) BASE10NUM (?<![0-9.+-])(?>[+ ...
- windows 平台安装 ffmpeg
一.从https://ffmpeg.zeranoe.com/builds/中下载ffmpeg的static版本: 二.将下载下来的“ffmpeg-4.0.2-win64-static.zip”解压到任 ...
- 基于openvswitch+Docker构建SDN网络测试环境 (使用ovs-docker进行构建)
这是一篇之前写的笔记,主要记录了使用openvswitch + Docker 等进行一个小型的SDN网络搭建的操作步骤.由于 之前临时有其他任务,耽搁了一下,最近开始重新整理,并计划开发一个简单的Py ...
- 高可用OpenStack(Queen版)集群-5.Glance集群
参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...
- 为什么HashMap桶(链表)的长度超过8会转换成红黑树?
百度了一下,感觉能说清楚的并不多,所以在此记录一下. 首先说一说转换为红黑树的必要性: 红黑树的插入.删除和遍历的最坏时间复杂度都是log(n), 因此,意外的情况或者恶意使用下导致hashCode( ...
- Scrum立会报告+燃尽图(十二月九日总第四十次):视频剪辑与用户反馈
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2484 项目地址:https://git.coding.net/zhang ...
- Java基础第一节.Java简介
第一节 Java简介 Java是一个由Sun公司开发而成的新一代的编程语言. Java语言是对软件开发有深远影响.应用前景广泛.具有丰富的类库.继承了C++的传统(摈弃了某些不足)广泛使用的网络编程语 ...
- Teamwork(The first day of the team)
今天是第一次的小组讨论,我们主要是分析了我们的大概方向及大概功能及相应的分工.其实具体也还没有确定下来,只是大概的说了一下,确定了master为杨灵超同学.下面用图片记录我们这一天的工作内容(杨灵超V ...
- Alpha 冲刺报告(4/10)
Alpha 冲刺报告(4/10) 队名:洛基小队 峻雄(组长) 已完成:继续行动脚本的编写 明日计划:尽量完成角色的移动 剩余任务:物品背包交互代码 困难:具体编码进展比较缓慢 ----------- ...