String不变性

本文详细解析了Java中String不变性概念,解释了String常量池的作用及其实现方式,强调了字符串不可变性对于内存管理的重要性。
String不变性理解类型:


String x = "java";

System.out.println(x);//输出为java

x.concat("java");//该方法是在原来的变量后面加入一个字符串然后变成新的字符串

System.out.println(x);//输出为java

x=x.concat("java");

System.out.println(x);输出为javajava

这就是不变性的概念。


所谓的不变性是指引用的对象实例的是不能够改变的,可是能够改变引用地址。所以通过改变引用地址就能够改变值了。




String 常量池



     由于String常量占用的内存空间比較大。因此为了节省内存,JVM专门用一片特殊的区域用作String 常量池。面对String 常量,会检查是否存在于String 常量池中,假设存在,直接一个引用搞定了。就避免反复浪费内存空间。因此必须确保这个详细的常量不能被改变了。

这就是上面所讲到的不变性。

 String a="jiao";//这个就是能够使用在String 常量池的常量。

 String a =new String("jiao");//这个未放置String 常量池,但是,摆在常规内存。


版权声明:本文博客原创文章。博客,未经同意,不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值