java_se StringBuffer
来源:互联网 发布:淘宝兼职被骗天涯论坛 编辑:程序博客网 时间:2024/06/05 19:56
1 StringBuffer:线程安全的可变字符序列
2面试题:
* StringBuffer和String 的区别?
* StringBuffer会构造一个字符串缓冲区,从内存角度考虑,一般情况使用StringBuffer比较多(在单线程程序中使用StringBulider替代
* StringBuffer:线程不安全,单线程单纯为了提供执行效率!)
* String:普通的一个字符串,从内存角度考虑,耗费空间!
*3 StringBuffer的构造方法:
* public StringBuffer ()构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符
* public StringBuffer(int capacity)构造一个不带字符,但具有指定初始容量的字符串缓冲区
* public StringBuffer(String str)
* 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。该字符串的初始容量为 16 加上字符串参数的长度。
*
* 4 常用的功能:
* public int length():获取字符串长度数
* public int capacity():获取当前字符串缓冲区的容量
5StringBuffer中的和添加有关的方法
* public StringBuffer append(int/String/char/boolean/double/float….):当前这个方法追加,给缓冲中追加数据,返回字符串缓冲区本身(经常使用的)
* public StringBuffer insert(int offset,String str):在某一个位置处去插入str这个字符串,返回字符串缓冲区本身(返回追加之后的) 注意当插入的数字不存在是就会出现StringIndexOutOfBoundsException
6StringBuffer的删除功能:
* public StringBuffer deleteCharAt(int index):删除指定位置处的字符,返回的是字符串缓冲区本身!
* public StringBuffer delete(int start,int end):删除从指定位置开始到指定位置结束的字符,返回的是字符串缓冲区本身!
* 7StringBuffer的反转功能:
* public StringBuffer reverse():将此字符串中的字符序列直接反转
* 8StringBuffer的替换功能:
* public StringBuffer replace(int start, int end,String str)
* 从指定位置开始到指定位置结束的字符用str子字符串去替代
* 注意:这个不用担心str比要替换的数目多,就是一定可以成功
* 9StringBuffer的截取功能:
* public String substring(int start):从指定位置默认截取到末尾,返回值是一个新的字符串
* public String substring(int start,int end):从指定位置开始截取到指定位置结束,包前不包后,返回一个新的字符串
*10String和StringBuffer作为形式参数
看完整代码
public class StringBufferDemo7 { public static void main(String[] args) { //定义两个字符串 String s1 = "hello" ; String s2 = "world" ; System.out.println(s1+"---"+s2);//hello---world change(s1,s2) ; System.out.println(s1+"---"+s2);//hello---world //定义两个字符串缓冲区对象 StringBuffer sb1 = new StringBuffer("hello") ; StringBuffer sb2 = new StringBuffer("world") ; System.out.println(sb1+"---"+sb2);//hello---world change(sb1,sb2); System.out.println(sb1+"---"+sb2);//hello---worldworld //缓冲区是不变 } public static void change(StringBuffer sb1 ,StringBuffer sb2){ sb1 = sb2 ; //缓冲区不变"world" sb2.append(sb1) ;//worldworld } public static void change(String s1,String s2){ s1 = s2 ; s2 = s1 + s2 ; }}说明:String作为形式参数和基本类型是一样的,StringBuffer 分情况1 如果是=赋值的,则不会影响实参,如果是其它对于缓冲区操作的都会改变实参的
11面试题:
* String,StringBuffer,StringBuilder的区别?
*
* String:一个不可变的字符序列,StringBuffer:和StringBuilder是可变的不安全字符序列,在单个线程时候的时候(优先采用StringBuilder)
* 从线程角度考虑:
* StringBuilder线程不安全,不同步,执行效率高!它比StringBuffer要快!
- java_se StringBuffer
- 【JAVA_SE学习笔记】String、StringBuffer和StringBuilder
- JAVA_SE基础——64.StringBuffer类 ①
- JAVA_SE基础——65.StringBuffer类 ②
- JAVA_SE基础——66.StringBuffer类 ③
- java_se 多态
- java_se 接口
- java_se Object
- Java_SE笔记_1
- Java_SE培训笔记
- Java_SE 第二次培训记录
- JAVA_SE ----- 基础知识总结-----反射
- JAVA_SE-----基础知识总结-----多线程
- 【JAVA_SE】10.1作业
- 【JAVA_SE】作业练习1016
- 【JAVA_SE】作业练习1021
- 【JAVA_SE】作业练习1022
- java_se 匿名内部类
- SSM环境下,获取指定数据库连接执行sql文件
- 【转】html 页面内锚点定位及跳转方法总结
- 虽然微不足道但是很有用的JAVA基础—线程一
- 类--对私有变量、私有方法的理解
- jboot
- java_se StringBuffer
- 计算机视觉三大顶级国际会议和国外知名期刊投稿
- os模块
- 【Java笔记】Week05 --- 常用类
- java7.5
- PHP操作MongoDB时的整数问题及对策说明
- kylin从入门到实战:实际案例
- 手把手生教你成决策树
- Android studio 无法创建Android项目解决办法