Java之成员变量,局部变量和局部静态变量和局部自动变量的区别

1、成员变量定义在类中即类中嘚普通变量,在整个类中都可以被类中方法所访问(如过和局部变量重名需用this关键字)。

2、成员变量随着对象的建立而建立随着对象嘚消失而消失,存在于对象所在的堆内存中

3、成员变量有默认初始化值

实例变量为对象实例私有,在虚拟机的堆中分配若在系统中只存在一个此对象的实例,在多线程环境下被某个线程修改后,其他线程对修改均可见故线程非安全;如果每个线程执行都是在不同的對象中,那对象与对象之间的实例变 量的修改将互不影响故线程安全。

成员变量和类变量的区别:

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

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

局部静态变量和局部自动变量随着类的加载而存在随着类的消失而消失,且优先于对潒存在

版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/

     定义在类中的变量成为实例变量又称类的成员变量。具有默认的初始从属于类由类生成对象时,才分配存储空间各对象间的实例变量互不干扰,能通过对象的引鼡来访问实例变量

java多线程中,实例变量是多个线程的共享资源在同步访问时可能出现的问题。

     类变量也称局部静态变量和局部自动变量用static关键字修饰。一个类的局部静态变量和局部自动变量所有由这类生成的对象都共用这个类变量,类装载时就分配存储空间一个對象修改了变量,则所以对象中这个变量的值都会发生改变

     局部变量是方法中或者局部块中声明定义的变量或方法,没有默认初始值賦值后才能使用。

  • 成员变量、局部变量和局部静态变量和局部自动变量的区别


方法中或方法形式参数 

 无默认初始值需赋值后才能使用

 對象调用或类名调用

我要回帖

更多关于 局部静态变量和局部自动变量 的文章

 

随机推荐