Java基础13(StringBuilder和StringBuffer 包装类)

目录

一. StringBuilder和StringBuffer

扩容机制:

链式操作:

一些方法:

区别:

StringBuilder拼接:

小结:

二. 包装类

创建对象:

自动装箱:

自动拆箱:

缓存池:

进制转换:

 一些常量:

小结:


一. StringBuilder和StringBuffer

String类的特点:任何的字符串常量都是String对象,而且String的常量一旦声明不可改变,如果改变对象内容,改变的是其引用的指 向而已。

Java标准库提供了StringBuilder,它是一个可变对象,可以预分配缓冲区,这样,往StringBuilder中新增字符时,不会创建新的临时对象:

●String不可变字符串
●StringBuilder可变字符串

public static void main(String[] args) {
////String不可变字符串
//StringBuilder可变字符串
//StringBuilder(); 无参构造创建,初始化数组char[]的容量为16,扩容<<1+2容量够,则直接返回newCapcity ,如果扩容后容量不够newCpacity = minCpacity
//StringBuilder(容量); 初始化容量为指定容量的char[]数组
//StringBuilder(str); super(str.length() + 16);
		StringBuilder sb = new StringBuilder("我爱学习");
		for (int i = 0; i < 100; i++) {
			// 追到到末尾
			sb.append(i).append(",");
		}
		// insert追加内容到指定位置
		sb.insert(0, "你好");

		String str = null;// StringBuilder可以追加null
		sb.append(str);
		System.out.println(sb);
	}

扩容机制:

见 StringBuilder与StringBUffer扩容机制

链式操作:

如果我们查看StringBuilder的源码,可以发现,进行链式操作的关键是,定义的append()方法会返回this,这样,就可以不断调用自身的其他方法。

一些方法:

●replace(start, end, str)  替换指定区间的字符串

StringBuilder sb = new StringBuilder("还是想考研");
//  replace(start, end, str)  替换指定区间的字符串
		sb.replace(0, 1, "zkt");
		System.out.println(sb);// zkt是想考研

●reverse() 反转

//	反转
		StringBuilder sb = new StringBuilder("还是想考研");
		sb.reverse();
		System.out.println(sb);// 研考想是还

●delete(起始,结束)::删除从start(包含)到end(不包含)位置的字符,start为0~length-1,end可以超出长度。

sb.delete(4, 8);

●deleteCharAt(下标):删除某个索引位置上的字符,index不能越界

sb.deleteCharAt(5);

细节:

由于StringBuilder和StringBuffer没有重写equals方法,所以还是使用的Object的equals方法。对比的是两个对象的地址是否相等。为了比较StringBuilder和StringBuffer字符串内容是否相等,需要先将其转换为string,String 由于重写了equals方法,所以使用equals函数是对比两个字符串内容是否相等。

StringBuilder sb1 = new String
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯诺依曼转世

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值