String

String 是一个不可变的字符串,做频繁的拼接操作,性能比较差
String的添加时间(毫秒)

public static void main(String[] args) {

        //记录开始时间
        long starTime=0L;
        //记录结束时间
        Long endTime=0L;
        /*
        System.currentTimeMillis()  获取系统时间(以毫秒值为单位时间)
         */
        starTime=System.currentTimeMillis();
        String s1="";
        for (int i = 0; i < 50000; i++) {
            s1+=i;
        }
        //不同的电脑运行速度不同,时间也不同
        endTime=System.currentTimeMillis();
        System.out.println((endTime-starTime));//输出5741
    }
/*三种的异同点 
	类名  		String    	  StringBuilder     StringBuffer
	对象类型		字符串常量	  字符串变量`			字符串变量
	线程安全性	不安全			不安全				安全(数据准确)  
	(不安全指的是多个对象可以同时操作,安全是只能等这个对象操作完后,另外的对象才可以操作)
	执行效率		低				高					中
*/

可变字符串和不可变字符串本质上就是底层char数组有没有加final的区别
可变字符串 StringBuffer StringBuilder

  1. 这两个类型方法和功能完全相同
  2. 不一样是的就是StringBuffer中的方法采用的加锁效果,线程安全,StringBuilder没有加锁,线程不安全,效率高

String数组添加字符是创建在一新的数组在进行添加
StringBuilder数组添加字符自己扩容添加就可以了

    public static void main(String[] args) {
        /*
        StringBuilder() 空的可变序列
        StringBuilder(String str) 根据指定字符串创建可变序列
         */

        StringBuilder s3=new StringBuilder();
        StringBuilder s4=new StringBuilder("123");
        System.out.println(s3);//什么也不输出
        System.out.println(s4);//123
        //StringBuilder常用的方法
        /*
            增:append() 提供了很多的append方法用于各类型的内容拼接
            删:delete(int start, int end)  开头和结束,但是不包括结束位置,即顾头不顾尾
            改:
            	修改连续多个
            	replace(int start, int end, String str)  开头和结束,以及要替换的字符串 ,也是顾头不顾尾
            	单个修改
            	setCharAt(int index, char ch)  下标 要替换的字符
            插:insert(int offset,XXX)  提供了很多的inset方法用于各类型的内容插入
         */
        s3.append("123");
        s4.append(false);
        System.out.println(s3);//123
        System.out.println(s4);//123false
        s4.delete(2,5);//输出 12lse
        System.out.println(s4);
        s4.replace(2,4,"yy");//输出12yye
        System.out.println(s4);
        s4.setCharAt(1,'a');//输出1ayye
        System.out.println(s4);
        s4.insert(0,true);//输出true1ayye
        System.out.println(s4);
        
    }

在这里插入图片描述
在这里插入图片描述
测试StringBuffer的添加时间(毫秒)

//记录开始时间
        long starTime1=0L;
        //记录结束时间
        Long endTime1=0L;
        /*
        System.currentTimeMillis()  获取系统时间(以毫秒值为单位时间)
         */
        starTime1=System.currentTimeMillis();
        StringBuffer str=new StringBuffer();
        for (int i = 0; i < 50000; i++) {
            str.append(i);
        }
        endTime1=System.currentTimeMillis();
        System.out.println((endTime1-starTime1));//输出2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值