谷歌钦定的编程语言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攻击
随机推荐
- 客户端传入数据的校验-RestController进阶
使用Hibernate Validator进行数据校验 Bean Validation注解(需要加入相关依赖,在SpringBoot中可以直接使用,SpringBoot会帮我们直接加入) @Null ...
- 009--EXPLAIN用法和结果分析
在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有 ...
- Docker--Dockerfile引用及指令集的功能用法
Dockerfile引用的官网文档:https://docs.docker.com/engine/reference/builder/ 编写Dockerfiles的最佳实践的官网文档:https:// ...
- Netty源码分析第6章(解码器)---->第2节: 固定长度解码器
Netty源码分析第六章: 解码器 第二节: 固定长度解码器 上一小节我们了解到, 解码器需要继承ByteToMessageDecoder, 并重写decode方法, 将解析出来的对象放入集合中集合, ...
- GO/GOLANG程序员笔记大全
---------------------------------------- go 并发 // 注解:go 语言天生为程序并发所设计,可以说go的强项就是在cpu并发上的处理. // go 语言层 ...
- Linux系统下安装jdk1.8
JDK安装分为两种方式 一种是解压tar.gz配置安装, 一种是rpm安装,我这里是tar.gz安装方式 一.首先在oracle官方网下载jdk,网址如下:http://www.oracle.com ...
- 机器装多个版本php,并安装redis插件报错【已解决】
机器原版本php5.5.3 适应新的框架安装了7.1.12 期间遇到的小问题就是安装 redis插件的时候,总报错,报错如下: Starting php-fpm [02-Jan-2019 10:15: ...
- cnblogs.com用户体验
一.是否提供了良好的体验给用户(同时提供价值)? 首先我觉得博客园给我们这些用户提供了良好的用户体验,博客园提供了一个纯净的技术交流空间,在这里我们可以找到几乎所有与IT技术有关的博文,而且可以在这里 ...
- The user survey(用户调查)
在周末,我们找了一些人来进行了一个调查,鉴于选择困难,我们只找到了几个真正的小学生,没有找到家长,其余那些都是找大学生来做调查的,我们和他们说,让他们把自己的立场看成是小学生或家长.下面是我们整理出来 ...
- PMS—团队展示
点我查看作业原题 [队名] PMS(一群pm) [拟做的团队项目描述] 基于监控场景的视频摘要与人车检测跟踪系统 A system, under monitor scene, for video su ...