String类型和StringBuffer类型

课堂的一些笔记,加上自我理解,有错误请谅解指出。

一,可变字符串序列和不可变字符串序列

(1)   String属于java中的字符串类型,也是一个引用类型,但并非是基本的数据类型,基本的数据类型为数值型:byte,short,int,long;浮点型:float,double;字符型:char;布尔型:boolean。

String类型一旦被创建其值便不可在改变。

		String s1 = "lo";
		String s2 = "ve";
		String s3 = s1 + s2;
		String s4 = "love";
		System.out.println(s3==s4);//结果返回false


		String s5 = "lo" + "ve" ;
		String s6 = "love";
		System.out.println(s5==s6);//结果返回ture

其结果说明字符串在拼接之后会在内存中创建新的内存地址,虽然可以通过这种拼接的方式改变字符串的长度,但是与此同时也会改变它的内存地址。而s5字符串的拼接会直接在堆中创建它他们拼接后的内存地址,即在常量池中创建"love",s6直接从常量池中取得"love",内存地址自然相同。

(2)而StringBuffer是可变字符串序列,它可以通过append,insert和delete方法改变字符串序列,改变后的内存地址与之前的一致。

		StringBuffer sBuffer = new StringBuffer ("abc");
		System.out.println(sBuffer.length());//返回字符串的长度3
		StringBuffer sBuffer1 = sBuffer.append("def");
		System.out.println(sBuffer==sBuffer1);//结果返回ture
		System.out.println(sBuffer.capacity());//返回创建的内存大小19
		StringBuffer sBuffer2 =sBuffer1.insert(3, "love");
		System.out.println(sBuffer2);//返回值abclovedef
        StringBuffer sBuffer3 =sBuffer2.delete(1, 3);
		System.out.println(sBuffer3);//返回值alovedef

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值