String数值不可改变怎么理解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String数值不可改变怎么理解相关的知识,希望对你有一定的参考价值。

想了很久没想明白,不可改变是什么不可改变
public class SHISHI

/**
* @param args
*/
public static void main(String[] args)
// TODO 自动生成方法存根
String str = "diyici";
System.out.println(str);
str = "dierci";
System.out.println(str);




我把str的值改变了怎么也行?

1、string数值不可改变的意思是字符串变量不能进行数学运算。

2、string是字符串变量,字符串变量里面存储的是字符串,存储的数值也是以字符串形式存在,所以不能进行数学运算,只能进行相应字符串操作,如连接、删除、查找等。

3、注意:vb6在某些情况下数值串与数值存在自动转换关系。

4、vb6示例:

Private Sub Form_Click()
Dim N1 As String, N2 As String, N3 As String
N1 = 123
N2 = 456
N3 = N1 + N2
Debug.Print N3

End Sub

'得到123456

参考技术A String str = "diyici"; 这个语句开辟了一个内存空间存储"diyici".
str = "dierci"; 当执行这个的时候,不是把"diyici"改成"dierci",而是又开辟了一个内存来存储,以前那个就成为垃圾内存了。
参考技术B 举例:
String str = "hello world";
相当于str是一个常量,
当对str进行操作的时候,比如
str += "test";
它不是简单的在"hello world"后面加上"test",
而是在内存中重新开一个空间,先拷贝"hello world"再接着拷贝"test"组成新的
字符串"hello worldtest",并把这个字符串的引用重新赋值给str,
也就是说,对于一个String对象引用,你最好就只是取用它,
一旦你对它进行任何操作都将导致引用本身改变,而且还有很高的代价。

参考资料:CSDN.net

本回答被提问者采纳
参考技术C 因为你把str也改成了一个String,当然可以, 你要说Str = 1;
绝对出错

以上是关于String数值不可改变怎么理解的主要内容,如果未能解决你的问题,请参考以下文章

Java String类型值真的不可改变吗?

String对象不可改变的特性

Java基础JAVA不可变类(immutable)机制与String的不可变性

Java-String

java基础 String性质深入解析

String不可变性