导航:首页 > 编程语言 > javafinalstatic

javafinalstatic

发布时间:2024-04-25 03:57:47

java中static final变量存储内存哪个区

这是一个对常量的定义,放在常量池 注意你写的不是static int MAX=9;

Ⅱ Java 中final static变量为什么要初始化

举个例子:一、一个属性成员变量为:public int age;(编写完该句意味着虚拟机已经为该成员变量age赋默认值0。int类型默认值为0。也可以直接定义时赋值,如public int age =10;。该age的值可以被赋值或者在构造方法里面进行改变)。
二、public static int age;(该句增加static修饰age,不同的是,加了static表示了该变量为全局变量,且默认取值为0,因为int默认取值为0。也可以进行直接定义时赋值public static int age =10;不同的是该属性不依赖对象、依赖类,本类对象共享一份,和上面一样该age的值一样可以被赋值或者在构造方法里面进行改变)。
三、public final int age;(该句用final单独修饰,表示该成员属性变量age将不会取int类型的默认值,故age没有被初始化,必须在定义的时候进行直接赋值,或者在创建对象的时候使用构造方法对该成员属性变量进行赋值。并且一旦用final定义后,就变为最终变量,值 不可以再被改变!所以,该句代码的正确写法应该是如下两种:1、public final int age = 10;
2、
class Dog{
public final int age;
public Dog(){
int age = 10;

}
}
)。
四、public static final int age;(该句和上面一样,也是age没有被初始化,所以age必须被赋值,不同的是该情况下必须是直接赋值,而不能在构造方法里面进行赋值。正确的写法是:public static final int age = 10;这是因为第一、用final修饰的属性不能够用数据类型的默认值为初始化的值,必须要直接赋值,或者在使用构造方法去创建对象的时候对变量进行赋值。但是,第二、由于被static修饰以后的属性成员变量,该成员变量是在类加载完的时候其值已经被确定了,该值依赖类,并不依赖对象。即使不创建对象它就已经有值了,并且由于被final所修饰不能够用数据类型的默认值,故而只能直接赋值,并且被final所修饰成为了最终变量,不可以改变。故而,由于以上两方面原因,只能是直接赋值。public static final int age = 10;)

Ⅲ java中static和final能同时修饰一个变量吗,为什么

可以。sataic表示这个变量是这个类的全体对象所共享的,一旦通过其中某个对象的引用去专改变这个变量则属其他对象再次引用这个变量时,得到的值也随之改变,因为所有的对象引用的其实是同一个内存地址的东西。而final则表示一旦定义了这个变量的值就不能再改变了,就是常量了。final和static表达的含义不同,二者并不冲突

阅读全文

与javafinalstatic相关的资料

热点内容
编辑bt种子修改文件名 浏览:651
qq空间日志边框代码 浏览:630
编程机构学校哪个最好 浏览:388
opatch工具11g 浏览:196
象往app家长版如何添加成员 浏览:9
一汽奥迪app在哪里看车辆状态 浏览:359
esb文件格式 浏览:667
程序员的图片 浏览:685
报考网络工程师都需要购买哪些书籍 浏览:553
文件币的价格多少 浏览:453
安卓pptv本地文件已不在怎么清理 浏览:325
jsp报表插件 浏览:575
javajlabelsettext 浏览:874
什么是有效xml文件 浏览:216
施工人员在哪个app找工作 浏览:409
sources文件夹是什么 浏览:843
缺电脑文件 浏览:539
windows编程如何读取文件大小 浏览:947
2017程序员工资统计 浏览:153
ps2021暂存盘文件手动清理 浏览:459

友情链接