IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Kotlin 为什么可以和Java混合开发 -> 正文阅读

[移动开发]Kotlin 为什么可以和Java混合开发

学!

本文:https://www.jianshu.com/p/e3afe651052b

前言

闲来无聊,和一个朋友聊天。
他突然问我:你知道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》

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:56:51  更:2022-03-13 21:57:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 17:35:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码