目录
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) //根据给定的毫秒值创建日期对象