String 的基本方法 String和StringBuffer的使用比较

String的基本方法

package SHUZU.String;
/*
        可变字符序列的常用方法
 */
public class method {
    public static void main(String[] args){
        StringBuilder sb = new StringBuilder();
        for(int i = 0;i<26;i++){
            sb.append((char)('a'+i));
        }
        System.out.println(sb);
        sb.reverse();  //逆置
        System.out.println(sb);

        sb.setCharAt(3,'王'); //修改
        System.out.println(sb);

        sb.insert(4,'一').insert(5,'博');
        //链式调用。 核心就是: 该方法调用了return this  把自己返回了

        sb.delete(20,23);
        System.out.println(sb);


    }
}

String和StringBuffer的比较(时间和空间方面)

package SHUZU.String;
/*
       测试可变字符序列和不可变序列使用的陷阱
 */
public class trap {
    public static void main(String[] args){

        /*使用String进行字符串的拼接*/
         String str1 = new String();
         long num1 = Runtime.getRuntime().freeMemory();//获取系统剩余内存空间
         long time1 = System.currentTimeMillis();
         for(int i = 0;i < 5000; i++){
             str1 = str1 + i;  //相当于产生了10000个对象   太耗时耗空间了
                              // 因为str1是一个字符串,i也要转成一个字符串进行字符串拼接,再生成一个新的字符串
         }
         long num2 = Runtime.getRuntime().freeMemory();
         long time2 = System.currentTimeMillis();
         System.out.println("String 占用内存: " +(num1 - num2));
         System.out.println("String 占用时间: "+(time2-time2));

         //使用StringBuffer拼接,省时,每次添加在原字符串后面,没有产生新对象
        long num3 = Runtime.getRuntime().freeMemory();//获取系统剩余内存空间
        long time3 = System.currentTimeMillis();
        StringBuffer str2 = new StringBuffer();
         for(int i = 0;i<5000;i++){
             str2.append(i);
         }
        long num4 = Runtime.getRuntime().freeMemory();
        long time4 = System.currentTimeMillis();
        System.out.println("StringBuffer 占用内存: " +(num3 - num4));
        System.out.println("StringBuffer 占用时间: "+(time4-time3));


    }
}

运行效果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值