首页 > 编程语言 > 详细

Java中静态变量和动态变量

时间:2017-06-13 19:10:02      阅读:384      评论:0      收藏:0      [点我收藏+]

这是我面试遇到的一道题,题目如下:

 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随着对象的创建而存在,随着对象被回收而释放

  1. b1.b = b1.b+1:这一步计算得出b=2
  2. b2.b = b2.b+1;因为StaticTest一直存在,所以此时b的值为2,最终b的值为2+1

技术分享

 

Java中静态变量和动态变量

原文:http://www.cnblogs.com/idanyang/p/7002956.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!