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

热点内容
win10系统有没有便签 浏览:722
java引用传递和值传递 浏览:109
oracle下载安装教程 浏览:854
php筛选数据库 浏览:830
怎么用手机看wlan密码 浏览:745
奥维地图导入的文件在哪里 浏览:364
sdltrados2014教程 浏览:43
培训制度文件在哪里找 浏览:601
勒索病毒防疫工具 浏览:861
win10c不能打开 浏览:375
xfplay影音先锋苹果版 浏览:597
两个文件打开两个word 浏览:921
苹果6s桌面图标轻微抖动 浏览:326
如何删除手机中看不见的临时文件 浏览:469
安卓412原生锁屏apk 浏览:464
书加加缓存文件在哪里 浏览:635
dock是word文件吗 浏览:267
社保公司新办去哪个网站下载资料 浏览:640
三维标注数据怎么填写 浏览:765
数据线断在哪里取出来 浏览:522

友情链接