String与StringBuffer以及StringBuilder的异同点
来源:互联网 发布:c 遍历二维数组 编辑:程序博客网 时间:2024/05/16 07:49
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。
1.String
String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的,也就可以理解为常量,显然线程安全。
private final char value[];
通过api可以知道,他的常用方法有。
1.length() 获取字符串的长度2.charAt(index) 截取索引为index的一个字符3.getChars(start,end,[],,char target[],int targetStart) 截取多个字符转化为新的数组。4.toCharArray()5.getBytes()6.equals()和equalsIgnoreCase() 比较两个字符串7.regionMatches(boolean ignoreCase,int startIndex,String str2,int str2StartIndex,int numChars) 比较两个字符串的特定区域,并确定是否忽略大小写。8.startsWith()和endsWith() startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束。9.equals()和==。equals用于比较字符串是否相同。==用于判断是否为同一个字符串10.indexOf() 查找字符或者子串第一次出现的地方11.lastIndexOf() 查找字符或者子串是后一次出现的地方。12. substring(int startIndex,int endIndex);后者可缺省,用于截取字符串。13. replace(char original,char replacement),replaceAll(char original,char replacement),字符串替换14. trim() 去掉起始和结尾的空格15. valueOf() 转换为字符串16. insert(int index,String str)插入字符串
2.StringBuffer
StringBuffer可以认为是线程安全的字符串变量。如果你打开StringBuffer的源码看一看就会发现他的所有方法都是这个样子的。
是的,synchronized关键字。这意味着什么呢。对于线程来说这个关键字的作用就是让该方法在线程里面排队进行。而改类所有方法都有该关键字修。说明当有一个方法在线程内运行。其他线程就不能调用他的所有方法。因此线程安全。
再来看看他的构造方法吧
public StringBuffer(String str) { super(str.length() + 16); append(str); }
阅读全文
0 0
- String与StringBuffer以及StringBuilder的异同点
- String、StringBuffer、StringBuilder的异同点
- String、StringBuffer、StringBuilder的异同点
- String,StringBuffer与StringBuilder的异同
- String 、StringBuffer 与StringBuilder的异同
- StringBuilder,String与StringBuffer 的异同
- String,StringBuffer与StringBuilder的异同
- String,StringBuffer,StringBuilder的异同
- String与StringBuffer的异同点
- StringBuffer与StringBuilder的异同
- String与StringBuffer以及StringBuilder的区别
- String与StringBuilder以及StringBuffer的比较
- String StringBuffer StringBuilder 异同
- String,StringBuffer和StringBuilder的异同
- String、StringBuffer 和StringBuilder的异同
- String,StringBuilder和StringBuffer的异同
- String、StringBuffer及StringBuilder的异同
- String,StringBuffer,StringBuilder之间的异同
- 看源码,加深理解---(零)String#equals(Object)
- MySQL 5.7 免安装版配置
- ConcurrentHashMap总结
- TensorFlow softmax VS sparse softmax
- HSV颜色空间中的肤色检测
- String与StringBuffer以及StringBuilder的异同点
- leetcode:561. Array Partition I
- 编码,UTF8,UNICODE
- OpenCV2编程手册笔记之 4.3查找表修改图像外观
- JavaScript排序方法
- Linus实验楼笔记——第12节:数据流重定向
- C#--虚方法的使用
- Java数组中常见的面试题
- 性能优化1-内存泄漏