Java常用工具类API
API
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
Object
Object:所有类的父类,类中的方法都可以被子类使用;
常用方法
方法名 | 作用 | 返回值 |
---|---|---|
hashCode() | 获取对象hash值 | int |
toString() | 将对象信息变为字符串返回 | String |
equals(Object obj) | 判断两个内存地址是否一样 | boolean |
getClass() | 获取类名 | Object |
String
①被final修饰的类,不能被继承
②字符串存在于常量池中。如果new String(),则会在堆内存中开辟空间,如果是直接赋值的话,会在常量池中开辟空间
③String可以通过+做字符串的拼接,但是效率低下
常用方法
方法名 | 作用 | 返回值 |
---|---|---|
split() | 拆分字符串 | 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 |
getBytes() | 转换成bytes型数组 | byte[] |
toCharArray() | 转换成char型数组 | char[] |
String valueOf(char[] chs) | 将入参类型转换为String | String |
toLowerCase() | 将所有英文字母转换为小写字母 | String |
toUpperCase() | 将所有英文字母转换为大写字母 | String |
concat(String str) | 将指定字符串连接到此字符串的结尾 | String |
StringBuffer
用来解决String更改字符串造成的时间浪费和空间浪费的。
常用方法
方法名 | 作用 | 返回值 |
---|---|---|
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 |
包装类
基本数据类型:是没有方法的,但是可以通过包装类来实现方法的调用
包装类分为两类,一种是对象型包装类,不继承任何其他类(Object的直接子类),另一种是数值型包装类,继承于Number类。
数值型包装类写法上只有:
int—————Integer
char——————Character
剩下的数据类型都是首字母大写
// byte的包装类
public final class Byte extends Number implements Comparable<Byte>
// short的包装类
public final class Short extends Number implements Comparable<Short>
// int的包装类
public final class Integer extends Number implements Comparable<Integer>
// long的包装类
public final class Long extends Number implements Comparable<Long>
// float的包装类
public final class Float extends Number implements Comparable<Float>
// double的包装类
public final class Double extends Number implements Comparable<Double>
//Boolean和Character两个类就是正常的属性方法封装,但是数值型的包装类继承了一个Number类。
public abstract class Number implements java.io.Serializable
其实Number中定义的方法就是用于拆箱装箱的。
装箱和拆箱
- 装箱:基本数据类型————>包装类
- 拆箱:包装类————>基本数据类型
包装类编码规约
- 相同类型的包装类对象之间值的比较,全部使用equals()方法。
- 所有的局部变量最好使用基本数据类型。
Integer
常用方法
方法名 | 作用 | 返回值 |
---|---|---|
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 |
Character
方法名 | 作用 | 返回值 |
---|---|---|
isUpperCase(char ch) | 判断指定字符是否为大写字母 | boolean |
isLowerCase(char ch) | 判断指定字符是否为小写字母 | boolean |
isDigit(char ch) | 如果字符串中只含有数字则返回True | boolean |
toUpperCase(char ch) | 将小写字符转换为大写 | char |
toLowerCase(char ch) | 将大写字符转换为小写 | char |
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 |
Date
常用方法
public long getTime()//获取时间
public void setTime(long time)//设置时间
Date时间格式化
** 输出格式: 2016-10-26 4:48:11*/
System.out.println((new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date()));
/** 输出格式: 2016-10-26 16:48:11 */
System.out.println((new java.text.SimpleDateFormat("yyyy-M-d H:mm:ss")).format(new Date()));
这里需要注意的就是24时和12时的显示正则,H大写为24时计时法,h小写为12时计时法,两个h时,即hh,当为个位数时间时前面自动补0即下午4点显示04
Calendar(抽象类)
常用方法
方法名 | 作用 | 返回值 |
---|---|---|
getInstance() | 获取日期 | Calendar |
get(int field) | 获取年/月/日/时/分/秒 | int |
add(int field,int amount) | 计算时间 | void |
set(int year,int month,int date) | 设置时间 | void |
Random
常用方法
方法名 | 作用 | 返回值 |
---|---|---|
nextInt() | 生产一个随机数 | int |
nextInt(int n) | 生成一个0~n之间的随机数 | int |
补充(重点)
一、equals和 ==的区别:
- equals:底层的代码就是==;
- equals只能比较引用数据类型;
- ==:可以比较基本数据类型和引用数据类型,比较基本数据类型的时候比较的是值,比较引用数据类型的时候比较的是地址值。
二、String、StringBuffer、StringBuilder的区别:
- 执行速度快慢:StringBuilder > StringBuffer > String
- 线程安全:StringBuffer和String是线程安全的,StringBuilder是线程不安全的
- 使用场景:
String:适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况 - String为字符串常量,而StringBuilder和StringBuffer均为字符串变量