系统类库
一、系统类库
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由指定用指定的字节的数组解码String(byte[] ascii, int hibyte)已弃用 此方法无法将字节正确转换为字符。 从JDK 1.1开始,首选的方法是通过String构造函数获取String(byte[] bytes, int offset, int length)通过使用平台的默认字符集解码指定的字节子阵列来构造新的String。String(byte[] bytes, int offset, int length, Charset charset)构造一个新的String通过使用指定的指定字节子阵列解码String(byte[] ascii, int hibyte, int offset, int count)已弃用 此方法无法将字节正确转换为字符。 从JDK 1.1开始,首选的方式是通过String构造函数获取String(byte[] bytes, int offset, int length, String charsetName)构造一个新的String通过使用指定的字符集解码指定的字节子阵列。String(byte[] bytes, String charsetName)构造一个新的String由指定用指定的字节的数组解码String(char[] value)分配一个新的String,以便它表示当前包含在字符数组参数中的字符序列。String(char[] value, int offset, int count)分配一个新的String,其中包含字符数组参数的子阵列中的字符。String(int[] codePoints, int offset, int count)分配一个新的String,其中包含String(String original)初始化新创建的String对象,使其表示与参数相同的字符序列; 换句话说,新创建的字符串是参数字符串的副本。String(StringBuffer buffer)分配一个新的字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。String(StringBuilder builder)分配一个新的字符串,其中包含当前包含在字符串构建器参数中的字符序列。
-
(5)方法概要描述
-
Modifier and Type Method and Description charcharAt(int index)返回char指定索引处的值。intcodePointAt(int index)返回指定索引处的字符(Unicode代码点)。intcodePointBefore(int index)返回指定索引之前的字符(Unicode代码点)。intcodePointCount(int beginIndex, int endIndex)返回此String指定文本范围内的Unicode代码点数。intcompareTo(String anotherString)按字典顺序比较两个字符串。
(6)属性详细介绍
(7)构造器详细介绍
(8)方法详细介绍
-
-
-
charAt
public char charAt(int index)返回
char指定索引处的值。指数范围为0至length() - 1。该序列的第一个char值在索引0,下一个索引为1,依此类推,与数组索引一样。如果
char由索引指定的值是-
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 Objectclone()创建并返回此对象的副本。booleanequals(Object obj)指示一些其他对象是否等于此。protected voidfinalize()当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。类<?>getClass()返回此Object的运行时类。inthashCode()返回对象的哈希码值。voidnotify()唤醒正在等待对象监视器的单个线程。voidnotifyAll()唤醒正在等待对象监视器的所有线程。StringtoString()返回对象的字符串表示形式。voidwait()导致当前线程等待,直到另一个线程调用该对象的voidwait(long timeout)导致当前线程等待,直到另一个线程调用voidwait(long timeout, int nanos)导致当前线程等待,直到另一个线程调用该对象的
-
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只能比较引用数据类型。

浙公网安备 33010602011771号