- 动态语言和静态语言
- 动态语言即运行前不需要编译,在运行的时候边解释边运行。
- 静态编译语言是在运行前需要编译,编译完成后可以在虚拟机中运行
- java变种编程语言中,kotlin是静态编译,groovy和jruby是静态编译语言。
- 动态编译优缺点:
- 定义属性灵活多数不需要直接指定属性类型,也不需要指定返回属性的类型,在运行的时候才去解析属性类型。
- 性能低+错误多+代码可维护性低
- 静态编译的优缺点
- 和动态相反,静态编译的语言需要在编译阶段确定属性的类型,java是直接指定,kotlin不需要指定但是在编译阶段根据赋值进行类型反推和类型固定。
- 优点:
- 性能高,编译阶段将代码编译成为虚拟机可以执行的字节码,无需重新翻译
- 可靠性高,编译阶段进行了语法校验,出问题的可能性低
- 出错误的可能性低,如上编译校验
- 当前编程工具的支持,多数编译无需研发人员手动编译在项目运行前多数ide会自动编译。
- 函数式编程和面向对象编程
- 暂时可以先参考文章,目前还不能深入理解函数编程,后续深入学习以后再回来补充。
- kotlin是什么?特点是什么?
- kotlin是一种针对java平台新的编程语言,可以看作是java的变种编程语言,具有简洁,安全,务实的特点,且可以和java互相操作(转换,调用,继承等)
- kotlin使用场景广,使用java的场景基本都可以替换成为kotlin,比如服务器,移动前端,js等
- kotlin是静态编译语言,运行前需要编译
- kotlin支持面向对象编程的同时支持函数式编程包括lambda函数。
- 简洁:
* 相对于java代码,kotlin代码更简洁比如数据类的声明java需要声明类,构造方法,属性并提供属性的set和get,但是在kotlin语法中单行代码即可以实现。声明类的同时data标注,在类声明中中声明属性和构造方法。
* kotlin在支持java方法库的同时提供了更多的方法库,很多方法对java的一些基本逻辑进行封装,在使用的时候更简单直接。
* kotlin语法上比java灵活更多体现在代码编写上,kotlin是静态编译语言在编译阶段也要做语法检查的,所以kotlin是相对灵活并不是由着开发人员胡定义。 - 务实:
* kotlin是站在巨人肩膀上研发的,结合了java及其其他许多语言的优势包括当前许多研发场景中具体问题去设计研发的
* kotlin提供了当前主流研发工具的插件,且工具插件是和语言一块研发的。
- 安全:
* kotlin是基于jvm虚拟机的,所以支持java的安全机制。
* kotlin通过类型推断机制对参数的空指针在编译阶段就可以发现并报异常给研发人员,java只能在运行的时候。
* 同样kotlin可以在编译阶段避免classcastexception异常,且校验的同时不需要像java似的重新赋值重新调用,直接使用即可。 - 互操作性:
- kotlin可以调用当前java的任意一个库,java的类,方法,属性,可以继承java类,实现java的方法。
- java也可以调用kotlin的代码包括类和方法,可以继承kotlin的类。
- 研发工具可以混编java和kotlin文件,支持java和kotlin的文件转换等。
- kotlin是一种针对java平台新的编程语言,可以看作是java的变种编程语言,具有简洁,安全,务实的特点,且可以和java互相操作(转换,调用,继承等)
- kotlin的使用场景?
- 基于java的服务端研发
- 移动前端的研发
- 编译成为js在浏览器中运行
- 和java相比kotlin有哪些优势?
- 在java基础方法库上又进行了方法封装提供了更是用的api被调用
- 相对于java代码kotlin代码更简洁,语法比java更灵活一些
- 相对与java,kotlin在编译阶段处理了空指针,类型转换等异常
- kotlin和java可以互相操作,包括转换,调用等。
-
kotlin的编译过程和运行时?
kotlin文件编译过程 - as开发kotlin的技巧汇总
- as查看kotlin编译后的java文件的方式为:
- 选择要查看的kotlin文件
- 点击as的tools文件夹下的kotlin的工具:show(显示kotlin的字节码)
- 字节码文件有一个反编译按钮,点击会新打开一个文件显示当前kotlin编译后的java文件。
- as查看kotlin编译后的java文件的方式为:
参考文章:
函数式编程
Kotlin的学习文档
网友评论