一、系统类库
1、系统类库解释
JRE中已经编写好的类和接口的统称,我们叫Java的系统类库。
我们直接使用这些类和接口即可。
2、API文档
Application Programming Interface,应用程序接口。
类和接口的解释说明文档,或者叫使用手册。
下载:
jdk api 1.8_google.CHM(google翻译)
jdk api 1.8_baidu.CHM (百度翻译)
3、API文档使用
(1)主页面
左上角:包
左下角:类
右边:解释说明
(2)使用
以String类为例:
第一步,选择包名:java.lang
第二步,选择类:String
第三步,查看右边String类的详细信息
4、类的详细信息
以String类为例:
(1)类的声明
-
public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence
(2)类的功能描述
-
String
类代表字符串。Java程序中的所有字符串文字(例如"abc"
)都被实现为此类的实例。字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,它们可以被共享。 例如:
String str = "abc";
相当于:
char data[] = {'a', 'b', 'c'};
String str = new String(data);
(3)属性概要介绍
-
-
Field Summary
Modifier and Type Field and Description static Comparator<String>
CASE_INSENSITIVE_ORDER
一个比较器,按compareToIgnoreCase
订购String
对象。
-
(4)构造方法概要描述
-
-
构造方法摘要
Constructor and Description String()
初始化新创建的String
对象,使其表示空字符序列。String(byte[] bytes)
通过使用平台的默认字符集解码指定的字节数组来构造新的String
。String(byte[] bytes, Charset charset)
构造一个新的String
由指定用指定的字节的数组解码charset 。String(byte[] ascii, int hibyte)
已弃用 此方法无法将字节正确转换为字符。 从JDK 1.1开始,首选的方法是通过String
构造函数获取Charset
,字符集名称,或者使用平台的默认字符集。String(byte[] bytes, int offset, int length)
通过使用平台的默认字符集解码指定的字节子阵列来构造新的String
。String(byte[] bytes, int offset, int length, Charset charset)
构造一个新的String
通过使用指定的指定字节子阵列解码charset 。String(byte[] ascii, int hibyte, int offset, int count)
已弃用 此方法无法将字节正确转换为字符。 从JDK 1.1开始,首选的方式是通过String
构造函数获取Charset
,字符集名称,或使用平台的默认字符集。String(byte[] bytes, int offset, int length, String charsetName)
构造一个新的String
通过使用指定的字符集解码指定的字节子阵列。String(byte[] bytes, String charsetName)
构造一个新的String
由指定用指定的字节的数组解码charset 。String(char[] value)
分配一个新的String
,以便它表示当前包含在字符数组参数中的字符序列。String(char[] value, int offset, int count)
分配一个新的String
,其中包含字符数组参数的子阵列中的字符。String(int[] codePoints, int offset, int count)
分配一个新的String
,其中包含 Unicode code point数组参数的子阵列中的 字符 。String(String original)
初始化新创建的String
对象,使其表示与参数相同的字符序列; 换句话说,新创建的字符串是参数字符串的副本。String(StringBuffer buffer)
分配一个新的字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。String(StringBuilder builder)
分配一个新的字符串,其中包含当前包含在字符串构建器参数中的字符序列。
-
(5)方法概要描述
-
方法摘要
Modifier and Type Method and Description char
charAt(int index)
返回char
指定索引处的值。int
codePointAt(int index)
返回指定索引处的字符(Unicode代码点)。int
codePointBefore(int index)
返回指定索引之前的字符(Unicode代码点)。int
codePointCount(int beginIndex, int endIndex)
返回此String
指定文本范围内的Unicode代码点数。int
compareTo(String anotherString)
按字典顺序比较两个字符串。
(6)属性详细介绍
(7)构造器详细介绍
(8)方法详细介绍
-
-
-
charAt
public char charAt(int index)
返回
char
指定索引处的值。指数范围为0
至length() - 1
。该序列的第一个char
值在索引0
,下一个索引为1
,依此类推,与数组索引一样。如果
char
由索引指定的值是surrogate ,则返回所述替代值。-
Specified by:
charAt
在界面CharSequence
-
参数
index
-char
值的指数。 -
结果
所述
char
此字符串的指定索引处的值。 第一个char
值是索引0
。 -
异常
IndexOutOfBoundsException
- 如果index
参数为负数或不小于此字符串的长度。
-
-
-
二、常用包
java.lang(此包下的类,无需导入,可以直接使用)
java.io
java.text
java.util
java.net
java.sql
三、Object类
1、包
java.lang.Object
2、构造器
Object()`
无参构造器,没有啥用。
3、方法
-
-
Modifier and Type Method and Description protected Object
clone()
创建并返回此对象的副本。boolean
equals(Object obj)
指示一些其他对象是否等于此。protected void
finalize()
当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。类<?>
getClass()
返回此Object
的运行时类。int
hashCode()
返回对象的哈希码值。void
notify()
唤醒正在等待对象监视器的单个线程。void
notifyAll()
唤醒正在等待对象监视器的所有线程。String
toString()
返回对象的字符串表示形式。void
wait()
导致当前线程等待,直到另一个线程调用该对象的notify()
方法或notifyAll()
方法。void
wait(long timeout)
导致当前线程等待,直到另一个线程调用notify()
方法或该对象的notifyAll()
方法,或者指定的时间已过。void
wait(long timeout, int nanos)
导致当前线程等待,直到另一个线程调用该对象的notify()
方法或notifyAll()
方法,或者某些其他线程中断当前线程,或一定量的实时时间。
-
4、超类
根类,基类。
所有类都直接或间接继承了Object类。
package com.hs.obj;
public class P {
//p extend object
}
package com.hs.obj;
public class Student extends P{
public static void main(String[] args) {
Student s=new Student();
Student s2=new Student();
s.toString();
s.hashCode();
s.equals(s2);
}
}
Object充分体现了面向对象继承的使用!!
我们将所有类都应该有的方法,定义到Object。
5、常用方法
(1)hashCode方法
每个对象在内存中存储,都一个对应的地址。
我们可以通过地址找到内存中的该对象,然后访问对象。
每个对象都一个唯一的地址。
hashCode方法作用:将对象的地址,通过哈希算法(散列算法)转换为一个int整数,这个整数我们称为哈希码。
一般情况,不同的对象对应的哈希码值不同。但是少数情况,不同的对象哈希码值可能相同。
Student s=new Student();
Student s2=new Student();
System.out.println(s.hashCode());
System.out.println(s2.hashCode());
(2)toString方法
返回对象的字符串形式:类名@哈希码值
Student s=new Student();
Student s2=new Student();
System.out.println(s.hashCode());
System.out.println(s2.hashCode());
System.out.println(s.toString());
System.out.println(s2.toString());
(3)equals方法
比较两个对象是否相等:比较的是对象的首地址是否相同,如果相同返回true,如果不相同返回false。
Student s=new Student();
Student s2=new Student();
System.out.println(s.hashCode());
System.out.println(s2.hashCode());
System.out.println(s.toString());
System.out.println(s2.toString());
System.out.println( s.equals(s2));
Student s3=s2;
System.out.println(s3.equals(s2));
==和equals区别:
==既可以比较基本数据类型,也可以比较引用数据类型。
equals只能比较引用数据类型。
比较引用数据类型,==和equals都是比较的是对象的首地址。