关于JAVA常量对象

常量对象定义是在创建后状态不再发生改变的对象称作常量对象 那到底是什么状态不再发生改变呢?谢谢
比如说String类对象是个常量对象
有这样的一段代码
String str = "abc";
str = "def"
那str 的值没有改变吗? 这个对象的引用都改变了嘛.. 那如何叫常量对象呢?

关键点: 变量str是一个"abc"对象的引用! 也就是用str变量名作为一个指针指向了内存中"abc"字符串这个地址。
String对象是final,也就说"abc"这个字符串new出来以后在这个地址内的值不能再发生改变了,除非这块内存被回收以后重新赋值。 如果对象不是final的,那么在某块内存地址new出来以后,对象的值还是可以发生变化的!

那可能疑问了,那为什么str的值最后却改变了? 原因:str只是一个声明的对String对象的引用,"abc"在内存中那块地址不能发生变化,这是确定的,但引用还是可以指向其他地方的,这时候系统就会在内存中新开辟一块内存地址存放了"def"这个字符串,str引用改变指向"def"这个串!

如果你想str对某个字符串的引用不可变,可以这样写 final String str="abc";
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-09-08
比如:package test;

public class test3 {

/**
* @param args
*/
public static void main(String[] args) {
final int a = 56;
a = 32;

}

}
在这里 a = 32;
在编译的时候就会报错 ,因为你已经声明了 final int a = 56;是不可改变的。所以说 常量对象定义是在创建后状态不再发生改变的对象称作常量对象
第2个回答  2008-09-08
定义一个常量.final int a=100;
再给它进行赋值: a=200;
System.out.println(a)的打印结果会是100,而不是200
常量一经定义,再怎么给值都是无效的.
第3个回答  2008-09-08
就是不管你给它赋值还是系统试图给它赋值,都不能改变它的值~
第4个回答  2008-09-08
对象的内存地址不再发生改变

java代码中的常量怎么处理(java常量有几种)
复制代码代码如下:publicinterfaceSomeConstants{ publicintPORT=80;publicStringIP="166.111.16.1";publicbooleantest=true;} 就可以。用到常量的类implements这个接口..简单情况这样就行乐。2、更formal的做法是写一个类维护所有的常量,负责从配置文件(例如properties文件或xml文件)读取所有的常量的值。...

java 常量有哪些
一、字符串常量 字符串常量是用双引号包围的一系列字符序列。在Java中,字符串是不可变的,这意味着一旦创建了一个字符串对象,其内容就不能更改。例如:"Hello, World!"。二、整型常量 整型常量包括各种整数类型,如byte、short、int和long等。它们在代码中直接表示为数字,没有特殊格式要求。Java支持...

Java常量:Java常量的定义和分类
深入理解Java的常量,首先得明白常量值的多样性。它们包括整型常量,如int类型(如697L,表示长整型)和long类型(占用64位内存);实型常量,有默认的double类型和可选择的float类型(如69.7f,占32位);布尔型常量,仅限于false和true两个值;字符型和字符串常量,如'e'、"11"等,特殊字符用转义...

在java中存放字符串常量的对象属于什么对象
属于String类对象。String类是Java中的一个内置类,用于表示字符串类型的数据。

Java常量(java常量关键字)
来定义常量。Java的基本数据类型也叫做内置类型是java语言本身提供的数据类型,是引用其他类型的基础。Java的基本数据类型分为:整数类型、浮点类型、字符类型、布尔类型这四个类型。final关键字使用的范围。这个final关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。

Java中的常量分为哪几种?
常量是程序中固定不变的值,它们是不可改变的数据。例如,数字1、字符'a'、浮点数3.2等都是常量。在Java中,常量主要分为以下几种类型:1. 整型常量:整型常量是整数类型的数据,包括二进制、八进制、十进制和十六进制四种表示形式。二进制以0b或0B开头,八进制以0开头,十进制直接表示,十六进制...

Java中提供的常量一般都有什么作用
java 常量就是不变的值,在JAVA中就用final关键字来标识,主要作用是为了更方便的让很多人使用变量,易于维护。static就是静态变量,声明为static的变量实质上就是全局变量,如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象!static类中只能有静态成员,可以...

什么是常量?Java中,常量的定义规则有哪些?
这上面的语句的大致含义是,通过Java语言提供的随机数类对象,生成随机数。并把生成的随机数赋值给常量int1与int2。细心的读者会发现,虽然同样是赋值语句,但是以上两个语句中有一个细小的差别,即在第二条语句中多了一个关键字static。关于关键字的用途,笔者在以前的文章中也有谈到过。这个是一个静态的概念。即当利...

Java的问题……下面哪些是常量?是什么类型的常量?
true是boolean类型的值。boolean常量 -66是int类型的值。int 常量 042是8进制int类型的值。int 常量 N是标识符。OL是标识符。'\/\/'语法错误,因为\/\/是两个字符,不能用单引号括为一个字符。Oxal是标识符。"\/\/"是字符串常量。s是标识符。

java 什么叫类常量?
来定义常量。Java的基本数据类型也叫做内置类型是java语言本身提供的数据类型,是引用其他类型的基础。Java的基本数据类型分为:整数类型、浮点类型、字符类型、布尔类型这四个类型。final关键字使用的范围。这个final关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。

相似回答