目录
API概述
- Object
- Scanner
- String
- 构造方法
- 判断功能
- 获取功能
- 转换功能
- 其他功能
- StringBuffer
- 构造方法
- 方法
- 添加功能、删除功能、替换功能、反转、截取
- StringBuilder
- Arrays
- Integer
- Character
- 构造方法
- 其他方法
- Math
- Random
- System
- BigInteger
- BigDecimal
- Date
API概述
- 应用程序编程接口
Application Programming Interface
-
Java API
即JDK中提供的各种功能的Java类
Object
所有类的根类
无参构造方法
-
public int hashCode()
- 返回该对象的哈希码值
哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但不是实际地址值,可以理解为地址值
-
public final Class getClass()
- 返回此
Object
的运行时类 -
Class类
的方法-
public String getName()
:以String
的形式返回此Class
对象所表示的实体(类、接口、数组类、基本类型或void
)名称。
-
- 返回此
-
public String toString()
- 返回该对象的字符串表示
- 通常,
toString
方法会返回一个“以文本方式表示”此对象的字符串 - 结果应是一个简明但易于读懂的信息表达式
-
Object
类的toString
方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at
标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
- 这个信息,实际意义不大,建议所有子类都重写此方法,把所有的成员变量值返回即可
-
public boolean equals(Object obj)
-
指示其他某个对象是否与此对象“相等”
public boolean equals(Object obj) { return (this == obj); } //这个方法默认比较的是地址值,一般来说意义不大 //故一般都要重写方法
-
怎么重写
- 一般都是比较对象的
成员变量值
是否相等 -
String
类型的equals
方法比较的是字符串的值/内容
是否相等 - 重写保证程序的健壮性,自动生成
- 一般都是比较对象的
-
protected void finalize() throws Throwable
-
protected Object clone() throws CloneNotSupportedException
标记接口
Scanner
-
构造方法:public Scanner(InputStream source)
System.in:``public static final InputStream in
-
public boolean hasNextXxx():
- 判断是否是某种类型的元素
-
public Xxx nextXxx():
- 获取该元素
- 问题
- 先获取一个数值,在获取一个字符串
-
\n
会被扫描成字符串 - 解决方法
- 获取一个数值以后,再创建一个新的键盘录入对象获取字符串
- 把所有数据都按字符串获取,然后要什么,再转换
-
- 先获取一个数值,在获取一个字符串
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(String str)
:判断字符串为空- 注意:字符串内容为空,和字符串对象为空
NullPointerException:空指针异常(对象未创建等)
获取功能
-
public int length()
:获取字符串长度 -
public char charAt(int index)
:获取指定索引位置的字符 -
public int indexOf(int ch)
:返回指定字符在此字符串中第一次出现位置的索引-
int
:'a'
和97
都可以代表 'a',而char
类型只能写'a'
没法写97
-
-
public int indexOf(String str)
:返回指定字符串在此字符串中第一次出现位置的索引 -
public int indexOf(int ch, int fromIndex)
:返回指定字符在此字符串中从指定位置后第一次出现处的索引 -
public int indexOf(String str, int fromIndex)
:返回指定字符串在此字符串中从指定位置后第一次出现处的索引 -
public String subString(int start)
:从指定位置开始截取字符串,默认到末尾 -
public String subString(int start, int end)
:从指定位置到指定位置结束截取字符串(包括头,不包括尾)
转换功能
-
public byte[] getBytes()
:把字符串转化为字节数组 -
public char[] toCharArray()
:把字符串转换为字符数组 -
public static String valueOf(char[] chc)
:把字符数组转换为字符串 -
public static String valueOf(int i)
:把int
类型的数据转换成字符串-
String
类的valueOf
方法可以把任意类型的数据转换成字符串。
-
-
public String toLowerCase()
:把字符串转成小写 -
public String toUpperCase()
:把字符串转换成大写 -
public String concat(String str)
:把字符串进行拼接
其他功能
- 替换功能
String replace(char old, char new)
String replace(String old, String new)
- 去除字符串两端空格
String trim
- 按字典顺序比较两个字符串
int compareTo(String str)
int compareToIgnoreCase(String str)
StringBuffer
- 字符串的拼接操作每次都会构建一个新的
String
对象,耗费时间和空间,故引入StringBuffer
- 长度可变
构造方法
-
public StringBuffer()
- 无参构造
-
public StringBuffer(int capacity)
- 指定容量的字符串缓冲区对象
-
public StringBuffer(String str)
- 指定字符串内容的字符串缓冲区对象
public StringBuffer(CharSequence seq)
方法
-
public int capacity()
- 返回当前容量
-
public int length()
- 返回长度(字符数)
添加功能、删除功能、替换功能、反转、截取
见API,此处仅提供方法名
-
append
、insert
-
delete
、deleteCharAt
-
replace
、reverse
subString
StringBuilder
- 见
API
,和StringBuffer
类似
Arrays
- 包含操作数组(排序和查找)的各种方法
toString
-
sort
- 底层是快速排序,详细见源代码
-
binarySearch
- 查找不到时候,返回值为
负值
但不是常识中的-1
,原因见源码
- 查找不到时候,返回值为
Integer
- 在对象中包装了一个基本类型
int
的值。其对象包含了一个int
类型的字段 - 提供了多个方法在
int
和String
之间互相转换-
intValue()
/parseInt()
-
-
public static String
--->toBinaryString
/toHexString
/toOctalString
:类名调用- 十进制到任意进制:
public static String toString(int i, int radix)
:类名调用 - 任意进制到十进制:
public static int parseInt(String s, int radix)
:类名调用 - 进制的范围:
2-36
- 十进制到任意进制:
-
public static final int
--->MAX_VALUE
/MIN_VALUE
:类名调用
注意:基本类型与包装类的便捷实用
/*
JDK5新特性:
自动装箱:把基本类型自动转换为包装类型
自动拆箱:把包装类型自动转换为基本类型
*/
Integer ii = 100; // 自动装箱
ii += 200; // 自动拆箱
System.out.println("ii" + ii);
// 反编译
Integer ii = Integer.valueOf(100); // 自动装箱的实现
ii = Integer.valueOf(ii.intValue() + 200); // 自动拆箱,再自动装箱
System.out.println(new StringBuilder("ii:")).append(ii).toString());
// 使用时候若 Integer ii = Null 上面就会出现空指针异常,NullPointerException
// 故先判断后再使用 if(ii != Null){...}
基本类型 | 引用类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
Character
-
char
的包装类
构造方法
public static Character(char value)
其他方法
-
isUpperCase
/isLowerCase
/isDigit
-
toUpperCase
/toLowerCase
Math
- 用于数学运算的类
- 包含基本数学运算的方法
- 初等指数,对数,平方根,三角函数等等
//成员变量
public static final double E
public static final double PI
//成员方法
public static int abs(int a)
public static double ceil(double a)
public static double floor(double a)
public static int max(int a, int b) //min
public static double pow(double a, double b) //a^b
public static double random() //[0.0, 1.0)
public static int round(float a /*double a*/) //四舍五入,详见API
public static double sqrt(double a) //正平方根
Random
- 产生随机数的类
//构造方法
public Random()//默认种子,当前时间的毫秒值
public Random(long seed)//给出指定的种子,给定种子后,每次得到的随机数是相同的
//成员方法
public int nextInt() //返回int范围内的随机数
public int nextInt(int n) //[0, n)范围内的随机数
System
- 最终类,包含一些类字段和方法,不能被实例化
public static void gc()
public static void exit(int status) //终止当前正在运行的Java虚拟机
public static long currentTimeMillis()
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
BigInteger
-
Integer
范围不够大Integer.MAX_VALUE
-
BigInteger
用来描述更大的值
- 不可变的,任意精度的有符号十进制数
public BigInteger(String val)
//加减乘除
public BigInteger add(BigInteger val)
public BigInteger substract(BigInteger val)
public BigInteger multiply(BigInteger val)
public BigInteger divide(BigInteger val)
public BigInteger divideAndReminder(BigInteger val)
BigDecimal
- 运算时
float
和double
会丢失精度,因而此类拿来精确的描述、计算浮点类 - 不可变的,任意精度的有符号十进制数,可以解决数据丢失问题
public BigDecimal(String val)
//加减乘除
public BigDecimal add(BigDecimal augend)
public BigDecimal substract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor)
public BigDecimal divide(BigInteger divisor, int scale, int roundindMode)//商几位小数,如何舍取
Date
- 表示特定的瞬间,精确到毫秒
public Date() //根据当前的默认毫秒值创建日期对象
public Date(long date) //根据给定的毫秒值创建日期对象