超牛牪犇Java之StringBuffer和StringBuilder&基本数据类型的包装类

一.StringBuffer和StringBuilder

(StringBuffer和StringBuilder的方法是一样的)

StringBuffer:

JDK1.0出来的 优点:线程安全 缺点:耗费系统资源

StringBuilder:

JDK1.5出来的 优点:节省系统资源 缺点:线程不安全了

(StringBuffer和StringBuilder都是可变的字符序列--修改的是对象本身)

操作StringBuffer的方法 一般是没有返回值的

String:

线程不安全 不可变的字符序列 不能修改字符串本身

----------------------------------分隔符---------------------------------------

常见的方法:

1.拼接:

把int array= new int[]{1,2,3,4};输出成[1,2,3,4]

int[] array = new int[]{1,2,3,4};
		StringBuffer sb = new StringBuffer();
		sb.append("[");
		for (int i = 0; i < array.length; i++) {
			if (i == array.length - 1) {
				sb.append(array[i]).append("]");
			}else {
				sb.append(array[i]).append(",");
			}
		}
		System.out.println(sb);
 	}

2.插入:insert(插入的位置的下标,插入的元素)

3.删除:(留头不留尾)

如果delete传入的结束坐标大于字符串的长度 相当于清空字符串

StringBuffer stringBuffer = new StringBuffer();
		stringBuffer.append("qwertyu");
		//删除 留头不留尾
		stringBuffer.delete(0, 4);
		//传入的结束坐标 > 字符串的长度 相当于清空字符串
		System.out.println(stringBuffer);
		stringBuffer.deleteCharAt(2);
		System.out.println(stringBuffer);
		//获取stringBuffer中的字符
		char c = stringBuffer.charAt(1);
		System.out.println(c);
		//字符数组 转化成stringBuffer对象
		char[] array = {'a','b','c'};
		String string  = String.valueOf(array);
		StringBuffer sb = new StringBuffer(string);
		System.out.println(sb);
4.反转: reverse方法

5.替换: replace方法

6.String和StringBuffer的转换:

//创建一个StringBuffer对象
		StringBuffer sb = new StringBuffer();
		//默认容量是16
		System.out.println(sb.capacity());//打印结果:16
		//长度
		System.out.println(sb.length());//打印结果:0
		//拼接
		StringBuffer buffer = sb.append("qwertyu");
		System.out.println(buffer.toString());
		//StringBuffer转换成字符串类型
		String string = sb.toString();
String和StringBuffer和StringBuilder这三个操作字符串的类作为参数时的不同效果:
public static void fun1(String str) {
		str = "swift";
	}
	public static void fun2(StringBuffer sb) {
		sb.append("swift");
	}
	public static void fun3(StringBuilder sb) {
		sb.append("swift");
	}
	public static void main(String[] args) {
		//字符串在当参数时 和基本数据类型一样 值传递
		//基本数据类型的包装类
		String string = "Taylor";
		fun1(string);
		System.out.println(string);
		//相当于传进去的是 对象地址
		StringBuffer sb = new StringBuffer("Taylor");
		fun2(sb);
		System.out.println(sb);
		
		StringBuilder sBuilder = new StringBuilder("Taylor");
		fun3(sBuilder);
		System.out.println(sBuilder);
	}

二.基本数据类型的包装类

基本数据类型        包装类

byte Byte

short Short

int  Integer

long Long

float Float

double         Double

boolean         Boolean

char Character

包装类的作用:

有类就可以增加成员方法 静态方法

可以将功能进行拓展

创建包装类对象

                //创建一个Integer
		Integer n1 = new Integer(10);
		//转化成数字(转成什么类型就用.数据类型value方法)
		int i = n1.intValue();
		System.out.println(i);

JDK1.5以后可以 自动装箱和自动拆箱

直接用数字来声明(实际上系统是帮你调用了一个方法:Integer.valueOf(10))

Integer n2 = 10;

进行运算时 系统会自动拆箱(自动帮你调用了n2.intValue()方法)

int sum = n2 + 5;
System.out.println(sum);

tip:

                //如果值在[-128,127]之间 
		//实际上是从系统已经创建好的数组 取一个值给你
		//超过了这个范围 会新建一个对象给你
		//所以下面的两个对象 地址不同
		Integer num1 = 128;
		Integer num2 = 128;
		System.out.println(num1 == num2);
		System.out.println(num1.equals(num2));

猜你喜欢

转载自blog.csdn.net/enchantedlll/article/details/80356992