String相关

1.String、StringBuilder和StringBuffer

1)是否可变:String类中使用final关键字修饰字符数组来保存字符串,所以String对象是不可变的,而 StringBuilder和StringBuffer是可变的。

2)拼接:String使用字符串拼接时是两个不同的空间,StringBuffer和StringBuilder使用字符串拼接是直接在字符串后追加。

3)线程安全方面:String中的对象是不可变的,也可以理解为常量,线程安全。StringBuffer对方法和调用的方法加了同步锁,所以是线程安全的,而StringBuilder没有加同步锁,所以线程不安全。

4)性能:StringBuffer>StringBuilder>String

  1. 总结:操作少量数据使用String;单线程下操作大量数据使用StringBuilder,多线程下操作大量数据使用 StringBuffer。

2.String类不能继承

源码中:类被final修饰

源码中:属性 char 类型的数组

String.toCharArray 生成char类型的数组

3.String常用方法

public class StringClass {
    public static void main(String[] args) {
        String s1 = "abcde";
        String s2 = "fghi";
        String upperCase = s1.toUpperCase();
        String lowerCase = s1.toLowerCase();
        int length = s1.length();
        String substring = s1.substring(1, 2);
        boolean equals = s1.equals(s2);
        int compareTo = s1.compareTo(s2);
        String concat = s1.concat(s2);
        StringBuffer stringBuffer = new StringBuffer("aabb");
        StringBuffer reverse = stringBuffer.reverse();
        System.out.println(reverse);    //bbaa
        StringBuffer replace = stringBuffer.replace(1, 3, s2);
        System.out.println(replace);   //bfghia
        System.out.println(upperCase);  //ABCDE
        System.out.println(lowerCase);  //abcde
        System.out.println(length);     //5
        System.out.println(substring);  //b
        System.out.println(equals);     //false
        System.out.println(compareTo);  //-5
        System.out.println(concat);     //abcdefghi
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值