• 成员变量,局部变量,静态变量


    成员变量:在类体的变量部分中定义的变量,也称为属性。成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。

                     成员变量有默认初始化值

    局部变量:在方法体声明的变量和方法的参数称为局部变量。只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。局部变量没有默认初始化值

          在使用变量时需要遵循的原则为:就近原则

          首先在局部范围找,有就使用;接着在成员位置找。

         如果局部变量的名字与成员变量的名字相同,成员变量被隐藏,成员变量失效。

     静态变量:由static修饰的变量称为静态变量,其实质上就是一个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。

    成员变量和静态变量的区别

          1、两个变量的生命周期不同

                成员变量随着对象的创建而存在,随着对象被回收而释放。

                静态变量随着类的加载而存在,随着类的消失而消失。

          2、调用方式不同

                成员变量只能被对象调用。

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

          3、别名不同

                成员变量也称为实例变量。

                静态变量也称为类变量。

          4、数据存储位置不同

                成员变量存储在堆内存的对象中,所以也叫对象的特有数据。

                静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据

    三者之间的区别

     

    成员变量

    局部变量

    静态变量

    定义位置

     在类中,方法外

    方法中,或者方法的形式参数

    在类中,方法外

    初始化值

    有默认初始化值

    ,先定义,赋值后才能使用

    有默认初始化值

    调用方式

    对象调用

    ---

    对象调用,类名调用

    存储位置

    堆中

    栈中

    方法区

    生命周期

    与对象共存亡

    与方法共存亡

    与类共存亡

    别名

    实例变量

    ---

    类变量

          

    class test{                                   

                               int x;非静态成员变量,又称为属性,对该类不同的对象来说,属性是不同

                              static int y;// 静态成员变量,一个类中只有一个该变量,该类不同的对象共享同一个静态成员变量

                              public static void main(String[] args){int m = 0;// 局部变量,是方法内部定义的变量,只在方法内部可见,在该方法结束后,由垃圾回收器自动回

     }

  • 相关阅读:
    线程同步——用户模式下线程同步——Slim读写锁实现线程同步
    线程同步——用户模式下线程同步——关键段实现线程同步
    线程同步——用户模式下线程同步——Interlocked实现线程同步
    创建线程
    GDI的 点 线 面 双缓冲 位图的绘制
    简单的windows窗口创建实例
    宽字符与多字符
    学习MFC的建议
    DataGrip 2018.3.1破解激活码
    mysql 主从复制配置
  • 原文地址:https://www.cnblogs.com/ysg520/p/9393325.html
Copyright © 2020-2023  润新知