324学习日记(String 和StringBuffer定义的字符串的区别、StringBuffer对象定义的字符串实现字符串反转操作、StringBuilder和StringBuffer的区别、

标题.append:("charSequence").append(" AutoCloseable接口").append("Runtime类 ").append("")

String 和 StringBuffer的区别:

String:

public class demo324{
    public static void main(String[] args) {
        String message="hxw";
        change(message);
        System.out.println(message);
    }
    public static void change(String s){
      s+="handsome";
    }
}

执行结果:

hxw

StringBuffer:

public class demo324{
    public static void main(String[] args) {
        StringBuffer buffer=new StringBuffer();
        buffer.append("hxw").append("aodi").append("rs7");
        change(buffer);
        System.out.println(buffer);
    }
    public static void change(StringBuffer s){
        s.append("he is").append("car");
    }
}

执行结果:

hxwaodirs7he iscar
 

对比之下可以看出,String 声明后无法改变值,而通过StringBuffer的对象存的字符串可以通过append()方法随意在后面加字符串。

StringBuffer对象定义的字符串实现字符串反转操作:(特色操作)

public class demo324{
    public static void main(String[] args) {
        StringBuffer buffer=new StringBuffer(32);//这个capacity是形容可以容纳多少个字符串,默认值是16,调用append方法时会自动增加。这就是可以改变字符串长度的原因。
        buffer.append("hxw ").append("'s ").append("car is ").append("aodi RS7");
        System.out.println(buffer.reverse());//因为通过StringBuffer源代码可以发现,保存形式为Byte[],所以调用reverse方法进行反转操作。
    }
}

执行结果:

7SR idoa si rac s' wxh

StringBuffer中的insert方法:insert(offse,数据类型); //offset指的是索引位置。

public class demo324{
    public static void main(String[] args) {
        StringBuffer buffer=new StringBuffer(32);//这个capacity是形容可以容纳多少个字符串,默认值是16,调用append方法时会自动增加。这就是可以改变字符串长度的原因。
        buffer.append("hxw ").insert(0,"'s car is aodiRS7");
        System.out.println(buffer);//因为通过StringBuffer源代码可以发现,保存形式为Byte[],所以调用reverse方法进行反转操作。
    }
}
执行结果:
's car is aodiRS7hxw 

类似方法还有replace(索引开始位置,索引结束位置);替换方法,

还有delete(索引开始位置,索引结束位置);删除方法。

String中有常量池、运行常量池、静态常量池。其实更实用。

StringBuilder和StringBuffer的区别 

 

StringBuilder: 

 

 

 StringBuffer:

 

总结:StringBuilder和StringBuffer的区别在于多线程实现的时候,同步处理(synchronized)的问题。在多线程实现代码中用StringBuffer,单线程的话两个都可以使用。

charSequence

String StringBuffer StringBuilder之间的关系,都用共同父类charSequence。 

 

 

转换示例代码:

AutoCloseable接口

实现自动关闭服务器连接的接口,里面有抽象方法close();

 示例代码:

 

 

 

 

Runtime类

 每一个JVM的进程总都会自动包含一个Runtime类的实例化对象。他可以直接操作电脑所装的操作系统中的内部函数。(相当于直接在控制台操作)

 

 System类:

观察以下操作:

 System类中的方法很多都是调用的Runtime类中的方法,比如说下面的exit()和gc();他们的效果其实都是一样的。

 

public class demo324{
    public static void main(String[] args) throws Exception {
        if(args.length!=2){//通过线程接受初始化参数
            System.out.println("hxw");
            System.exit(1);
        }
        String message=args[0];//获取第一个参数内容
        int count=Integer.parseInt(args[1]);//循环次数
        for(int x=0;x<count;x++){
            System.out.println(message);
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值