导航:首页 > 编程语言 > 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相关的资料

热点内容
id为什么下载不得app 浏览:658
打印机扫描的文件路径怎么修改 浏览:876
编程在哪里做兼职 浏览:804
为什么总是复制隐藏文件 浏览:203
稳捷网络 浏览:908
网页打印保存pdf文件怎么打开 浏览:150
编译文件路径不能包含空格 浏览:44
linux打开文件系统检查失败 浏览:624
用什么网站能接室内翻新的活 浏览:235
三星手机应用程序许可 浏览:203
mh版本 浏览:288
编程猫幼儿园怎么样 浏览:50
公交app如何安装 浏览:692
iphone4耳机怎么用 浏览:605
学习课文的app有哪些 浏览:834
ios10导出文件到电脑 浏览:9
数控编程怎么编新程序 浏览:418
编程题怎么分解 浏览:998
本科生找工作应该学什么编程语言 浏览:803
android系统应用升级 浏览:55

友情链接