首页 > 代码库 > Java中静态变量和动态变量
Java中静态变量和动态变量
这是我面试遇到的一道题,题目如下:
1 public class StaticTest { 2 private static int b = 1; 3 private int a = 1; 4 5 public static void main(String[] args) { 6 StaticTest a1 = new StaticTest(); 7 StaticTest a2 = new StaticTest(); 8 a1.a = a1.a+1; 9 a2.a = a2.a+1;10 System.out.println("a1.a="+a1.a);11 System.out.println("a2.a="+a2.a);12 13 StaticTest b1 = new StaticTest();14 StaticTest b2 = new StaticTest();15 b1.b = b1.b+1;16 b2.b = b2.b+1;17 System.out.println("b1.b="+b1.b);18 System.out.println("b2.b="+b2.b);19 }20 }
这道题考察的是静态变量和动态变量的区别,答案是2,2 3,3。
对于a的值是2,是毫无疑问的。
b在这里有static修饰,说明b是静态变量,可以直接StaticTest.b来调用,a需要new出StaticTest 对象来调用。
b随着类的加载而存在,随着类的消失而消失;a随着对象的创建而存在,随着对象被回收而释放
- b1.b = b1.b+1:这一步计算得出b=2
- b2.b = b2.b+1;因为StaticTest一直存在,所以此时b的值为2,最终b的值为2+1
Java中静态变量和动态变量
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。