Kotlin学习探索-前言
一些故事:
说到Kotlin,首先不提不提到耳熟能详的Java。我们知道Java这门强类型语言的应用范围实在是太广了。JavaSe、JavaMe、JavaEE开发、Android开发、大数据开发(如比较出名的Hadoop,Hadoop是用Java语言编写)、Java也可以用做游戏开发,Java经典游戏代表作有:《我的世界》等,连跟Java没什么关系的JavaScript这一脚本语言,在命名之初都要加上Java的前缀,以此来提高较好的口碑(因为有Java的字样,会让人误以为跟Java有什么关系)。当然,笔者和很多开发者一样都是Java的超级忠实fans。
Java的发展史也充满了很多故事,最早诞生于Sun公司、设计之初的目的是因为C太复杂,需要更加轻便可读性的语言来顺应时代的发展(虽然Java也不是那么轻便)。发展经过十多年、历经多个版本迭代更新完善、然后于09年Sun公司被甲骨文完全收购。
我们知道Android开发用的建模语言就是Java,Android系统的后台是全球第一技术公司-谷歌。甲骨文与谷歌因基于Android平台使用Java的知识版权引起旷日持久的官司奈何最终以谷歌的败诉而告终,谷歌的败诉直接导致的是甲骨文要求谷歌对其进行天价赔偿88亿美元,赔偿理由是因为Android是全球第一移动端操作系统,谷歌于此获利良多。其实官司的本质无非就是利益的争夺,谷歌于此赔偿要求,开始积极寻找新的建模语言去替代Android平台上的Java编程。最终,谷歌决定,开发者应该用Kotlin语言去进行Android开发,来替换传统的Java建模语言。于此,Kotlin正式成为谷歌管宣Android开发的第一官方语言。
什么是Kotlin?
- Kotlin 是一个用于现代多平台应用的静态编程语言 ,由 JetBrains 公司开发。(JetBrains 公司有界内非常出名的产品、如:IDEA、WebStorm、Goland、PyCharm等等。而Android Studio这一工具也是基于IDEA来进行参考研发的)
- Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行
Kotlin的设计目标?
- 创建一种兼容Java的语言
- 让它比Java更安全,能够静态检测常见的陷阱。如:对空指针的处理提出了新的解决思路。
- 让Kotlin比Java更简洁,通过支持variable type inference,extension functions等等。
- 比最成熟的竞争对手Scala语言更加简单、更容易操作。
- Android编程......
Kotlin需要掌握知识点?
- A:本系列博客正是对Kotlin基础进行全面学习。如:Kotlin的基础语法、数据类型、条件\循环控制、类与对象、继承、接口、泛型、枚举、委托等知识点进行全部分享。
- B:Kotlin的高阶使用方法及特性掌握也会在本系列博客进行更新
Kotlin学习成果检验?
计划在学习完Kotlin基础之后,如时间允许,会开源一套Kotlin版本的SDK及一个Kotlin版本的APP来检验学习成果。
最后:
笔者作为开发岗上很普通的一枚技术,所做的事情、付出的努力、学习上的辛酸与困难还是那8个字:不忘初心、砥砺前行。毕竟人性都是百分之80的懒惰散漫跟百分之20的坚毅进取在互相摩擦,最后,还是希望自己能够坚持,加油!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spark Parquet file split
title: Spark Parquet file splitdate: 2018-10-22 20:14:43 tags: Spark 在实际使用 spark + parquet 的时候, 遇到一个问题:我们只有一个 parquet 文件, 但是有四个 tasks, 但是只有一个 task 处理了全部的数据.这就牵涉到对于 parquet, spark 是如何来进行切分 partitions, 以及每个 partition 要处理哪部分数据 先说结论, spark 中, parquet 是 splitable 的, 代码见ParquetFileFormat#isSplitable. 那会不会把数据切碎? 答案是不会, 因为是以 row group 为最小单位切分的, 这也导致一些 partitions 会没有数据. 处理流程 1.根据 parquet 按文件大小切块生成 partitions: 在 FileSourceScanExec#createNonBucketedReadRDD 中, 如果文件是 splitable 的 , 按照 maxSplitBytes 把文件切分, 最后生...
- 下一篇
HBase2.0重新定义小对象实时存取
小对象,特别指1K~10MB范围的数据,比如图片,短视频,文档等。这些数据广泛的存在于人工智能,医疗,教育,生活分享,电子商务等领域。目前对象存储典型技术方案为AWS的S3以及阿里云的OSS,还有一些基于MySQL+对象存储的二次开发方案。这些方案解决了对象存储的可靠性和扩展性问题,但是存在一些缺陷:两个方案都存在访问延时问题,因为访问数据至少要2次查询,一次索引访问+一次数据访问,特别的当用户想查询一组有关联数据的时候,需要N次调用;对象存储很难将对象和一些维度、指标数据混合存储,而这些是查询时过滤数据的条件,导致对象存储的方案在检索能力上不足;MySQL+对象存储方案将维度、指标数据存储在Mysql解决了检索能力,但是引入了数据不一致问题,实现主备双活也非常困难,造成可用性上的缺陷,同时这个方案对用户代码侵入大,对运维也不友好
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境