java方法是否根据返回类型分配了不同的内存大小

时间:2018-04-09 08:23:17

标签: java java-memory-model

尝试编写一个内存高效的java脚本...所以它让我想知道...返回类型中的内容是什么?如果我定义一个方法说String push(String arg)int push(String arg)相同的实现...内存使用会不同吗?

1 个答案:

答案 0 :(得分:1)

String将占用更多内存(参考值,char[] value字段,int hash字段,对象标头,内存对齐),但将其替换为int是一种微观优化。对于单个对象,增益是微不足道的,特别是如果返回值是短暂的并且在NewSpace中收集了垃圾。还有其他事情要考虑,例如是你的String以前实习或分配了堆栈。

您可以使用jol检查Java对象布局:

  

JOL(Java Object Layout)是分析JVM中对象布局方案的微型工具箱。这些工具大量使用Unsafe,JVMTI和Serviceability Agent(SA)来解码实际的对象布局,占用空间和引用。这使得JOL比依赖堆转储,规范假设等的其他工具更准确。