String
String类是一个不可变的字符序列,它可以表示一个文本信息。String类的常用方法有:
- length():返回字符串的长度,即字符的个数。
- charAt(int index):返回字符串中指定位置的字符,索引从0开始。
- indexOf(String str):返回字符串中第一次出现str的位置,如果没有找到,返回-1。
- lastIndexOf(String str):返回字符串中最后一次出现str的位置,如果没有找到,返回-1。
- substring(int beginIndex, int endIndex):返回字符串中从beginIndex到endIndex(不包含)的子字符串。
- replace(char oldChar, char newChar):将字符串中所有的oldChar替换为newChar,返回一个新的字符串。
- toLowerCase():将字符串中所有的大写字母转换为小写字母,返回一个新的字符串。
- toUpperCase():将字符串中所有的小写字母转换为大写字母,返回一个新的字符串。
- equals(Object obj):判断字符串是否和obj相等,区分大小写。
- equalsIgnoreCase(String str):判断字符串是否和str相等,不区分大小写。
- split(String regex):根据给定的正则表达式regex分割字符串,返回一个字符串数组。
ArrayList
ArrayList类是一个动态数组,它可以存储多个同类型或不同类型的数据。ArrayList类实现了List接口,所以它可以使用List接口的所有方法,如:
- add(E e):向列表的尾部添加指定的元素e。
- add(int index, E e):在列表的指定位置index插入指定元素e。
- get(int index):返回列表中指定位置index的元素。
- set(int index, E e):将列表中指定位置index的元素替换为e,并返回被替换的元素。
- remove(int index):移除列表中指定位置index的元素,并返回被移除的元素。
- remove(Object o):移除列表中第一次出现的指定元素o,如果成功移除,返回true,否则返回false。
- size():返回列表中元素的个数。
- isEmpty():判断列表是否为空,如果没有元素,返回true,否则返回false。
- contains(Object o):判断列表是否包含指定元素o,如果包含,返回true,否则返回false。
- indexOf(Object o):返回列表中第一次出现o的位置,如果没有找到,返回-1。
- lastIndexOf(Object o):返回列表中最后一次出现o的位置,如果没有找到,返回-1。
- clear():清空列表中所有元素。
- toArray():将列表转换为一个数组,并返回该数组。
ArrayList不能存储基本数据类型,需要转化为引用数据类型存储
Object
所有类默认继承的祖先类,提供的方法可供子类进行重写,如:
- public String toString():返回类的字符串表示形式
- public boolean equals(Object x):判断两个对象是否相等(输入eq+回车自动生成该方法)
- public Object clone():拷贝当前对象(分为浅拷贝,深拷贝,同C++ 输入clone+回车自动生成该方法)
使用clone()前需要实现标记接口Cloneable才能克隆对象(implements Cloneable)
浅拷贝:{super.clone();}
深拷贝:
{
Test t2 = (Test)super.clone();
t2.xxx = t2.xxx.clone();
return t2;
}
Objects
用来操作对象的工具类,类内均为静态方法,如:
- boolean equals(Object a,Object b):先做非空判断在比较两个对象(当对象a为null时使用方法会出错,这时可以使用Object.equals)
- boolean isNull(Object obj):判断对象是否为null 是则返回true
- boolean nonNull(Object obj):与上面相反
- 2,3均可用x == null代替
包装类
包装类可以把基本数据类型包装成对象
泛型和集合不支持基本数据类型,只能使用引用数据类型
- 基本数据类型 -> 包装类(引用数据类型)
- byte -> Byte
- short -> Short
- *int -> Integer
- long -> Long
- float -> Float
- double -> Double
- *char -> Character
- boolean -> Boolean
除了int,char包装类均为首字母大写
基本类型数据和对象的转换:
自动装箱:
Integer a = 1;
自动拆箱:
int b = a;//Integer a
应用:
ArrayList<Integer> list;
list.add(11);//自动装箱
其他操作:
基本类型转字符串:
Integer a;
1.Integer.toString(a);
2.a.toString();
3.a + "";
*字符串转基本类型:
String str = “29”;
1.Integer.parseInt(str);//Double.parseDouble......(不建议)
2.Integer.valueOf(str);//只需要记忆valueOf一个方法
注:字符串是什么就转成什么数据类型,否则会报错
StringBuilder
代表可变字符串对象,相当于是一个容器,用来操作字符串(string是不可变的)
优点:比String更适合做字符串的修改操作,效率高.代码简洁
- 常用方法:
- 1.拼接 sb.append(x);//x可以是其他类型(支持链式编程,比+=更高效)
- 2.翻转 sb.reverse();
- 3.长度 sb.length();
- 4.StringBuffer转String sb.toString();
StringBuffer
线程安全(可供大量用户同时使用)的StringBuilder(用法与StringBuilder相同,效率稍慢)
StringJoiner(JDK8)
高速,部分场景下代码简洁(更适合拼接操作)
- 常用方法:
- 构造器:
- StringJoiner(间隔符)
- StringJoiner(间隔符,开始符号,结束符号)
- sj.add("X");//拼接(对于非字符串变量可以直接 变量+"")
- sj1.merge(sj2);//合并sj1,sj2(不包括sj2前后缀)
- sj.length();
- sj.toString();
Math(数学工具类)
System
- System.exit();//终止运行
- System.currentTimeMillis();//返回当前系统时间(从1970-1-1-0:0:0到现在的毫秒数)
Runtime(单例类)
通过getRuntime方法创建对象
Runtime r = Runtime.getRuntime();
- 常用方法:
- r.exit();//终止运行
- r.availableProcessors();//获取虚拟机能够使用的处理器数
- r.totalMemory();//获取虚拟机中内存总量(字节)
- r.freeMemory();//获取虚拟中空闲内存量
- Process p = r.exec("路径");//启动某个程序,并返回改程序的对象
- [启动程序后可以调用 p,destroy();销毁程序]