【高级特性】String,StringBuffer,StringBuilder
来源:互联网 发布:汇通网财经日历 数据 编辑:程序博客网 时间:2024/05/21 10:21
1.String
1.1 String的创建方式
常用创建方式:String str=”thisi is a string“
相同的字符串只创建一次,多个字符串常量可以同时对其内存空间引用。
不常用的创建方式:String str=new String(“this is a string”)
针对每一个字符串变量,栈内存都要开辟新的空间存储变量,即使变量是完全相同的。
1.2 String对象的特点:
- 对象是不可变的
- 类中每一个方法其实都是创建新的string对象(频繁的字符串拼接会频繁的创建内存空间,要尽量避免)
- String的只读特性带来效率优化的可能(尽量不要对string变量做修改)。要修改用StringBuffer StringBuilder
- 相同的字符串值只存一次
1.3 String常用的方法:
- length():返回字符串的长度
- charAt(int index):返回指定索引处的char值
- concat(String str):将指定字符串连接到本字符串的的末尾
- contains(CharSequence s):是否包含指定的字符串。返回一个布尔类型值,还可以 startWith(String str) endWith(String str)
- equals(Object anObject):.字符串值的比较(==用来比较两个字符串常量引用的地址),全等为零,区分大小写
- compareTo(String anString):字典顺序比较,不区分大小写
- indexof(String str):指定字符的索引,返回匹配子串的第一个字符的索引值
- split(String redex):从指定位置拆分,结果可能返回字符串数组
- substring(int beginIndex):截取字符串
- to Lower/UpperCase:大小写转换
1.4 String对象不适合做大量的修改操作
String对象一旦创建就不能改变,如果需要进行大量的字符串修改操作,会导致频繁的在内存里开辟新的空间。
应该使用StringBuffer或者StringBuilder或者字符数组,处理完再转换回String类型。
2 StringBuffer/StringBuilder
StringBuffer的特点
- 线程安全的可变字符序列
- 是一个类似于String的字符缓冲区(字符数组),通过某些方法调用,可以改变该序列的长度和内容
- 每个字符串缓冲区都有一定的容量,只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的缓冲区数组
- 如果内部缓冲区溢出,则此容量自动增大
StringBuilder的特点
与StringBuffer相比,在单个线程使用的时候,应优先使用StringBuilder。它支持StringBuffer的所有操作,但由于不执行同步,所以速度更快。
StringBuffer/StringBuilder的创建方式
与字符串对象不同的是,StringBuffer/StringBuilder需要用new关键字:
- StringBuilder sb=new StringBuilder() StringBuilder sb=new
StringBuilder(int capacity); StringBuilder sb=new
StringBuilder(String str);
StringBuffer/StringBuilder常用方法
- public int length() 返回存入的字符个数
- public int capacity() 返回字符数组的容量
- public StringBuffer append(String str) 添加字符串
- public StringBuffer insert(int offset,String str) 在指定位置插入字符串
- public int indexOf(String str) 查找字符串在字符数组中首次出现的下标
- public int indexOf(String str,int fromIndex) 从指定位置开始查找
- public int lastIndexOf(String str) 查找字符串在字符数组中最后一次出现的下标
- public StringBuffer reverse() 字符串反转
- public String toString() 把字符数组中的内容转换成字符串常量
0 0
- 【高级特性】String,StringBuffer,StringBuilder
- java高级特性之--String 、StringBuffer、StringBuilder
- 【学习总结】java高级特性之String、StringBuffer、StringBuilder
- 高级面试题-String-StringBuilder-StringBuffer 的区别
- String 、StringBuffer 和 StringBuilder
- String,StringBuffer,StringBuilder(转载)
- String、StringBuffer和StringBuilder
- String,StringBuffer,StringBuilder
- String、StringBuffer和StringBuilder
- String、StringBuffer和StringBuilder
- String StringBuffer StringBuilder
- String StringBuffer StringBuilder
- String StringBuffer StringBuilder
- String StringBuffer StringBuilder
- String ,StringBuffer ,StringBuilder问题
- String StringBuffer StringBuilder
- String StringBuffer StringBuilder 区别
- StringBuilder StringBuffer String
- 学习C的第十天
- springMVC3学习(4)--注解式控制器
- 位运算应用
- 数据和C(2)
- NoSQL学习笔记(二)之CAP理论
- 【高级特性】String,StringBuffer,StringBuilder
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- WebView
- docker安装(二)
- 博弈入门(由于属于不同的博客网无法转载还望见谅)
- 有代表性的并发服务器端模型
- tensorflow学习笔记(二十七):leaky relu
- [hash]Hashcat Example
- 剑指offer-----输出二叉树的后继节点(java版)