buffer java_Java学习之buffer

1.类介绍

①线程安全的可变字符串序列,一个类似于String的字符串缓冲区,但是不能修改(就是不能通过加号+连接,String就可以)

②StringBuffer和String类的区别

String是一个可改变的字符序列

StringBuffer是一个可变的字符序列

2.构造方法

StringBuffer() 构造一个没有字符的字符串缓冲区,初始容量为16个字符

StringBuffer(int capacity) 构造一个没有字符的字符串缓冲区和指定初始容量

StringBuffer(CharSequence seq) 构造一个字符串缓冲区,其中包含与指定的 CharSequence相同的字符。

StringBuffer(String str) 构造一个初始化为指定字符串内容的字符串缓冲区。

notes:

从jdk5开始,为该类补充了一个单个线程使用的等价类,即StringBuilder类,通常优先使用StringBuilder类,因为他支持所有相同操作,但是由于它不执行同步,所有速度更快

3.增删,替换翻转,截取()

StringBuffer sb = new StringBuffer("abcd");

①添加

sb.append("str12");//在末尾添加一个字符串

sb.insert(3,"hhh");//在指定位置添加指定字符串

②删除

sb.deleteCharAt(3);//删除指定1位置的字符 并返回本身

sb.delete(1,3); //左闭右开

③清空缓冲区

sb.delete(0,sb.length());

④替换

sb.replace(0,3,"bai")// 包含头不包含尾

⑤翻转

sb.reverse();

⑥截取

sb.substring(int start)//从指定位置截取到末尾

sb.substring(int start,int end)//从指定位置开始到结束位置,包括开始位置,不包括结束位置

// 截取 返回值不再是StringBuffer而是String

Java初高级一起学习分享,共同学习才是最明智的选择,喜欢的话可以我的学习群64弍46衣3凌9,或加资料群69似64陆0吧3

4.StringBuffer --> String

String --》 StringBuffer

a.通过构造方法

StringBuffer stringBuffer = new StringBuffer("woai");

System.out.println(stringBuffer); // 通过构造方法完成转换成String

b.通过append()方法

StringBuffer stringBuffer = new StringBuffer();

stringBuffer.append("woai");

System.out.println(stringBuffer); // 通过append()方法完成转换成String

StringBuffer --》 String

StringBuffer sb = new StringBuffer("woai1");

a.通过构造方法

String s = new String(sb); // 通过构造方法

System.out.println(s);

b.通过toString()方法

String string = sb.toString(); //通过toString()方法

System.out.println("string = " + string);

c.通过subString(0,length);

String substring = sb.substring(0, sb.length());

System.out.println(substring);

5.数组 --> 字符串

举例:

int [] arr = {1,2,3,};

输出结果:

"[1,2,3]"

用StringBuff的功能实现:

int[] arr = {1, 2, 3};

StringBuffer stringBuffer = new StringBuffer();

stringBuffer.append("[");

for (int i = 0; i < arr.length; i++) {

if (i == arr.length - 1) {

stringBuffer.append(arr[i]).append("]");//使用这样的添加方式会减少垃圾的存在

}else {

stringBuffer.append(arr[i]).append(",");

}

}

System.out.println(stringBuffer);

6.字符串翻转

通过StringBuffer进行翻转

7.StringBuffer和StringBuilder区别

StringBuffer是jdk1.0版本的,是线程安全的,效率低的 (对于用户访问量大的bat 保证其稳定性,对于金融要求,保证其稳定,其他都不存在)

StringBuilder是jdk1.5版本的,是线程不安全的,效率高的

String和StringBuffer,StringBuilder的区别

String是一个不可变的字符序列

StringBuffer,StringBuilder是可变的字符序列

8.String和StringBuffer作为参数传递

基本数据类型的值传递,不改变其值

引用数据类型的值传递,改变其值//因为传递的是内存地址,

String s = "heihei";

System.out.println(s);

change(s);

System.out.println(s);//heihei

System.out.println("------------------");

StringBuffer sb = new StringBuffer();

sb.append("hhhhhh");

change(sb);

System.out.println("sb = " + sb);// heiheihhhhhh

9.数组-冒泡,选择,二分排序

(1)冒泡

// 数据元素:{24,69,80,57,13}

相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处

(2)选择

(3)二分排序

10.Arrays类

11.Interger类

12.String --> int

13.Interger面试题

❤提问/互动请留言,可直接在最底右下方"写留言即可"

❤如果觉得写得不错请点击“订阅”,每天更新全新的内容!

❤你们的喜欢和关注就是我最大的动力支撑!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值