Java--static、final、static final的区别

时间:2019-04-09 00:05:50   收藏:0   阅读:130

 

一、final

成员变量与局部变量的区别:

  1. 在类中位置不同。成员变量:在类中方法外。局部变量:在方法定义中或者方法声明上。
  2. 在内存中的位置不同。成员变量:在堆内存。  局部变量:在栈内存。
  3. 生命周期不同。成员变量:随着对象的创建而存在,随着对象的消失而消失。 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失。
  4. 初始化值不同。成员变量:有默认值初始化。局部变量:没有默认值初始化,必须定义,赋值,然后才能使用。
  5. 另外,局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。

二、static

静态变量和非静态变量的区别是:

  1. 静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。
  2. 非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

三、static final:同时使用static和final修饰的成员在内存中只占据一段不能改变的存储空间。

 

原文:https://www.cnblogs.com/fqfanqi/p/10674336.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!