与Java相比Kotlin对象创建和内存管理

时间:2018-12-16 11:58:39

标签: java memory-management kotlin

我听说在Kotlin中创建新对象很便宜。对象创建的Kotlin内存方面与Java有何不同?从data classclass创建对象的成本是否有所不同?

2 个答案:

答案 0 :(得分:2)

我认为您的意思是Kotlin针对JVM,因此我将向您介绍这个目标。

Kotlin使用与Java相同的字节码,因此性能通常是相同的(与Java相比,在Kotlin中某些操作可以进行或多或少的优化(由于使用编译器或stdlib))。

数据类只是具有额外生成的toString(),equals(),hashCode()和clone()方法的普通类,因此它们的性能与普通类相同。

答案 1 :(得分:1)

如果Java和Kotlin都是针对同一目标VM编译的,我希望不会有任何区别-哪个源代码产生相同的字节码也应该没有区别。

对于data class,Hiosdra正确地pointed out,这只是一个语法糖,告诉编译器派生一些对数据保存类有用的标准方法(请参见the documentation)。