1,StringBuffer
线程安全的可变字符序列.
一个类似于string的字符串缓冲区,但不能修改.
虽然在任意时间点上他都包含某种特定的序列,但通过某些方法的调用可以改变该序列的长度和内容
可在字符串缓冲区安全的应用于多个线程
构造方法
StringBuffer s = new StringBuffer();
//构建一个不带字符的字符串缓冲区,初始容量16
StringBuffer s1 = new StringBuffer("fengrenji");
//构建一个指定初始化字符串内容的字符串缓冲区,容量25
StringBuffer s2 = new StringBuffer('a');
//构建一个不带字符,但有指定字符串缓冲区容量,容量97
StringBuffer s3 = new StringBuffer(10);
//构建一个不带字符,但有指定字符串缓冲区容量,容量10
System.out.println(s.capacity());
System.out.println(s1.capacity());
System.out.println(s2.capacity());
System.out.println(s3.capacity());
System.out.println(s1);
//stringbuffer可直接打印
16
25
97
10
方法
无返回的方法都是修改字符序列自身的,又返回的方法对自身不做改变
append(); append可添加多种数据类型,包括基本数据类型,
s.append(true).append('c').append(new char[5],1,4).append("end");
System.out.println(s.capacity());
s3.append(10).append("sssgggggggggg")
System.out.println(s3);
capacity(); 返回当前容量
System.out.println(s3.capacity());
charAt 返回次序列中指定所引出的char值
StringBuffer s1 = new StringBuffer("fengrenji");
System.out.println(s1.charAt(2));
delete(int begin, int end) deleteCharAt( index) 删除指定序列
StringBuffer s1 = new StringBuffer("fengrenji");
s1.delete(2,4);
System.out.println(s1);
s1.deleteCharAt(2);
System.out.println(s1);
indexOf(str); / indexOf(str , int) 根据字符串查找首位索引
s1.indexOf("gre");
System.out.println(s1);
s1.indexOf("e",3);
insert (int offset , str) 插入,同append添加一样,可插入多种数据类型,包括基本类型
但不似添加只能加在末尾,insert可以加在int offset 指定的不超出范围的任何位置
StringBuffer s1 = new StringBuffer("fengrenji");
s1.insert(2,"gre");
length() 返回长度,字符数
StringBuffer s1 = new StringBuffer("fengrenji");
s1.insert(2,"gre");
System.out.println(s1.length());
replace 替换
reverse反转
setCharAt(index , ch) 指定所引处的字符替换成ch字符
setlength() 设置字符序列的长度
subString () 返回新的字符序列,是当前字符的子序列,也就是不对此序列自身做处理
toString() 返回此序列中数据的字符串表现形式
Arrays
此类包含用来操作数组的各种方法,此类还包含一个允许将数组作为列表来查看的静态工厂
除非特别注明,否则如果指定数组引用为 null,则此类中的方法都会抛出 NullPointerException。
sort 排序binarySearch 二分法搜索
toString() 返回指定数组内容的字符串表现形式
int[] array = new int[] {5,9,1,4,6,2,};
Arrays.sort(array);
System.out.println(Arrays.toString(array));
int num = Arrays.binarySearch(array, 4);
System.out.println(num);
[1, 2, 4, 5, 6, 9]
2
基本数据类型类
基本数据类型 与 包装类
* 把基本数据类型封装一个对象
* 封装成一个对象好处
* 封装成一个类,类中就写成员方法
* int Integer
* short Short
* long Long
* byte Byte
* double Double
* float Float
* char Character
* boolean Boolean
Integer
构造方法
Integer(int value) int值创建 // Integer(str) string参数只是int值创建
Integer integer = new Integer(10);
Integer integer2 = new Integer("123");
Integer integer = new Integer(10);
//创建对象
System.out.println(integer);
//利用包装类,打印进制转换
System.out.println(Integer.toBinaryString(250));
System.out.println(Integer.toOctalString(250));
System.out.println(Integer.toHexString(250));
//用字符串创建
Integer integer2 = new Integer("123");
System.out.println(integer2);
//Integer转int类型
int num = integer2.intValue();
System.out.println(num);
//字符串类型转int
int parseInt = Integer.parseInt("100");
System.out.println(parseInt);
//1.5班后加了功能
//自动装箱
//自动拆箱
//注意系统帮你拆箱和装箱的过程,其实就是帮你调用转换的方法
Integer num1 = 10;
int rel = num1 + 5;
System.out.println(rel);
toBinaryString 二进制
toOctalString 八进制
toHexString 十六进制
intValue 以 int
类型返回该 Integer
的值
parseInt 将字符串参数作为有符号的十进制整数进行解析。
权限修饰符
* 1,public(公开的)
* 2,protect(受保护的)
* 3,default(默认的) 就是不添加修饰符
* 4private(私有的)
本类 | 同包类 | 同包子类 | 不同包子类 | 不同包类 | |
public | ✅ | ✅ | ✅ | ✅ | ✅ |
protect | ✅ | ✅ | ✅ | ✅ | ❌ |
default | ✅ | ✅ | ✅ | ❌ | ❌ |
private | ✅ | ❌ | ❌ | ❌ | ❌ |
*
String及常用API
1,String 是不可变对象,lang包中String使用final修饰不可继承,底层是字符数组与针对字符数组的算法实现
一经创建就不可修改,但可以重新赋值,一个字符对应两个字节码
2,indexOf(String str) indexOf(String str,int fromindex) int lastindexOf(String str)
在一个字符串中检索另一个字符串,返回首字符位置,当超出范围返回-1,
3 substring(int beginIndex) substring(int beginIndex, int lastIndex)
4trim() 去除字符串前后空白部分
5 charAt(int index) 返回字符串指定位置的字符
6 startsWith() endsWith() 是否以指定字符串开始结尾
7toLowerCase() toUpperCase() 大小写转换
8 String.valueOf() new String(123) 转换成字符串类型
StringBuilder 及其API
StringBuilder 可变的字符串
增append() 插入insert() 删delete() 替换replace() 反转reverse()
正则表达式
1字符集合
[a-z] a -z中任意一个字符
[^a-z]除a-z任意一个字符
[a-zA-Z0-9] 其中任意一个字符
[a-z&&[^bc]] a-z 出去bc后的任意字符一个
2预定义字符集
. 任意一个字符
\d 任意数字字符 相当于[0-9] \D 非数字字符相当于[^0-9]
\w 任意单词字符,相当于[a-zA-Z0-9] \W非单词字符
\s 空白字符 \S非空字符
3,数量词
X? 0个或1个
X* 0个或任意多个
X+ 1个或任意多个
X{n} n个 X{n,}n到任意多个 X{n,m} n到m个
split(正则表达式) 拆分字符串
replaceAll("正则表达式","String") 字符串 替换
Object
java继承结构中顶端类,所有类的父类Object,Object类的引用对象可以指向任何类型对象
重写toString
java语言中很多地方会默认调用对象的toString方法
字符串+ 对象 自动调用对象toString 方法
Sout(任意对象 ) 自动调用
如果不重写toString方法将默认继承使用Object类的toString方法 逻辑为 类名@哈希码
jdk的标准类库中很多类都重写了tpString方法
自定义类建议重写toString方法
重写equals方法