一、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():判断是否还有下一个输入,XxxIntDouble等数据类型,字符串类型使用Line
  • nextXxx():获取下一个输入。XxxIntDouble等数据类型,字符串类型使用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 简介

StringBufferStringBuilder也用于操作字符串,它在操作字符串时操作的是字符串对象本身,不会出现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):从数组srcsrcPos位置开始,复制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 类是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

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包装类。