Kotlin 为什么可以和Java混合开发

学!

本文:https://blog.csdn.net/CrazyApes/article/details/123414525

[toc]

前言

闲来无聊,和一个朋友聊天。
他突然问我:你知道Kotlin和Java为啥可以混合开发相互调用么?
我:???!!!
我:我还真没怎么想过,为啥呀?
他:你猜~
我:呵呵哒。
他:[摊手] 我要是知道就不问你了。。。
我:哈哈,得了,一块探索吧。

kotlin.png

Kotlin

Kotlin 到底是什么?
它本身就是一种针对Java平台的新编程语言。
Kotlin简洁、安全、务实,并且专注于与Java代码的互操作性。
它几乎可以用在现在Java使用的任何地方:服务器端开发、Android应用,等等。
Kotlin可以很好的和所有现存的Java库和框架一起工作,而且性能水平和Java旗鼓相当。
--- 引自《Kotlin in Action》

我们知道Kotlin和Java同属静态类型的编程语言,而且同样都是基于JVM的静态编程语言,所以很多东西都是在编译期确定的。他们最终都会被对应编译器编译成JVM执行的字节码文件。
从最终产物的角度讲,他们其实是一样的,更别提Kotlin本身就是针对Java平台的一种新编程语言。而互操作性,就得看编译器都做了哪些更多的工作了。

互操作性

关于互操作性
与其它一些JVM语言不同,Kotlin在互操作性上更上一层楼,让Java代码也可以毫不费力的调用Kotlin的代码。Kotlin的类和方法可以像常规的Java类和方法一样被调用。
另一个Kotlin专注于互操作性的领域是在最大程度上使用现有的Java库。例如,Kotlin没有自己的集合库,它完全依赖Java标准库中的类,使用额外的函数来扩展它们,让他们在Kotlin中用起来更方便,这意味着在Kotlin中调用Java API时,永远不需要包装或者转换这些Java对象,反之亦然。
Kotlin工具也对跨语言项目提供了全面支持。它可以编译任意混合的Java和Kotlin源码,不管它们之间时怎样相互依赖的。

Kotlin编译器会分析源代码并生成.class文件,这和Java编译器做的没什么不同。

总结

因为资料确实不算多,稍后有对应资料后会再补充下。
如果您有更好的理解,也期待您的指导和评论。

  • 二者均为JVM的静态编程语言,最终产物都是JVM执行的字节码文件
  • Kotlin本身就是针对于Java平台的新编程语言,虽然也支持了多平台的使用,如iOS等,但是与Java的互操作性更好
  • Kotlin最大程度的使用Java现有的库,只是用额外的函数去扩展他们,这样在交互中就不需要额外的包装和转换,互操作性更好。
  • 编译器也支持混合开发的二者编译问题。

参考文献

Kotlinlang.org
《Kotlin in Action》

你可能感兴趣的:(Kotlin 为什么可以和Java混合开发)