博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中静态变量和动态变量
阅读量:4315 次
发布时间:2019-06-06

本文共 907 字,大约阅读时间需要 3 分钟。

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

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

 

转载于:https://www.cnblogs.com/idanyang/p/7002956.html

你可能感兴趣的文章
Eclipse代码规范工具-Checkstyle安装和使用
查看>>
【读书笔记】 nginx 负载均衡测试
查看>>
JQUERY1.9学习笔记 之属性选择器(一) 前缀选择器
查看>>
TortoiseSVN显示图标不正常
查看>>
joj1020
查看>>
javascript模式——Decorator
查看>>
junit测试简单实例
查看>>
迷宫问题,POJ-3984
查看>>
python 文件操作的函数
查看>>
【2017下集美大学软工1412班_助教博客】团队作业3——需求改进&系统设计团队成绩公示...
查看>>
Educational Codeforces Round 26 E - Vasya's Function
查看>>
【Java基础】一个有意思的泛型方法Arrays.asList(T... a)
查看>>
Windows Internals 笔记——内核对象
查看>>
矩阵乘法、快速幂
查看>>
一周学会Mootools 1.4中文教程:(6)动画
查看>>
优秀的第二外语学习网站:Lang-8
查看>>
oracle存储过程杂记
查看>>
JPA @Id 和 @GeneratedValue 注解详解
查看>>
自定义Template
查看>>
su 和 su -
查看>>