Java 什么时候为函数中的局部变量分配内存?
我知道为函数和Java 什么时候为函数中的局部变量分配内存?,java,Java,我知道为函数和静态成员分配的内存只执行一次,每次创建新对象时,类变量都会被赋予新的内存空间 在下面的问题中使用new操作符后,我将得到类变量的8个字节。但是,intc的内存是什么时候分配的?在编译期间 class A { int a,b; void show() { int c; } public static void main(String...s) { new A().show(); } } 函数
静态成员分配的内存只执行一次,每次创建新对象时,类变量都会被赋予新的内存空间
在下面的问题中使用new
操作符后,我将得到类变量的8个字节。但是,intc
的内存是什么时候分配的?在编译期间
class A
{
int a,b;
void show()
{
int c;
}
public static void main(String...s)
{
new A().show();
}
}
函数局部变量的内存在每次调用函数时在堆栈上分配。函数局部变量的内存在每次调用函数时在堆栈上分配。方法调用和局部变量存储在堆栈上。对象(包含实例变量)存储在堆上。因此,使用以下方法创建对象:
new A()
调用方法时,将在堆栈上创建存储在堆栈上的show
method局部变量c
只需查看此图,即可了解有关Java中堆栈和堆内存管理的更多信息:
方法调用和局部变量存储在堆栈上。对象(包含实例变量)存储在堆上。因此,使用以下方法创建对象:
new A()
调用方法时,将在堆栈上创建存储在堆栈上的show
method局部变量c
只需查看此图,即可了解有关Java中堆栈和堆内存管理的更多信息:
本地变量在堆栈上是本地分配的。你能帮我一个链接吗?比你想知道的还要多:嗯,我认为你真正需要的是关于编程的东西,而不是java内存管理的东西。本地变量在堆栈上是本地分配的。你能帮我一个链接吗?比你想知道的还要多:嗯,我认为您真正需要的是关于编程的东西,而不是java内存管理blahblah。所以每次新内存分配给本地变量时?我认为内存只分配给函数及其变量一次!快速浏览一下,这个页面看起来很有希望:男人考试从周一开始,所有这些诱人的话题我现在正在挖掘!因此,每次堆栈上都会为局部变量分配内存。但是对于静态函数和变量,应该有一个固定的空间ryt?静态函数的工作原理与普通函数相同,只是它们在类上而不是实例上运行-这意味着引用的成员只能是静态成员,不能是实例成员(因为在静态方法调用时没有已知的实例).静态变量只分配一次-当类加载时,这是正确的。所以每次新内存分配给本地变量?我以为内存只分配给函数及其变量一次!快速看一下,这个页面看起来很有希望:man考试从周一开始,所有这些诱人的主题我现在正在挖掘!所以每次都会为堆栈上的局部变量分配内存。但是对于静态函数和变量,应该有一个固定的空间ryt?静态函数的工作方式与普通函数相同,只是它们在类上而不是实例上操作-这意味着引用的成员只能是静态成员,而不是实例成员(因为在静态方法调用时没有已知的实例)。静态变量只分配一次-当类被加载时,这是正确的。有帮助的…:D现在请对此进行解释-一旦first()被放到堆栈上,(这发生在编译时对吗?)如果我们再次调用first(),那么新的内存将被分配给first(),或者这只是对其他地方固定内存位置的函数调用吗?有帮助的…:D现在请对此进行解释-一旦first()被放入堆栈中,(这会在编译时发生,对吗?)。然后将内存分配给它。如果我们再次调用first,则新内存将分配给first(),或者这只是对其他位置的固定内存位置的函数调用?