一、Java原生API概述
API(Application Programming Interface) 即应用程序编程接口,它可以为我们提供强大的功能支持。
在Java的JDK源码中,有着庞大的API生态库,用于帮助我们在日常的工作学习中应对各种各样常见的实际问题,例如字符串处理,时间格式处理等等。
由于Java的API库异常庞大,我们仅在此盘点较为常用的一部分,其他部分大家可以详细查询Java API文档,在搜索引擎搜索Java在线API文档
即可找到相关中英文在线资料,也可以下载到本地进行日常查阅。
二、Object
2.1 简介
Object是Java语言中所有类的根类,是所有类默认继承的父类。所以所有的Java类也都共有一些从Object类中继承而来的方法。
2.2 Object中的方法
构造方法:public Object()
成员方法:
hashCode()
:获取对象的哈希值。getClass()
:获取对象所属类的反射对象。toString()
:获取对象的字符串描述。(子类需重写此方法)equals(Object obj)
:判断对象和指定对象obj
是否相同。(默认比较对象的内存地址,子类需重写此方法)finalize()
:用于垃圾回收,在回收前调用此方法。clone()
:对象克隆,获得当前对象的副本。
三、Scanner
3.1 简介
Scanner类是JDK5引入的新特性,用于获取用户输入。
3.2 Scanner常用方法
构造方法:public Scanner(InputStream source)
(需传入输入流参数)
常用方法:
hasNextXxx()
:判断是否还有下一个输入,Xxx
是Int
、Double
等数据类型,字符串类型使用Line
nextXxx()
:获取下一个输入。Xxx
是Int
、Double
等数据类型,字符串类型使用Line
四、String
4.1 简介
String
类是我们最常用的类之一,它用于操作字符串。字符串是由多个字符组成的一串数据(字符序列),它的值在创建之后不能更改,我们对于字符串的所有操作其实操作的是原字符串的拷贝。
4.2 String常用方法
构造方法:
public String()
无参构造public String(byte[] bytes)
把字节数组转成字符串public String(byte[] bytes,int index,int length)
把字节数组中从指定索引开始的指定个数元素转成字符串public String(char[] value)
把字符数组转成字符串public String(char[] value,int index,int count)
把字符数组中从指定索引开始的指定个数元素转成字符串public String(String original)
把字符串常量值转成字符串
判断操作:
boolean equals(Object obj)
:判断字符串内容是否相同boolean equalsIgnoreCase(String str)
:忽略大小写判断字符串内容是否相同boolean contains(String str)
:判断字符串中是否包含指定字符串boolean startsWith(String str)
:判断字符串是否以某个指定的字符串开头boolean endsWith(String str)
:判断字符串是否以某个指定的字符串结尾boolean isEmpty()
:判断字符串内容是否为空
获取操作:
int length()
:获取字符串长度char charAt(int index)
:获取指定索引位置的字符int indexOf(int ch)
:获取指定字符在此字符串中第一次出现的索引(参数是字符对应的ASIC码值)int indexOf(String str)
:获取指定字符串在此字符串中第一次出现的索引int indexOf(int ch,int fromIndex)
:获取字符串中从指定索引后第一次出现指定字符所在的索引(第一个参数是指定字符对应的ASIC码值)int indexOf(String str,int fromIndex)
:获取字符串中从指定索引后第一次出现指定字符串所在的索引String substring(int start)
:从指定位置截取字符串String substring(int start,int end)
:从指定的开始和结束位置截取字符串
转换操作:
byte[] getBytes()
:把字符串转换为字节数组char[] toCharArray()
:把字符串转换为字符数组static String valueOf(char[] chs)
:把字符数组转成字符串static String valueOf(int i)
:把int类型的数据转成字符串String toLowerCase()
:把字符串转成小写String toUpperCase()
:把字符串转成大写String concat(String str)
:拼接字符串
其他操作:
String replace(char old,char new)
:替换字符串中的指定字符String replace(String old,String new)
:替换字符串中的指定字符串String trim()
:去除字符串两端空格int compareTo(String str)
:按字符依次比较两个字符串。(如果两个字符串长度相同,则返回首对不同字符的ASIC码差值;如果两个字符串长度不同,则返回两个字符串的长度差值;返回正数表示调用者大, 返回负数表示被比较者大, 返回0表示两字符串相同)int compareToIgnoreCase(String str)
:按字符依次比较两个字符串(忽略字符大小写)
五、StringBuffer和StringBuilder
5.1 简介
StringBuffer
和StringBuilder
也用于操作字符串,它在操作字符串时操作的是字符串对象本身,不会出现String
操作字符串时不断拷贝原字符串对象的现象,避免了由于不断构建新的字符串对象所造成的耗时和空间占用问题。StringBuffer
是线程安全的可变字符序列,StringBuilder
不是,这也导致StringBuilder
的效率要优于StringBuffer
。
5.2 常用方法
构造方法:
public StringBuffer():
无参构造public StringBuffer(int capacity)
:指定容量的StringBuffer对象public StringBuffer(String str)
:指定字符串内容的StringBuffer对象
拼接操作:
public StringBuffer append(String str)
:将指定字符串拼接到调用者字符串后public StringBuffer insert(int offset,String str)
:从指定位置向字符串中插入指定字符串
删除操作:
public StringBuffer deleteCharAt(int index)
:删除字符串指定位置的字符public StringBuffer delete(int start,int end)
:删除字符串中从指定位置开始到指定位置结束的内容
替换操作:
public StringBuffer replace(int start,int end,String str)
:用指定字符串替换字符串中从start开始到end结束的内容
反转操作:
public StringBuffer reverse()
:将字符串的内容反转
截取操作:
public String substring(int start)
:截取从指定位置开始的内容public String substring(int start,int end)
:截取从指定位置开始到指定位置结束的内容
六、Arrays
6.1 简介
Arrays
是针对数组进行操作的工具类,提供了排序,查找等功能。
6.2 Arrays常用方法
public static String toString(int[] a)
:把数组转成字符串public static void sort(int[] a)
:对数组进行排序public static int binarySearch(int[] a,int key)
:二分查找整型数组中指定整数的位置七、Math
7.1 简介
Math
类包含用于执行基本数学运算的方法,如指数运算、对数运算、平方根和三角函数等。
7.2 Math常用方法
public static int abs(int a)
:求绝对值public static double ceil(double a)
:对a进行向上取整public static double floor(double a)
:对a进行向下取整public static int max(int a,int b)
:求a、b中的最大值public static double pow(double a,double b)
:求a的b次幂public static double random()
:获得随机数(范围0.0-1.0)public static int round(float a)
:四舍五入,向右取整public static double sqrt(double a)
:平方八、Random
8.1 简介
Random
类用于生成随机数,如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用,它们将生成相同的随机数字序列。
8.2 Random常用方法
构造方法:
public Random()
:创建随机数生成器(默认种子是当前时间的毫秒值)public Random(long seed)
:使用指定long
类型的种子创建随机数生成器
成员方法:
public int nextInt()
:获得int
范围内的随机数public int nextInt(int n)
:获得[0,n)
范围内的随机数
九、System
9.1 简介
System
类包含一些特殊的字段和方法,主要用于获取系统的属性数据,没有构造方法,不能被实例化。
9.2 System常用方法
成员方法:
public static void gc()
:调用垃圾回收器public static void exit(int status)
:终止当前运行的JVM,参数非零时为异常终止public static long currentTimeMillis()
:获得当前的毫秒时间public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
:从数组src
的srcPos
位置开始,复制length
长度的内容到dest
数组的destPos
位置
十、BigInteger
10.1 简介
BigInteger
用于运算超过Integer
范围的整型数据。
10.2 BigInteger常用方法
构造方法:
public BigInteger(String val)
:构造BigInteger
对象
成员方法:
public BigInteger add(BigInteger val)
:加法public BigInteger subtract(BigInteger val)
:减法public BigInteger multiply(BigInteger val)
:乘法public BigInteger divide(BigInteger val)
:除法public BigInteger[] divideAndRemainder(BigInteger val)
:获得商和余数的数组
十一、BigDecimal
11.1 简介
BigDecimal
是不可变的、满足任意精度要求的有符号十进制数。
11.2 BigDecimal常用方法
构造方法:
public BigDecimal(String val)
:将十进制数字符串转换为BigDecimal
对象
成员方法:
public BigDecimal add(BigDecimal augend)
:加法public BigDecimal subtract(BigDecimal subtrahend)
:减法public BigDecimal multiply(BigDecimal multiplicand)
:乘法public BigDecimal divide(BigDecimal divisor)
:除法public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
:除法,得到scale
位小数的商(roundingMode
为舍取模式,一般使用ROUND_HALF_UP
)
十二、Date
12.1 简介
Date
表示特定的瞬时时间,精确到毫秒。(默认时间原点为1970-01-01 00:00:00
,中国为1970-01-01 08:00:00
)
12.2 Date常用方法
构造方法:
public Date()
:根据当前系统时间的毫秒值创建Date
对象public Date(long date)
:根据给定的时间毫秒值创建Date
对象(在原点时间的基础上加上给定的毫秒时间)
成员方法:
public long getTime()
:获得以毫秒为单位的当前系统时间public void setTime(long time)
:获得以毫秒为单位的时间(在原点时间的基础上加上给定的毫秒时间)
十三、DateFormat
13.1 简介
DateFormat
是日期/时间格式化的抽象类,它用于格式化并解析日期或时间。因为是抽象类,所以我们实际使用的是它的子类SimpleDateFormat
。
13.2 SimpleDateFormat常用方法
构造方法:
public SimpleDateFormat()
:定义默认的日期格式化对象public SimpleDateFormat(String pattern)
:定义给定的日期格式对象
成员方法:
public final String format(Date date)
:按特定的格式把时间转换成字符串public Date parse(String source)
:把特定格式的时间字符串转换成标准格式时间
十四、Calendar
14.1 简介
Calendar
类是一个抽象类,它为特定瞬间与一组诸如YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
14.2 Calendar常用方法
成员方法:
public static Calendar getInstance()
:得到当前日历时间对象public int get(int field)
:得到给定日历时间字段的值(YEAR
,MONTH
,DATE
等)public void add(int field,int amount)
:根据日历规则,给指定的日历字段加上或减去指定的时间量public final void set(int year,int month,int date)
:设置当前日历时间的年月日
十五、RunTime
15.1 简介
RunTime
表示正在运行的jvm环境和环境的上下文, 构造方法私有化,无法构建对象。
15.2 RunTime常用方法
成员方法:
public static Runtime getRuntime()
:获取RunTime
的单例对象。void addShutdownHook(Thread hook)
:关闭资源钩子的时候触发一个线程执行。int availableProcessors()
:向 Java 虚拟机返回可用处理器的数目long freeMemory()
:获取Java 虚拟机中的空闲内存量long maxMemory()
:获取Java 虚拟机试图使用的最大内存量long totalMemory()
:获取Java 虚拟机中的内存总量void halt(int time)
:强制关闭jvm,不会保存任何数据,time
一般设置为0
十六、包装类
16.1 简介
包装类就是将基本数据类型封装成对象,这种方式的好处在于可以在对象中定义更多的功能方法进而操作该数据。包装类可以当作基本数据类型使用,Java编译器会自动进行装箱拆箱,但需要注意包装类是引用类型。八大基本数据类型的包装类分别为Byte
,Short
,Integer
,Long
,Float
,Double
,Character
,Boolean
。
16.2 自动装箱拆箱
valueOf(基本类型参数)
:将基本类型数据转换成包装类(自动装箱)。例如:Integer a = Integer.valueOf(int b);
xxxValue()
:将包装类型数据转换成基本类型数据(自动拆箱),xxx
表示基本类型。例如:int b = a.intValue();
16.3 进制转换
public static String toBinaryString(int i)
:十进制到二进制public static String toOctalString(int i)
:十进制到八进制public static String toHexString(int i)
:十进制到十六进制public static String toString(int i,int radix)
:十进制i到其它进制radix(范围2-36)public static int parseInt(String s,int radix)
:其它进制到十进制16.4 字符串转换成包装类
public static xxx parseXxx(String s)
:将数据类型字符串转成xxx
包装类。