zoukankan      html  css  js  c++  java
  • Java中静态变量与实例变量

    知识回顾

    上一篇总结了java中成员变量和局部变量的区别,这一篇将总结静态变量和实例变量的一些特性和区别。

    示例代码

    package Variable;
    
    public class VariableDemo {
    
        //实例变量
        int a;
    
        //静态变量
        static int b;
    
        public static void main(String[] args) {
            System.out.println(VariableDemo.b);//静态变量可以直接被类调用,实例变量不可以
            
            //新建一个对象 variableDemo
            VariableDemo variableDemo = new VariableDemo();
    
            //实例变量和静态变量都可以被对象调用,默认值为0或null
            System.out.println(variableDemo.a);//0
            System.out.println(variableDemo.b);//0
    
            //再新建两个对象 variableDemo1 、variableDemo2
            VariableDemo variableDemo1 = new VariableDemo();
            VariableDemo variableDemo2 = new VariableDemo();
    
            //对象variableDemo将静态变量b的值改变
            variableDemo.b=10;
    
            //静态变量实质上是全局变量,其中一个变量将其值改变,其他对象得到的都是改变后的结果
            System.out.println(VariableDemo.b);//10
            System.out.println(variableDemo.b);//10
            System.out.println(variableDemo1.b);//10
            System.out.println(variableDemo2.b);//10
    
            //对象variableDemo将实例对象a的值改变
            variableDemo.a = 15;
    
            //实例变量属于对象私有,某一个对象将其值改变,不影响其他对象
            System.out.println(variableDemo.a);//15
            System.out.println(variableDemo1.a);//0
            System.out.println(variableDemo2.a);//0
        }
    }
    
    
    

    静态变量和实例变量的区别

    1、生命周期不同

    实例变量随着对象的创建而存在,随着对象的回收而释放。
    静态变量随着类的加载而存在,随着类的消失而消失。

    2、调用方式不同

    实例变量只能被对象调用。
    静态变量可以被对象调用,还可以被类名调用。

    3、数据存储位置不同

    实例变量存储在堆内存的对象中,所以也叫对象的特有数据。
    静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。

    总结

    1.成员变量分为静态变量与实例变量。用 static修饰的变量是静态变量,不用 static 修饰的是实例变量。
    2. 实例变量和静态变量都可以被对象调用,数值类型的默认值为0,字符为null
    3. 静态变量实质上是全局变量,其中一个变量将其值改变,其他对象得到的都是改变后的结果
    4. 实例变量属于对象私有,某一个对象将其值改变,不影响其他对象

  • 相关阅读:
    27. Remove Element
    26. Remove Duplicates from Sorted Array
    643. Maximum Average Subarray I
    674. Longest Continuous Increasing Subsequence
    1. Two Sum
    217. Contains Duplicate
    448. Find All Numbers Disappeared in an Array
    566. Reshape the Matrix
    628. Maximum Product of Three Numbers
    UVa 1349 Optimal Bus Route Design (最佳完美匹配)
  • 原文地址:https://www.cnblogs.com/anycall/p/10649868.html
Copyright © 2011-2022 走看看