您的位置:首页 > 编程语言 > Java开发

Java学习记录|String字符串类

2020-03-28 20:15 477 查看

String、StringBuffer、StringBuilder区别

  • 字符串存储方面(内存里面JDK9之前用char数组存储,JDK9里面用byte数组存储):
    String
    StringBuffer和StringBuilder
  • String字符串不能修改数值,StringBuffer和StringBuilder可创建被修改的字符串
  • StringBuffer线程安全,但性能略低;StringBuilder线程不安全但性能高一点

String、StringBuffer、StringBuilder代码相关

  • String类

一旦被赋值,不能被修改(引用可被改)

public static void main(String[] args) {
String s="admin";
s="control";//字符串指向了新的引用
}
  • StringBuffer类

(Java.lang下的包不需要引入,默认其下的类都可直接使用)
字符串可被修改

public static void main(String[] args) {
StringBuffer s1=new StringBuffer("abcde");//字符串可以被修改
s1.append("fgh");//append追加
System.out.println(s1);
}//s1=abdcdefgh

用String方法也可以有同样效果实现

public static void main(String[] args) {
String s1="abcde";//字符串可以被修改
s1+="fgh";
System.out.println(s1);
}

StringBuffer中的链式编程
调用append方法返回的还是StringBuffer本身,链条一样追加。

public static void main(String[] args) {
StringBuffer s1=new StringBuffer("abcde");
s1.append("fg");//append 方法
s1.append(1).append(222);//调用append方法返回的还是stringbuffer自身,链式编程法
System.out.println(s1);
}//输出abcdefg1222

StringBuffer中的其他方法
delete()删除

public static void main(String[] args) {
StringBuffer s2=new StringBuffer("123455");
System.out.println(s2.capacity());
s2.delete(1,3);//从索引0开始,删除第1和2个索引对应的数字
System.out.println(s2);
}//输出1455

insert()插入

public static void main(String[] args) {
StringBuffer s2=new StringBuffer("123455");
System.out.println(s2.capacity());
s2.insert(3, "www");
System.out.println(s2);//输出123www455
}

subsequence()截取
repalce()替换

拓展:
StringBuffer有初始容量,初始字符串越大,初始容量越大。
当容量满了之后,会申请更大的内存区域,一般是原来的二倍,会把原来的数据复制,存新的数据,字符串指向新生成的空间。
容量转换的时候需要费时间
获得容量大小用capacity()方法,当初始字符串扩大到16个字符以上,输出自动扩容

public static void main(String[] args) {
StringBuffer s1=new StringBuffer();
System.out.println(s1.capacity());//获取当前容量
}//输出16

也可最开始指定容量大小

public static void main(String[] args) {
StringBuffer s2=new StringBuffer(100);//指定容量大小
System.out.println(s2.capacity());//获取当前容量
}
  • StringBuilder类
    StringBuilder构造方法和StringBuffer一样

学习来源:bilibili【siki学院】

  • 点赞
  • 收藏
  • 分享
  • 文章举报
nanali_lili 发布了15 篇原创文章 · 获赞 0 · 访问量 267 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: