Kotlin的参考资料
参考资料和站点
https://github.com/JetBrains/kotlin/releases/tag/v1.0.6 下载compiler,如果IDEA已经安装了,不需要安装即可直接使用
http://kotlinlang.org/docs/reference/
http://kotlinlang.org/docs/kotlin-docs.pdf 这个参考很全面
http://kotlinlang.org/api/latest/jvm/stdlib/index.html 标准库
http://kotlinlang.org/docs/reference/idioms.html 惯用法
https://github.com/Kotlin/kotlin-koans 例子练习
https://blog.jetbrains.com/kotlin 官方blog
https://blog.jetbrains.com/kotlin/category/releases/ 发布历史
https://github.com/JetBrains/kotlin-examples 例子
https://github.com/JetBrains/kotlin-benchmarks 和JAVA的性能比较
http://www.println.net/ 国内的短视频
Kotlin Benchmarks
https://github.com/JetBrains/kotlin-benchmarks
报告结果拷贝到本机的IIS上,并能够获取Google等Javascript CDN,才可看到报告【这里有个很好的性能测试工具使用参考JMH org.openjdk.jmh】
Comparison with Baseline
For multicolumn search separate subqueries with semicolon: "IntListBenchmark;manual;1000"
Difference is current score minus baseline score. Positive values are regressions, negative are gains.
Switch to comparison with Java
Search:
ClassArrayBenchmark.copy |
10 |
0.05 |
us/op |
± 2.60% (0.00) |
||
ClassArrayBenchmark.copy |
1000 |
5.92 |
us/op |
± 0.53% (0.03) |
-0.26 |
-4.23% |
ClassArrayBenchmark.copy |
100000 |
634.74 |
us/op |
± 7.90% (50.16) |
||
ClassArrayBenchmark.copyManual |
10 |
0.06 |
us/op |
± 2.92% (0.00) |
||
ClassArrayBenchmark.copyManual |
1000 |
8.03 |
us/op |
± 1.82% (0.15) |
+0.16 |
+2.06% |
ClassArrayBenchmark.copyManual |
100000 |
802.06 |
us/op |
± 0.71% (5.70) |
||
ClassArrayBenchmark.countFiltered |
10 |
0.40 |
us/op |
± 1.12% (0.00) |
||
ClassArrayBenchmark.countFiltered |
1000 |
46.94 |
us/op |
± 3.07% (1.44) |
||
ClassArrayBenchmark.countFiltered |
100000 |
5670.62 |
us/op |
± 3.57% (202.40) |
||
ClassArrayBenchmark.countFilteredLocal |
10 |
0.39 |
us/op |
± 0.84% (0.00) |
-0.01 |
-2.21% |
ClassArrayBenchmark.countFilteredLocal |
1000 |
46.44 |
us/op |
± 1.99% (0.92) |
||
ClassArrayBenchmark.countFilteredLocal |
100000 |
5599.66 |
us/op |
± 1.20% (67.01) |
-125.05 |
-2.18% |
ClassArrayBenchmark.countFilteredManual |
10 |
0.39 |
us/op |
± 1.93% (0.01) |
||
ClassArrayBenchmark.countFilteredManual |
1000 |
46.28 |
us/op |
± 1.07% (0.50) |
||
ClassArrayBenchmark.countFilteredManual |
100000 |
5638.10 |
us/op |
± 1.20% (67.56) |
Kotlin Compiler
Jetbrains Idea下的默认kotlin安装
独立的compiler包下载解压的结果
E:\tool\kotlin\kotlinc 的目录
[.] [..] [bin] build.txt [lib] [license]
1 个文件 5 字节
E:\tool\kotlin\kotlinc\bin 的目录
[.] [..] kotlin kotlin.bat kotlinc kotlinc-js kotlinc-js.bat kotlinc-jvm
kotlinc-jvm.bat kotlinc.bat
8 个文件 7,900 字节
E:\tool\kotlin\kotlinc\lib 的目录
[.] [..] allopen-compiler-plugin.jar android-extensions-compiler.jar
kotlin-annotation-processing.jar kotlin-ant.jar kotlin-build-common-test.jar kotlin-build-common.jar
kotlin-compiler.jar kotlin-daemon-client.jar kotlin-jslib-sources.jar kotlin-jslib.jar
kotlin-preloader.jar kotlin-reflect.jar kotlin-runner.jar kotlin-runtime-sources.jar
kotlin-runtime.jar kotlin-test.jar noarg-compiler-plugin.jar
17 个文件 25,843,381 字节
E:\tool\kotlin\kotlinc\license 的目录
[.] [..] LICENSE.txt NOTICE.txt [third_party]
2 个文件 1,083 字节
E:\tool\kotlin\kotlinc\license\third_party 的目录
[.] [..] args4j_LICENSE.txt asm_license.txt closure-compiler_LICENSE.txt
dart_LICENSE.txt jshashtable_license.txt json_LICENSE.txt maven_LICENSE.txt pcollections_LICENSE.txt
prototype_license.txt rhino_LICENSE.txt
10 个文件 78,237 字节
2者是一样的,因此如果安装了idea的话,kotlin的环境默认就是可用的
if "%_KOTLIN_COMPILER%"=="" set _KOTLIN_COMPILER=org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
if not "%JAVA_HOME%"=="" (
if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe"
)
if "%_JAVACMD%"=="" set _JAVACMD=java
rem We use the value of the JAVA_OPTS environment variable if defined
set _JAVA_OPTS=-Xmx256M -Xms32M
if not "%_KOTLIN_RUNNER%"=="" (
"%_JAVACMD%" %_JAVA_OPTS% "-Dkotlin.home=%_KOTLIN_HOME%" -cp "%_KOTLIN_HOME%\lib\kotlin-runner.jar" ^
org.jetbrains.kotlin.runner.Main %*
) else (
"%_JAVACMD%" %_JAVA_OPTS% -noverify -cp "%_KOTLIN_HOME%\lib\kotlin-preloader.jar" ^
org.jetbrains.kotlin.preloading.Preloader -cp "%_KOTLIN_HOME%\lib\kotlin-compiler.jar" ^
%_KOTLIN_COMPILER% %*
)
直接从命令行运行kotlin,最终的结果是转换成JAVA字节码的
kotlinc HelloWorld.kt -include-runtime -d HelloWorld.jar
$ java -jar HelloWorld.jar
kotlinc HelloWorld.kt -d HelloWorld.jar
java -cp $KOTLIN_HOME/lib/kotlin-runtime.jar:HelloWorld.jar HelloWorldKt
脚本方式执行
$ kotlinc-jvm -cp joda-time-2.9.4/joda-time-2.9.4.jar
Welcome to Kotlin version 1.1-M04 (JRE 1.8.0_66-internal-b17)
Type :help for help, :quit for quit
>>> import org.joda.time.DateTime
>>> DateTime.now()
kotlin-docs
http://kotlinlang.org/docs/kotlin-docs.pdf 152页,这个参考比较全
Kotlin For Android
《Kotlin for android Developers》 中文翻译 关于在android下的开发,使用kotlin可以大幅度的简化代码的编写
Kotlin的参考资料的更多相关文章
- 用Kotlin语言重新编写Plaid APP:经验教训(II)
原文标题:Converting Plaid to Kotlin: Lessons learned (Part 2) 原文链接:http://antonioleiva.com/plaid-kotlin- ...
- Kotlin(一)
Kotlin(一) 写在前面: 参考资料: <Kotlin官方文档><Kotlin for Android 开源中文版> 准备工作: Android-Studio2.x:添加K ...
- Kotlin 语言下设计模式的不同实现
偶然在 Github 上看到 dbacinski 写的 Kotlin 语言下设计模式的不同实现(这里的不同是相对于 Java 语言的),有些实现非常好,但是有些实现的例子不是很赞同.所以自己写了 Ko ...
- Kotlin学习入门笔记
参考资料 官网:https://kotlinlang.org/ 官方文档:https://kotlinlang.org/docs/reference/ Kotlin 源码:https://github ...
- 【从零开始撸一个App】Kotlin
工欲善其事必先利其器.像我们从零开始撸一个App的话,选择最合适的语言是首要任务.如果你跟我一样对Java蹒跚的步态和僵硬的语法颇感无奈,那么Kotlin在很大程度上不会令你失望.虽然为了符合JVM规 ...
- 深入分析 Java、Kotlin、Go 的线程和协程
前言 协程是什么 协程的好处 进程 进程是什么 进程组成 进程特征 线程 线程是什么 线程组成 任务调度 进程与线程的区别 线程的实现模型 一对一模型 多对一模型 多对多模型 线程的"并发& ...
- Android Kotlin Jetpack Compose UI框架 完全解析
前言 Q1的时候公司列了个培训计划,部分人作为讲师要上报培训课题.那时候刚从好几个Android项目里抽离出来,正好看到Jetpack发布了新玩意儿--Compose,我被它的快速实时打包给吸引住了, ...
- Kotlin协程解析系列(上):协程调度与挂起
vivo 互联网客户端团队- Ruan Wen 本文是Kotlin协程解析系列文章的开篇,主要介绍Kotlin协程的创建.协程调度与协程挂起相关的内容 一.协程引入 Kotlin 中引入 Corout ...
- ViewBinding 与 Kotlin 委托双剑合璧
请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · Android-NoteBook 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭 ...
随机推荐
- mysql 开发基础系列5 运算符
1. 算术运算符 2.比较运算符 注意NULL值不能用= 运算符 SELECT * FROM t WHERE c =NULL; -- 需要改成 SELECT * FROM t WHERE c IS N ...
- threadid=1: thread exiting with uncaught exception (group=0x40fca9a8)的问题
今天在项目开发中碰到了这样一个问题: 项目在Nexus5[Android 6.0]上面运行正常,在华为荣耀6[Android 4.4.2]上面运行到指定activity崩溃(不是应用启动崩溃):然后后 ...
- [NewLife.XCode]扩展属性(替代多表关联Join提升性能)
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netstandard,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示 ...
- Linux下FTP虚拟账号环境部署总结
vsftp的用户有三种类型:匿名用户.系统用户.虚拟用户.1)匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous.2)本地用户登录:使用系统用户登录,在/etc/passwd中 ...
- JS 事件循环机制 - 任务队列、web API、JS主线程的相互协同
一.JS单线程.异步.同步概念 从上一篇说明vue nextTick的文章中,多次出现“事件循环”这个名词,简单说明了事件循环的步骤,以便理解nextTick的运行时机,这篇文章将更为详细的分析下事件 ...
- Go基础系列:WaitGroup用法说明
正常情况下,新激活的goroutine的结束过程是不可控制的,唯一可以保证终止goroutine的行为是main goroutine的终止.也就是说,我们并不知道哪个goroutine什么时候结束. ...
- maven安装、配置及创建工程
准备工作 java开发环境(JDK) maven下载地址:http://maven.apache.org/release-notes-all.html 一.安装 安装maven超级简单,总共分三步: ...
- 创作型---原型模式(C# ICloneable接口的实现)
在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,可以通过对原来对象拷贝一份来完成创建,这样在内存中不需要创建多个相同的类实例,从而减少内存的消耗和达到类实例的 ...
- 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法(第二次修改)
1.线程栈 window的一个进程加载clr.该进程可能含有多个线程,线程创建的时候会分配1MB的栈空间. 如图: void Method() { string name="zhangsan ...
- SpringBoot简介
Spring Boot,简单讲就是牺牲项目的自由度来减少配置的复杂度(“契约式编程”思想,SpringBoot自动配置方案的指导思想).约定一套规则,把这些框架都自动配置集成好,从而达到“开箱即用”. ...