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

热点内容
flashcs5实用案例教程 浏览:850
百度贴吧密码模板 浏览:974
食堂管理体系文件包括内容 浏览:290
饥荒目录在哪个文件夹 浏览:52
乌鲁木齐在哪里学习编程 浏览:431
c语言创建文件夹 浏览:874
韩国讲述养父与双胞胎 浏览:808
西班牙言情电影 浏览:85
a标签如何直接下载一个文件 浏览:777
多女主多鼎炉的小说 浏览:531
洪金宝元华元彪越南电影 浏览:340
win10ghost好么 浏览:207
java怎么添加滚动条 浏览:946
qt生成excel文件 浏览:374
如何彻底清除用户数据 浏览:590
假期去看了一场电影英文翻译 浏览:171
香水在哪个网站买 浏览:481
学习编程需要掌握哪些英语 浏览:510
win10投射到安卓平板 浏览:973
qq密码手机怎么解除 浏览:548

友情链接