java - 我们可以向Java添加结构吗?

我在一次面试中被问到这个问题,无法回答。希望你能帮助我。
问题是:为什么Java人员不添加对结构的支持?为什么不可能将堆栈上分配的值类型添加到Java?
我想以前的java版本应该有一些向后兼容性问题吧?然而,我无法想出任何办法。


最佳答案:

尽管Java不允许堆栈分配,但它确实使用了调用转义分析。
找到一个与此相关的链接:http://www.ibm.com/developerworks/java/library/j-jtp09275/index.html
Java语言不提供任何在堆栈上显式分配对象的方法,但这并不妨碍JVM在适当的情况下仍然使用堆栈分配。jvm可以使用一种称为转义分析(escape analysis)的技术,通过这种技术,它们可以知道某些对象在其整个生命周期中都被限制在单个线程中,并且生命周期受给定堆栈帧的生命周期的限制。这样的对象可以安全地分配到堆栈上,而不是堆上。更好的是,对于小对象,jvm可以完全优化分配,只需将对象的字段提升到寄存器中。

译文:来源   文章分类: java struct value-type

相关文章:

java - 在未使用@ApiOperation注释操作时,大摇大摆地忽略了JAX-RS @Produces

java - 在同一个类中的另一个方法内调用一个方法

java - 为什么打印Java数组显示内存位置[重复]

java - 在开始Android开发之前我应该​​学习哪些设计模式

java - 自定义SimpleAdapter仅显示示例文本Android

java - 将类型显式放入Diamond运算符与让Java弄清楚类型之间有区别吗?

java - 单击jtable中的超链接?

java - 我应该如何使用Optional和ifPresent(…)将代码重构为…而不是?

java - 如果另一个被选中,我如何取消选中单选按钮?

java - 在分布式Web应用程序中缓存-复杂查询用例