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

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

    作者:idanyang

    出处:http://www.cnblogs.com/idanyang/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    nexus2设置开机自启
    谷粒商城XXL-SSO(三十六)
    谷粒商城SpringSession(三十五)
    CDH安装(二)
    CDH安装(一)
    大数据服务规划
    ClouderaManager的背景和介绍
    大数据架构
    C++ const成员变量和成员函数(常成员函数)
    C++ this指针详解(精辟)
  • 原文地址:https://www.cnblogs.com/idanyang/p/7002956.html
Copyright © 2011-2022 走看看