一、Object类概述及其构造方法
1. Object类概述
类层次结构的根类。所有类都直接或者间接的继承自该类。
构造方法
public Object()
子类的构造方法默认访问的是父类的无参构造方法。
1)Object类的成员方法
public int hashCode()
:这个方法返回对象的哈希码值,通常用于哈希表(如HashMap)中快速定位对象。如果两个对象相等(即equals方法返回true),它们的哈希码也必须相等。但是,如果两个对象的哈希码不同,它们不一定不相等。public final Class<?> getClass()
:这个方法返回对象的运行时类对象,即这个对象实际属于哪个类。它是final的,因为Java不允许重写这个方法。这可以用来获取类的元数据,例如类名、类加载器等。public String toString()
:这个方法返回对象的字符串表示形式。默认情况下,它会返回对象的类名和哈希码的无符号十六进制表示。通常,这个方法会被重写以提供更有意义的信息。public boolean equals(Object obj)
:这个方法用于比较两个对象是否相等。默认情况下,它比较对象的内存地址,但通常这个方法会被重写,以便根据对象的内容或属性来判断它们是否相等。protected void finalize()
:这个方法是垃圾回收器调用的,当对象即将被回收时。它允许对象在被销毁前执行一些清理工作。但是,由于垃圾回收器的调用时机不确定,以及Java 9中对finalize方法的弃用,通常不推荐使用这个方法。protected Object clone()
:这个方法用于创建并返回对象的一个副本。默认情况下,它是一个受保护的方法,并且需要实现Cloneable接口才能被正常使用。这个方法通常被重写以提供更具体的克隆行为。
2. Scanner类概述及其构造方法
Scanner类概述
JDK5以后用于获取用户的键盘输入。
构造方法
public Scanner(InputStream source)
1)Scanner类的成员方法
hasNextXxx()
:判断是否还有下一个输入项,其中Xxx可以是Int, Double等。如果需要判断是否包含下一个字符串,则可以省略Xxx。nextXxx()
:获取下一个输入项。Xxx的含义和上个方法中的Xxx相同。默认情况下,Scanner使用空格,回车等作为分隔符。
常用方法
public int nextInt()
:接收用户输入的int类型的值。public String nextLine()
:接受用户输入的string类型的值。
3. String类概述及其构造方法
String类概述
字符串是由多个字符组成的一串数据(字符序列),可以看成是字符数组。
1)构造方法
public String()
:创建一个空字符串,即长度为0的字符串。public String(byte[] bytes)
:接受一个字节数组作为参数,并使用平台默认的字符编码来解码这些字节,从而创建一个新的字符串。public String(byte[] bytes, int offset, int length)
:接受一个字节数组、一个偏移量(offset)和一个长度(length)作为参数,从字节数组的指定偏移量开始,解码指定长度的字节,使用平台默认的字符编码来创建一个新的字符串。public String(char[] value)
:接受一个字符数组作为参数,并使用这些字符来创建一个新的字符串。public String(char[] value, int offset, int count)
:接受一个字符数组、一个偏移量(offset)和一个计数(count)作为参数,从字符数组的指定偏移量开始,使用接下来的count个字符来创建一个新的字符串。public String(String original)
:接受一个字符串作为参数,并创建这个字符串的一个副本。新创建的字符串是原始字符串的一个独立副本,对新字符串的修改不会影响到原始字符串。
2)String类的判断功能
boolean equals(Object obj)
:比较两个字符串对象是否相等。boolean equalsIgnoreCase(String str)
:比较两个字符串是否相等,忽略大小写。boolean contains(CharSequence s)
:检查调用字符串是否包含序列参数s的字符序列。boolean startsWith(String str)
:检查调用字符串是否以指定的前缀开始。boolean endsWith(String str)
:检查调用字符串是否以指定的后缀结束。boolean isEmpty()
:检查调用字符串是否为空。
3)String类的获取功能
int length()
:返回字符串的长度。char charAt(int index)
:返回字符串中指定索引位置的字符。int indexOf(int ch)
:返回字符串中第一次出现的指定字符的索引。int indexOf(String str)
:返回子字符串在字符串中第一次出现的索引。int indexOf(int ch, int fromIndex)
:从指定的fromIndex开始搜索字符串中第一次出现的指定字符的索引。int indexOf(String str, int fromIndex)
:从指定的fromIndex开始搜索子字符串在字符串中的索引。String substring(int start)
:返回从索引start开始到原字符串末尾的新字符串。String substring(int start, int end)
:返回从索引start开始到索引end-1的新字符串。
4)String类的转换功能
byte[] getBytes()
:将字符串编码为字节序列。char[] toCharArray()
:将字符串转换为字符数组。static String valueOf(char[] chs)
:将字符数组转换为字符串。static String valueOf(int i)
:将整数转换为字符串。String toLowerCase()
:将字符串中的所有大写字母转换为小写字母。String toUpperCase()
:将字符串中的所有小写字母转换为大写字母。String concat(String str)
:将指定字符串连接到调用对象的末尾。
5)String类的其他功能
String replace(char old, char new)
:替换字符串中的字符。String replace(String old, String new)
:替换字符串中的子字符串。String trim()
:去除字符串两端的空白字符。int compareTo(String str)
:按字典顺序比较两个字符串。int compareToIgnoreCase(String str)
:忽略大小写地比较两个字符串。
4. StringBuffer类概述及其构造方法
1)StringBuffer类概述
StringBuffer用于可变的字符串操作,是线程安全的。与String相比,StringBuffer在字符串修改操作中更加高效。
构造方法
public StringBuffer()
public StringBuffer(int capacity)
public StringBuffer(String str)
2)StringBuffer类的成员方法
- 添加功能:
public StringBuffer append(String str)
追加字符串。
public StringBuffer insert(int offset, String str)
插入字符串。
- 删除功能:
```java
public StringBuffer deleteCharAt(int index)
删除指定索引的字符。
public StringBuffer delete(int start, int end)
删除指定索引区间的字符。
- 替换功能:
public StringBuffer replace(int start, int end, String str)
替换字符序列。
- 反转功能:
```java
public StringBuffer reverse()
反转字符串。
- 截取功能:
public String substring(int start)
截取子字符串。
public String substring(int start, int end)
截取子字符串。
5. Arrays类概述及其常用方法
Arrays类概述
Arrays类提供了一系列静态方法来操作数组,如排序和搜索。
成员方法
public static String toString(int[] a)
public static void sort(int[] a)
public static int binarySearch(int[] a, int key)
源码解析:
-
public static String toString(int[] a)
这个方法属于java.lang.Integer类,是一个静态方法,用于将一个整型数组转换为字符串。
源码大致如下:
java
public static String toString(int i) {
return Integer.toString(i);
}
这个方法首先将数组转换为一个字符串表示,通常使用数组的默认toString方法,该方法会调用StringBuilder来构建字符串,最后返回这个字符串。 -
public static int binarySearch(int[] a,int key)
这个方法属于java.util.Arrays类,是一个静态方法,用于在已排序的整型数组中使用二分查找算法查找特定元素。
源码大致如下:
java
public static int binarySearch(int[] a, int key) {
int low = 0;
int high = a.length - 1;while (low <= high) {
int mid = (low + high) >>> 1;
int midVal = a[mid];if (midVal < key) { low = mid + 1; } else if (midVal > key) { high = mid - 1; } else { return mid; // key found }
}
return -1; // key not found
}
6. 基本类型包装类概述
基本类型包装类允许基本数据类型封装成对象,从而提供更多的功能方法操作数据,特别是用于基本数据类型与字符串之间的转换。
Byte
,Short
,Integer
,Long
,Float
,Double
对应Character
,Boolean
7. Integer类概述及其构造方法
1)Integer类概述
Integer类在对象中包装了一个基本类型int的值,并提供了多个方法,在int类型和String类型之间互相转换。
构造方法
public Integer(int value)
public Integer(String s)
2)Integer类成员方法
- 从int到String的转换:
public static String toString(int i) public static Integer valueOf(int i)
- 从String到int的转换:
public static int parseInt(String s) public static Integer valueOf(String s)
- int 类型的实例方法
public int intValue()
:这个方法通常用在Integer
对象上,返回其对应的int
值。由于intValue()
是Number
类的实例方法,Integer
类继承了这个方法。这允许你从包装的Integer
对象中获取原始的int
值。
3)常用的基本进制转换
public static String toBinaryString(int i)
:将一个十进制整数i
转换为它的二进制字符串表示形式。public static String toOctalString(int i)
:将一个十进制整数i
转换为它的八进制字符串表示形式。public static String toHexString(int i)
:将一个十进制整数i
转换为它的十六进制字符串表示形式。- 十进制到其他进制:
将一个十进制整数public static String toString(int i, int radix)
i
转换为指定基数radix
的字符串表示形式。基数可以是2到36之间的任何整数。 - 其他进制到十进制:
将一个字符串public static int parseInt(String s, int radix)
s
按照给定的基数radix
解析为一个十进制整数。基数同样可以是2到36之间的任何整数。
8. Character类概述及其构造方法
1)Character类概述
Character类在对象中包装一个基本类型char的值。此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。
构造方法
public Character(char value)
2)Character类成员方法
public static boolean isUpperCase(char ch)
:这个方法检查给定的字符ch
是否为大写字母。如果是大写字母,返回true
;否则返回false
。public static boolean isLowerCase(char ch)
:这个方法检查给定的字符ch
是否为小写字母。如果是小写字母,返回true
;否则返回false
。public static boolean isDigit(char ch)
:这个方法检查给定的字符ch
是否为数字字符(0-9)。如果是数字字符,返回true
;否则返回false
。public static char toUpperCase(char ch)
:这个方法将给定的字符ch
转换为对应的大写字母。如果ch
已经是大写字母或不是字母,返回ch
本身。public static char toLowerCase(char ch)
:这个方法将给定的字符ch
转换为对应的小写字母。如果ch
已经是小写字母或不是字母,返回ch
本身。
9. Random类概述及其构造方法
1)Random类概述
此类用于产生随机数。如果用相同的种子创建两个Random实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
构造方法
public Random()
public Random(long seed)
2)Random类成员方法
public int nextInt()
:这个方法读取输入(通常是键盘输入或文件输入)中的下一个整数,并返回这个整数。如果输入的不是整数,将抛出InputMismatchException。public int nextInt(int n)
:这个方法读取输入中的下一个整数,但与nextInt()
不同的是,它还接受一个参数n
,该参数指定了要读取的整数的最大值。如果读取的整数大于n
,将抛出InputMismatchException。这个方法可以用来确保读取的整数在指定的范围内。
10. System类概述及其成员方法
System类概述
System类包含一些有用的类字段和方法。它不能被实例化。
成员方法
public static void gc()
:这个方法建议Java虚拟机(JVM)进行垃圾回收。它不会强制立即执行垃圾回收,但可以作为优化内存使用的一种提示。实际的垃圾回收时机取决于JVM的实现和当前的运行状态。public static void exit(int status)
:这个方法用于终止当前运行的Java虚拟机。参数status
是一个整数,表示程序的退出状态码。在Java中,非零的退出状态码通常表示程序异常终止。一旦调用这个方法,程序将停止执行,并返回给操作系统指定的状态码。public static long currentTimeMillis()
:这个方法返回以毫秒为单位的当前时间戳,表示自1970年1月1日00:00:00 GMT+00:00以来的毫秒数。这个时间戳可以用来获取当前时间、测量时间间隔或记录事件发生的时间点。
11. Date类概述及其方法
1)Date类概述
类Date表示特定的瞬间,精确到毫秒。
构造方法
public Date()
public Date(long date)
2)成员方法
public long getTime()
:这个方法返回一个表示特定瞬间的Date对象自从1970年1月1日00:00:00 GMT(称为“历元”或“epoch”)以来的毫秒数。这通常被称为Unix时间戳。getTime()
方法可以用来获取当前时间的毫秒表示,或者获取某个Date对象所表示的时间的毫秒值。public void setTime(long time)
:这个方法将Date对象的日期设置为自1970年1月1日00:00:00 GMT以来的指定毫秒数。这意味着你可以使用这个方法来创建一个表示特定时间点的Date对象,或者更新一个已有Date对象的时间。
12. DateFormat类概述及其方法
DateFormat类概述
DateFormat是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子类SimpleDateFormat。
SimpleDateFormat构造方法
public SimpleDateFormat()
public SimpleDateFormat(String pattern)
成员方法
public final String format(Date date)
:这个方法用于将一个Date对象格式化为一个字符串。SimpleDateFormat是不可变的(final),所以format方法不会修改其实例的状态。它使用SimpleDateFormat实例的模式来确定输出字符串的格式。public Date parse(String source)
:这个方法用于解析一个符合当前SimpleDateFormat实例模式的字符串,并将其转换为一个Date对象。如果字符串不符合模式,将抛出ParseException。