StringBuffer
StringBuffer(字符串缓冲区)
JDK 1.5 的 StringBuilder(线程不安全 省资源)
StringBuffer 的特点 :
1. StringBuffer 相当于 是一个 可变的序列(操作的是原字符串)
2. 是线程安全 (耗费资源)
/**
* 无参创建StringBuffer
*/
public static void fun1() {
StringBuffer sb = new StringBuffer();
System.out.println(sb.capacity());
System.out.println(sb.length());
System.out.println(sb.toString());
StringBuffer sb1 = sb.append("wanglong").append(">??");
System.out.println(sb);
System.out.println(sb1);
}
public static void fun2() {
StringBuffer sb = new StringBuffer("wanglong");
sb.insert(3, false);
System.out.println(sb);
sb.setCharAt(3, 'k');
System.out.println(sb);
char c = sb.charAt(7);
System.out.println(c);
sb.toString().toCharArray();
}
public static void fun3() {
StringBuffer sb = new StringBuffer();
sb.append("wanglong");
System.out.println(sb);
System.out.println(sb);
sb.reverse();
System.out.println(sb);
}
public static void fun4() {
System.out.println("请输入一个字符串 : ");
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine();
StringBuffer stringBuffer = new StringBuffer(string);
stringBuffer.reverse();
System.out.println(stringBuffer.toString());
}
/*
* 需求
* 把int[] array = new int[]{1,2,3,4};
* 输出 [1, 2, 3, 4];
* 要求:使用两种方法(String 和 StringBuffer)
*/
int[] array = new int[]{1,2,3,4};
public static void fun5(int[] array) {
int[] array = new int[]{1,2,3,4};
String string = "[";
for (int i = 0; i < array.length; i++) {
if (i < array.length -1) {
string = string + array[i] + "," ;
}else {
string = string + array[i] + "]";
}
}
System.out.println(string);
}
public static void fun6() {
int[] array = new int[]{1,2,3,4};
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("[");
for (int i = 0; i < array.length; i++) {
if (i != array.length -1) {
stringBuffer.append(array[i]).append(",");
}else{
stringBuffer.append(array[i]).append("]");
}
}
System.out.println(stringBuffer);
}
public static void fun7() {
StringBuffer sb = new StringBuffer();
sb.append("wanglong");
System.out.println(sb);
String substring = sb.substring(0, 4);
System.out.println(substring);
}
public static void fun8(String string) {
string = "wangsong";
}
public static void fun9(StringBuffer sBuffer) {
sBuffer.append("znb");
}
public static void fun10(StringBuilder stringBuilder) {
stringBuilder.append("haha");
}
public static void main(String[] args) {
String string = "wanglong";
fun8(string);
System.out.println(string);
StringBuffer sBuffer = new StringBuffer("wanglong");
fun9(sBuffer);
System.out.println(sBuffer);
StringBuilder stringBuilder = new StringBuilder("wanglong");
fun10(stringBuilder);
System.out.println(stringBuilder);
}
总结:
StringBuffer 和 StringBuilder 区别
StringBuffer 线程安全 效率低(耗费系统资源)
StringBuilder 线程不安全 效率高(相对于StringBuffer耗费资源少)
StringBuffer 和 StringBuilder使用方法一样
String 和 StringBuffer 的区别
String 是不可变的 线程不安全的
StringBuffer 是可变的 操作的是对象本身
基本数据类型 的 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
为什么要把基本数据类型 封装成一个类?
在类中可以声明方法 可以使用对象调用方法
Integer 类
public static void fun1() {
Integer integer1 = new Integer(10);
System.out.println(integer1);
Integer integer2 = new Integer("100");
System.out.println(integer2);
int a = 60;
System.out.println(Integer.toBinaryString(a));
System.out.println(Integer.toOctalString(a));
System.out.println(Integer.toHexString(a));
Integer num1 = Integer.valueOf(10);
int num2 = num1.intValue();
Integer num3 = Integer.valueOf("100");
String string3 = num3.toString();
int num4 = Integer.parseInt("100");
}
public static void fun2() {
Integer num1 = 10;
int rel = num1 + 5;
System.out.println(rel);
}
public static void main(String[] args) {
Integer num1 = 127;
Integer num2 = 127;
System.out.println(num1 == num2);
System.out.println(num1.equals(num2));
}
权限修饰符
修饰符类型 | 本类 | 同包类 | 同包子类 | 不同包类 | 不同包子类 |
---|
public | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
private | ✔️ | ❌ | ❌ | ❌ | ❌ |
protected | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
default | ✔️ | ✔️ | ✔️ | ❌ | ❌ |