首页 > 试题广场 >

下列Java代码中的变量a、b、c、d分别在内存的()存储区

[单选题]

下列Java代码中的变量a、b、c、d分别在内存的()存储区存放。

class Test {
    private String a = "aa";
    private static int d = 1;
    public void method () {
        String b = "bb";
        final String c = "cc";
    }
}

  • 栈区、堆区、堆区、静态区

  • 堆区、栈区、栈区、静态区

  • 堆区、栈区、堆区、栈区

  • 堆区、堆区、栈区、静态区

首先这道题要看清楚a,b,c,d的位置,他不是顺序的,因为a是在类内部方法之外所以为堆内存,b,c都在方法内部,属于局部变量,是栈内存,d有static,所以为静态区
发表于 2020-02-18 12:55:26 回复(0)
成员变量(方法之外,类的内部):存放于堆区的对象里面,有垃圾回收器回收;
局部变量(方法块内部):存放于栈区,随方法的消失而消失。
Test test = new Test(); test是对象的引用,存放于栈区,而 new Test()存放于堆区;
public Data(int a,int b,int c){},其中a,b,c为形参,为局部变量存放于栈区,当Data方法执行完毕之后,a,b,c就会从栈区中移除。
发表于 2020-02-11 17:00:08 回复(0)