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学院】
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- JAVA学习记录 -- String
- 09-27-2019学习记录(P447-P477)-Java常用类String和Date-字符串操作代码
- 黑马程序员-java学习之String字符串类
- [学习笔记]Java字符串类String
- 黑马程序员—java基础学习--String字符串类,基本数据类型包装类
- Java学习之字符串类String(一)
- java学习记录(五):关于String和StringBuffer的区别
- Java学习笔记37. 字符串类(String)的比较方法
- java记录学习-String 强制转化int
- Java中的String、StringBuffer和Math类--学习java语言及其网络应用总结
- JNI学习笔记4——本地代码创建Java对象(包括javaString)
- Java Oracle 学习之 便筏记录
- java学习笔记5_HelloWorld 和 public static void main(String[] args)
- 黑马程序员_Java学习日记_JAVA中API中对象String和StringBuffer/StringBuilder
- 从Delphi向Java的转变,准备记录java的学习过程
- Java学习拾遗2--由String str=”abc”引出的故事
- java学习笔记-String 和StringBuffer
- 黑马程序员Java培训、Android培训-Java 学习过程记录_JavaAPI-1
- Java.lang 包——字符串类 (String, StringBuffer)
- Java与C#的比较学习记录(1)