1 String字符串
底层代码
底层都是采用数组实现的
- 字符串一旦定义就不可以改变
String str = "1234";
System.out.println(str.hashCode());//1509442
str = "33";
System.out.println(str.hashCode());//1632
常用方法
1. charAt()
String str = "zhaodi";
str.charAt(3);// o
2. indexOf()
str.indexOf('z');//0
3. equals()
比较的字符串的值是否相等,不比较hashcode了,string已经重写了这个方法
4. subString()
截取字符串
5. replace()
替换
str.replace('o','e');
6. split()
分割
String a = "dd,ff,g";
String [] result = a.split(",");
7. trim()
去掉首位的空格
8. equalsIgnoreCase()
比较是否相等,忽略大小写
9. startWith()
10. toLowerCase()
2 StringBuilder,StringBuffer
- 可变的字符序列,string是不可变的
- StringBuilder是线程不安全,但是效率高
- StringBuffer是线程安全,效率低
从下面的例子看出字符串的值可以被改变的
StringBuilder sb = new StringBuilder();// 字符数组初始化大小16
StringBuilder sb = new StringBuilder(32);// 字符数组初始化大小32
StringBuilder stringBuilder = new StringBuilder("zhao");//字符数组初始化大小32,value[]={'z','h','a','o','u0000',....}
System.out.println(stringBuilder.hashCode()); //366712642
stringBuilder = stringBuilder.append("zhao");//追加字符串
System.out.println(stringBuilder.hashCode());//366712642
常用方法
1.append()
追加
2. delete(fromIndex,lastIndex)
删除字符串,从哪里删除到哪里
3. reverse()
反转
3 包装类
概念
-
我们在实际使用中经常需要将基本数据转化成对象,便于操作,比如:集合的操作
-
8种,int(Integer),float(Float),double(Double),Char (Character)等
-
提供字符串,基本数据类型,对象之间的相互转换
4 装箱,拆箱
- 装箱:基本数据类型转化到对应的对象类型
- 拆箱:相反