工具类
API
Application Programming Interface,应用程序编程接口 :API
是Java给我们的一些好用的类
Object: 所有的类都直接或间接继承Object
Object中所有的方法都可以被子类使用
- getClass: 返回对象的字节码
- hashCode:返回对象的哈希码值(内存地址)
- equals: 比较两个对象是否相等
- toString: 包名加类名加哈希码值(全限定符 )如果我们想按照自己的想法输出对象的信息,我们就需要重写toString方法
equals 和 == 的区别
equals:底层的代码就是==;
equals:只能比较引用数据类型;
== :可以比较基本数据类型和引用数据类型,比较基本数据类型的时候比较的是值,比较引用数据类型的时候比较的是地址值
String,StringBuffer,StringBuilder
String
String:可以通过 + 做字符串的拼接,但是效率不高
- 被final修饰的类:不能被继承
- 字符串存在于常量池,如果new会在堆和常量值都有一份,如果是直接赋值,则只在常量池
构造方法
方法 | 描述 |
---|---|
public String() | 初始化构造一个空白字符串 |
public String(char[] value) | 通过字符数组初始化字符串 |
public String(byte[] bytes) | 通过使用平台的默认字符集解码指定的字节数组来构造新的String |
public String(byte[] bytes, Charset charset) | 通过使用自定义的字符集解码指定的字节数组来构造新的String |
String类的型转换功能
方法名 | 作用 | |
---|---|---|
getBytes() | 转换成bytes型数组 | 返回值 |
toCharArrav() | 换成char型数组 | byte[] |
String valueOf(char[] chs) | 将入参类型转换为String | char[] |
tolowerCase() | 将所有英文字母转换为小写字母 | String |
toUpperCase() | 将所有英文字母转换为大写字母 | String |
concat(String str) | 将指定字符串连接到此字符串的结尾 | String |
常用方法
方法名 | 作用 | 返回值 |
---|---|---|
isEmpty() | 判断是否为空 | boolean |
length() | 取到该String的长度 | int |
equals(Object obj) | 判断两个字符串是否相等 | boolean |
equalsIgnoreCase(String as) | 不区分大小写比较 | Object |
charAt(int index) | 返回该下标的char | char |
substring(int start) | 截取字符串下标从start开始 | String |
substring(int start,int end) | 截取区间字符串从start开始到end结束(包头不包尾) | String |
replace(char old,char new) | 替换字符串 | String |
trim() | 去掉字母首尾空格 | String |
indexOf() | 寻找某个字符串在目标字符串的位置 | int |
StringBuffer:
常用方法
方法名 | 作用 | 返回值 |
---|---|---|
append(String str) | 追加字符串 | StringBuffer |
insert(int offset,String str) | 指定位置追加字符串 | StringBuffer |
deleteCharAt(int index) | 删除下标处的字符 | StringBuffer |
delete(int start,int end) | 删除下标区间的字符 | StringBuffer |
replace(int start,int end,String str) | 替换区间字符 | StringBuffer |
reverse() | 反转字符串 | StringBuffer |
substring(int start,int end) | 截取区间字符串从start开始到end结束 | (包头不包尾) String |
substring(int start) | 截取字符串 | String |
split() | 拆分字符串 | String[] |
String,StringBuffer,StringBuilder的区别
执行速度StringBuilder > StringBuffer > String
String | StringBuffer | StringBuilder |
---|---|---|
内容不可以变 | 内容可以变 | 内容可以变 |
线程安全 | 线程安全 | 线程不安全 |
单线程操作字符串 | 多线程操作字符串 | 单线程操作字符串 |
包装
基本数据类型:是没有方法的,但是可以通过包装类来实现方法的调用
- int Integer
- char Character
方法名 | 作用 | 返回值 |
---|---|---|
intValue() | 转换成int | int |
parseInt(String s) | String转换成int | int |
valueOf(String s) | String转换成Integer | Integer |
String toBinaryString(int i) | 转换成2进制 | String |
toOctalString | 转换成8进制 | String |
toHexString(int i) | 转换成16进制 | String |
toHexString(int i) | 十进制到其他进制 | String |
parseInt(String s,int radix) | 其他进制到十进制 | int |
装箱:基本数据类型===>包装类 穿装备(变强)
拆箱:包装类===>基本数据类型 卸装备(变弱)
Math数学类
方法名 | 作用 | 返回值 |
---|---|---|
abs(int a) | 取返回值 | int |
ceil(double a) | 返回最小值 | double |
floor(double a) | 返回最大值 | double |
max(int a,int b) | 取最大值 | int |
pow(double a,double b) | 求幂 | double |
random() | 随机数 | double |
round(float a) | 四舍五入成整数 | int |
sqrt(double a) | 求double值的正平方根 | double |
cail 向上取整
floor 向下取整
Character常用的方法
方法名 | 作用 | 返回值 |
---|---|---|
isUpperCase(char ch) | 判断指定字符是否为大写字母 | boolean |
isLowerCase(char ch) | 判断指定字符是否为小写字母 | boolean |
isDigit(char ch) | 如果字符串中只含有数字则返回True | boolean |
toUpperCase(char ch) | 将小写字符转换为大写 | char |
toLowerCase(char ch) | 将大写字符转换为小写 | char |
Random随机
Random random = new Random();
//0~100之间随机数
random.nextTnt(100);
//20~100随机数
20 + random.nextTnt(100 - 20);
方法名 | 作用 | 返回值 |
---|---|---|
nextInt() | 生产一个随机数 | int |
nextInt(int n) | 生成一个0~n之间的随机数 | int |
Date,Calender
1秒=1000毫秒
日期格式化
// yyyy-MM-dd HH:mm:ss:SSS 放字符串
// 2023-08-16 21:57:52:455
new SimlpeDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
Calender
日历类擅长的是日期的修改操作
方法名 | 作用 | 返回值 |
---|---|---|
getInstance() | 获取日期 | Calendar |
get(int field) | 获取年/月/日/时/分/秒 | int |
add(int field,int amount) | 计算时间 | void |
set(int year,int month,int date) | 设置时间 | void |