举个例子。
public class test {
public static void main(String args[]) {
int a=5,b=4;
int c=a+b;
int d=9;
System.out.println("ANSWER PLEASE..");
}
}
现在当我们执行这个代码时os会做什么?
首先创建一个名为a
的变量,并为b
和c
分配类似内容的内存地址。
现在d
发生了什么。 os创建一个新的内存地址,或者它只是c
的地址,因为值相同。
答案 0 :(得分:3)
首先,编译器做得不多。它基本上将其转换为类文件/字节码。在字节码中有一个名为“max locals”的数字,它表示运行该方法需要多少局部变量。
另一方面, JVM 读取此信息并运行代码,确保在堆栈帧上分配内存以适应所需的变量。它要求多少是高度依赖于实现的,它可以很好地优化整个事物,并分配比代码所指示的更少的字节。答案 1 :(得分:0)
发生了什么事。 os创建一个新的内存地址,或者它只是在c的地址中提供,因为值相同。