String、StringBuffer和StringBuilder

String、StringBuffer和StringBuilder

1、String

		String s1 = "hello";
        String s2 = "hello";
        System.out.println(s1==s2);//true
		//比较的是变量中的内存地址,s1和s2保存的都是字符串常量池中的"Hello"的内存地址
		String s3 = new String("hello");
        String s4 = new String("hello");
        
        System.out.println(s3==s4);//false因为比较的是x和y变量所保存的是内存地址,也就是两个String对象的内存地址, 他们是两个独立的String对象,内存地址当然不一样,所以会输出false
        System.out.println(s3.equals(s4));//true因为String类已经重写了equals方法,比较的是String对象中存储的内容

2、StringBuffer

StringBuffer对象代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其转换为一个String对象。

		String string = "hello";
        StringBuffer sf = new StringBuffer(string);
        StringBuffer sf1 = new StringBuffer();
        sf.append("world");//追加字符,字符串连接
        sf1.append("123").append("456").append("789");//追加字符,字符串连接
        System.out.println(sf);//helloworld
        System.out.println(sf1);//123456789
        System.out.println("*****************************");

        sf.insert(2,"*");//指定位置插入字符(串)
        System.out.println(sf);//he*lloworld
        System.out.println("*****************************");

        sf.reverse();//字符串反转
        System.out.println(sf);//dlrowoll*eh
        System.out.println("*****************************");

        sf.setCharAt(0,'s');//将第 i 个代码单元设置为 s(可以理解为替换)
        System.out.println(sf);//slrowoll*eh
        System.out.println("*****************************");

        sf.delete(1,3);//删除起始位置(含)到结尾位置(不含)之间的字符串
        System.out.println(sf);//sowoll*eh

3、StringBuilder

StringBuilder和StringBuffer的对象是可变字符串类,可以对对象进行更改

StringBuilder和StringBuffer基本相似,两个类的构造器和方法也基本相同。不同的是:StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高。

运行速度

StringBuilder >StringBuffer > String

总结

String:适用于少量字符串处理的情况
StringBuilder:适用于单线程,要求速度的情况
StringBuffer:适用于保证多线程安全的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值