gpt4 book ai didi

java - 方法/参数名称会影响堆栈上占用的内存量吗?

转载 作者:行者123 更新时间:2023-12-02 10:20:24 24 4
gpt4 key购买 nike

方法名称或参数名称之类的内容对条目在堆栈上占用的内存量有影响吗?

我知道像 int 这样的原始参数确实会占用内存,但我想知道通过简洁地命名我的方法和参数名称是否可以节省内存,无论多么微小,或者我是否应该给他们足够长的名字来描述他们所做的事情。

public static int convertSomeIntegerValueToSomeOtherIntegerValueByMethodOfDividingTheOriginalIntegerByTwoAndRoundingTheOutputBecauseItIsAnInteger(int veryVerboseIntegerValueWithAVeryLongParameterNameSoItCanBeDividedByTwo){
return veryVerboseIntegerValueWithAVeryLongParameterNameSoItCanBeDividedByTwo/2;
}
public static int divTwo(int a){
return a/2;
}

这两种方法除了源代码的文件大小之外还有什么区别吗?

另外,这些方法名称会使编译后的代码更大吗?

最佳答案

没有。这对内存使用完全没有影响。

堆栈上的内容纯粹根据它们相对于堆栈帧的“位置”来解析。

方法和类名当然存储在某个地方(在类元数据中),但这不会影响内存使用(除了加载类本身 - 请注意,它不影响创建实例的内存使用)。

除非在编译期间启用调试符号,否则根本不会存储参数名称和变量名称。

运行时唯一占用内存(在堆上,而不是在堆栈上)的东西是哈希表中的键(但即使有内部字符串常量,内存效应也应该很小)。

Also, do these method names make the compiled code bigger?

是的。但从大局来看这并不重要。

关于java - 方法/参数名称会影响堆栈上占用的内存量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54384899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com