Java常用类及方法
一、Object
Object类是所有类的父类,也就是说任何一个类在定义时如果没有明确地继承一个父类,那它就是Object的子类。
Object类常用方法:
方法 | 说明 |
---|---|
Object clone() | 创建与该对象的类相同的新对象。 |
boolean equals(Object) | 比较两个对象是否相等,默认比较的是地址值。 |
void finalize() | 当垃圾回收器确定不存在对该对象的更多引用时,对象的垃圾回收器调用该方法。 |
Class getClass() | 返回一个对象运行时的实例类(.class文件)。 |
int hashCode() | 返回该对象的散列码值。 |
void notify() | 激活等待在该对象的监视器上的一个线程。 |
void notifyAll | 激活等待在该对象的监视器上的全部线程。 |
String toString() | 返回该对象的字符串表示,默认返回运行时类名+@+对象的hashCode的16进制数。 |
void wait() | 在其他线程调用此对象的notify()方法或notifyAll()方法前,导致当前线程等待。 |
注:
-
如果两个对象的哈希码值不同,那这两个对象一定不等;
-
如果两个对象的哈希码值相同,不能保证这两个对象一定相等;
-
克隆对象对应的类需要实现Cloneable接口,否则会报错:java.lang.CloneNotSupportedException;
常覆写Object类的3个方法:toString()、equals(Object obj)、hashCode()
二、String
String表示的是字符串,字符串是常量(值定义了之后,不可修改),字符串是一个char类型的数组。
public final class String
class前加上final代表了该类不可以被继承,因为继承了之后,子类就可以重写父类的方法,这是不允许的。
构造方法:
方法 | 说明 |
---|---|
String() | 创建一个空的字符串。 |
String(byte[] bys) | 通过字节数组创建字符串。 |
String(char[] chs) | 通过字符数组创建字符串。 |
String(byte[] bys, int offset, int length) | 通过字符数据一部分创建字符串。 |
String(char[] chs, int offset, int length) | 通过字符数组一部分创建字符串。 |
String(String original) | 通过字符串常量值创建字符串。 |
判断功能:
方法 | 说明 |
---|---|
equals(Object obj) | 比较两个字符串是否相等。注:equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 |
equalsIngnoreCase(Object obj) | 忽略大小写比较两个字符串是否相等。 |
contains(String str) | 是否包含指定字符串。 |
startsWith(String str) | 是否以指定的字符串开头。 |
endWith(String str) | 是否以指定的字符串结尾。 |
isEmpty() | 是否为空。 |
matches(String regex) | 判断字符串是否匹配给定的正则表达式。注:使用正则表达式的\d时,因为\需要先进行转义,所以\d用\ \d来表示 |
获取功能:
方法 | 说明 |
---|---|
length() | 获取长度。 |
charAt(int index) | 获取指定索引位置处的字符。 |
indexOf(int ch) | 获取指定字符第一次出现的索引值,从0开始 |
indexOf(int ch, int formIndex) | 获取从指定索引位置开始,获取指定字符第一次出现的索引值。 |
indexOf(String s) | 获取指定字符串第一次出现的索引值。 |
indexOf(String s, int fromIndex) | 获取从指定索引位置开始,指定字符串第一次出现的索引值。 |
lastIndexOf(int ch) | 获取指定字符最后一次出现的索引值。 |
substring(int start) | 从指定位置开始一直截取到末尾。 |
substring(int start, int end) | 截取[start,end-1]范围 |
注:如果indexOf方法未找到,则返回-1.
转换功能:
方法 | 说明 |
---|---|
byte[] getBytes() | 将字符串转成字节数组。 |
char[] toCharArray() | 将字符串转成字符数组。 |
static valueOf(char[] chs) | 将char[]转成字符串。 |
static valueOf(int num) | 将int类型转成字符串。 |
static valueOf(Object obj) | 将任意类型转成字符串。 |
toLowerCase() | 转成小写。 |
toUpcase() | 转成大写。 |
concat(String str) | 字符连接。 |
其他功能:
方法 | 说明 |
---|---|
replace(char old, char new) | 将old字符替换成new字符。 |
replace(String old, String new) | 将old字符串替换成new字符串。 |
trim() | 去除两边空格。 |
int compareTo(String s) | 字典比较,如果前面值小于后面值返回负数,否则返回正数,先比较第一个元素,如果相等在比较第二个元素,返回元素之间的差值;如果比较字符有包含关系,返回的值是长度差值。 |
int compareTolgnoreCase(String s) | 忽略大小写字典比较。 |
String replaceAll(String regx, String replacement) | 使用给定的replacement替换此字符串所有匹配给定的正则表达式的子字符串。 |
String replaceFirst(String regex, String replacement) | 使用给定的replacement替换字符串匹配给定的正则表达式的第一个子字符串。 |
String[] split(String regex) | 根据给定正则表达式的匹配拆分此字符串。 |
String[] split(String regex, int limit) | 根据匹配给定的正则表达式来拆分此字符串。 |
三、StringBuffer类
StringBuffer是可变长度,如果代码中有比较多的字符串拼接,建议使用StringBuffer效率好。StringBuffer初始大小是16个字符的数组,如果数组满了后,新的容量是原来的2倍+2。
常用方法:与StringBuilder差不多。
四、StringBuilder类
线程不安全的可变字符序列。
构造方法:
方法 | 说明 |
---|---|
StringBuilder() | 已默认容量创建空的StringBuilder对象。 |
StringBuilder(int capacity) | 以指定容量创建空的StringBuilder对象。 |
StringBuilder(String str) | 以指定的字符串创建StringBuilder对象。 |
常用方法:
方法 | 说明 |
---|---|
获取容量。 | |
int length() | 获取长度。 |
append(int value) | 追加,可以追加多种类型。 |
insert(int offset,String s) | 在指定的位置插入指定数据。 |
deleteCharAt(int index) | 删除指定索引处的元素。 |
delete(int start, int end) | 删除[start,end-1]范围内的元素。 |
reverse() | 元素反转。 |
String、StringBuilder、StringBuffer
-
String内容不可改变。
-
StringBuilder和StringBuffer内容可变。
-
StringBuilder是线程不安全的,不同步,效率高。
-
StringBuffer是线程安全的,同步,效率低。
五、Math类
方法 | 说明 |
---|---|
abs(int a) | 绝对值。 |
ceil(double d) | 向上取整。 |
floor(double d) | 向下取整。 |
max(int a, int b) | 最大值。 |
pow(double a, double b) | a的b次幂。 |
random() | 随机数[0.0,1.0) |
round(float f) | 四舍五入。 |
sqrt(double d) | 算数平方根。 |
六、Date类
方法 | 说明 |
---|---|
Date() | 以当前时间毫秒值创建Date对象。 |
Date(long time) | 以指定的毫秒值创建Date对象。 |
long getTime() | 返回自从GMT 1970-01-01 00:00:00到此date对象上时间的毫秒数。 |
setTime(long time) | 设置Date对象的毫秒值。 |
七、DateFormat
DateFormat是一个抽象类,用来格式化或解析日期。
getDateInstance(int style, Locale loc):获取日期格式器,改格式器具有给定的语言环境和给定的格式化风格。
String format(Date date):格式化。
Date parse(String time):解析。
八、SimpleDateFormat
SimpleDateFormat是DateFormat的子类。
- 构造方法:
-
SimpleDateFormat():以默认模式创建对象。
-
SimpleDateFormat(String pattern):以指定模式创建对象。
常用模式:
-
yyyy 年
-
MM 月
-
dd 日
-
HH 时
-
mm 分
-
ss 秒
- 常用方法:
-
String format(Date date):格式化。
-
Date parse(String time):解析。
// 当前时间 java.util.Date 工具类包下的Date
Date date = new Date();
System.out.println(date);
// 构造方法传入自己的格式
// yyyy-MM-dd HH:mm:ss(java) yyyy-mm-dd hh24:mi:ss(oracle)
SimpleDateFormat format
= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 把日期转换为一定格式的字符串
String dateStr = format.format(date);
System.out.println(dateStr);
// 把指定的字符串日期解析为日期对象
Date newDate = null;
try {
newDate = format.parse("2021-03-15 15:00:01");
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(newDate);
九、Calendar类
日历类,用于获取或者操作日历字段(年月日),该类是一个抽象类,不可被实例化。
常用方法:
-
static Calender getInstance():以默认时区和语言创建日历。
-
int get(int field):获取指定字段的日历值。
-
set(int field, int value):给指定的日历字段设置指定的值。
-
set(int year, int month, int date):设置年月日
-
Date getTime():获取日历对象的日期。
-
setTime(Date d):设置日历对象的日期。
-
add(int field, in amount):对指定的日历字段添加指定的值。