黑马程序员-----java中String类、StringBuffer容器、StringBuilder容器总结*

本文深入解析了Java中String类的工作原理,包括对象创建过程、内存分配细节,并对比了StringBuffer与StringBuilder的区别。

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------


一、String类

1、由于String类是final的,它的值一经创建就不可改变

2、

String s1 = "abc";     //创建了一个对象

String s1_1 = "abc" ,String s1_2 = "abc";    //总共也只创建了一个对象
String s2 = new String("abc");     //创建了两个对象
String s3 = "ab"+"c";   //创建了三个对象

执行过程解释如下:

第一个语句,首先去字符串池中找是否有abc这个对象,没有,在字符串中创建了一个abc对象

第三个语句,先去也字符串池中找是否有abc找个对象,有,不新建,然后执行new语句,把abc拷贝到堆内存中

第四个语句,首先去字符串池中找是否有ab和c两个对象,没有,在字符串池中创建了两个对象,因为+,所以两个对象又合成了一个对象abc,这时候又去字符串中找,有,直接把abc拷贝到堆内存中



二、StringBuffer和StringBuilder

代码:

StringBuffer sb = new StringBuffer();

StringBuffer sb1 = sb.append(34);

print(sb.toString());      //结果一样

print(sb1.toString());    //结果一样

解释:

创建一个StringBuffer容器,容器名称叫sb,往该容器里面添加了一个整数34,但是sb和sb1都还是指向该容器来,内部的数据变化不会影响地址




---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

详细请查看:http://edu.youkuaiyun.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值