API学习
一、基本概念
API简介
https://docs.oracle.com/en/java/javase/11/docs/api/index.html
Application programming interface,应用程序编程接口,这里指的是“API文档”,通常叫做“Java文档”,是Java中提供的类的说明书。
Java组件的层次结构
模块(module)——>包(package)——>类或接口(class/interface)
模块
Java9后提供的一种新的Java基础组件,在包的基础上又进行了一层封装,是包的容器。
a) JavaSE Module:Java语言核心类库,其下的模块多以Java开头;
b) JDK Module:Java开发工具相关内容,其下的模块多以jdk开头。
二、Object类
简介
类层次结构最顶级的基类,所有的类都直接或间接继承Object类,所以,所有的类都是一个Object(对象)。
Object类属于 java.base 模块的 java.lang 包的普通类(java.lang 包下的类可以直接使用,不需要导包)
构造方法
Object类只有一个空参构造方法 Object(): 构造一个对象。所有子类对象初始化都会优先调用该方法。
成员方法(部分)
1、hashCode(): int hasCode() , 返回对象的哈希码值,该方法通过对象的地址值进行计算,不同对象的返回值一般不同;
2、getClass(): Class<?> getClass() , 返回调用此对象的运行类对象(调用者的字节码文件对象),一个类只有一个字节码文件对象;
3、toString(): String toString() , 返回该对象的字符串表示,默认打印的是地址值,不同对象打印的地址值肯定不同; 地址值的组成 全类名 + @ + 该对象的哈希码的无符号十六进制形式
4、equals(): boolean equals() , 返回其他对象与此对象是否相等。默认情况下比较两个对象的引用(地址值),无意义,建议重写。
JavaBean中重写Object类的方法
重写 toString() : 该对象的字符串表现形式,一般都是包含所有属性值且具有一定格式的字符串。
重写equals() : 可以通过关键属性(id)来确定该类的两个对象是否相同,可以比较所有属性值。
三、Scanner类
简介
扫描器。能够解析字符串(String)和基本数据类型的数据。简单来说就是键盘录入。Scanner类属于java.base 模块中 java.unit 包里的类。即需要导包
构造方法
Scanner(InputStream):
构造一个扫描器对象,从指定输入流中获取数据
参数 System.in ,对应键盘录入。
成员方法(部分)
hasNextXxx() :
判断是否还有下一个输入项,其中Xxx可能是任意的基本数据类型,返回结果为布尔类型;
nextXxxv() :
获取下一个输入项,其中Xxx可以是任意基本数据类型,返回对应类型的数据;
nextLine() :String nextLine()
获取下一行数据,以换行符作为分隔符;
next() : String next()
获取下一个输入项,以空白字符作为分割符
空白字符:空格、回车、tab等
四、String类
简介
字符串。每一个字符对象都是常量。
可以不需要new对象即平时直接 String int a=“abc”,而不用String a = new String(“abc”);
java.base 模块中的 java.lang 包中的类
构造方法(常用)
String(byte[]) :
构造一个String对象,将指定字节数组中的数据转化成字符串;
String(char[]) :
构造一个String对象,将指定字符数组中的数据转化成字符串;
成员方法
判断功能:
a) boolean equals(String) :
判断当前字符串与给定字符串是否相同,区分大小写;
b) boolean equalsIgnoreCase(String) :
判断当前字符串与给定字符串是否相同,不区分大小写;
c) boolean strartWith(String) :
判断是否以给定字符串开头;
d) isEmpty();
判断是否为空;
获取功能:
length() :获取当前字符串的长度;
charAt(int index) :获取指定索引位置的字符;
indexOf(String):获取指定字符(串)第一次出现的索引(第一个是 0);
lastIndexOf(String):获取指定字符(串)最后一次出现的索引;
substring(int):获取指定索引位置(含)之后的字符串;
substring(int,int):获取从索引start位置(含)到索引end位置(不含)的字符串;
转换功能:
getBytes(): 将字符串转换成字节数组;
toCharArray(): 将字符串转换成字符数组;
valueOf(String): 将指定类型数据转换成字符串;
replace(old, new): 将指定字符(串)替换成新的字符(串);
split(String): 切割字符串,返回切割后的字符串数据,原字符串不变;
trim(): 去掉字符串两端的空白字符;
五、StringBuilder和StringBuffer类
简介
可变字符序列,用于构造字符串对象。内部使用自动扩容的数组操作字符串数据。两者使用相同的API.
属于java.base 模块中的 java.lang 包中的类
StringBuilder比StringBuffer类运行效率高,实际开发使用多。
构造方法
StringBuilder(): 无参构造方法,构造一个空的StringBuilder容器;
StringBuilder(): 构造一个StringBuilder容器,并添加指定的字符串;
成员方法
append(): 将任意数据添加到StringBuilder容器中,返回自身;
toString(): 将当前StringBuilder容器转换成字符串;
六、Date类和Calendar类(抽象类,类名.方法名)
简介
日期和日历类,y用于操作日期相关信息。
类构造方法
Date(): 构造一个日期对象,当前系统时间,精确到毫秒;
Date(long): 构造一个日期对象,时间为自“1970年01月01日 00:00:00 GMT”起,至指定参数的毫秒数;
、成员方法
getTime(): 将日期对象转换成对应时间的毫秒值,即将date类型转换成long类型;
getInstance(): static Calender getInstance(),根据当前系统时期h和语言环境获取日历对象;
get(int field): 返回给定日历字段的值,其中Java中使用0-11表示1-12月份;
set(int field, int value): 将给定日历字段设置为给定的值;
七、基本类型的包装类
简介
基本数据类型不是对象,所以Java针对基本数据类型提供了对应的包装类,以形象形式来使用。
java.base 模块中的 java.lang 包中的类
八种基本数据类型对应八种包装类
包装类即数据类型的首字母大写即可(byte—Byte),其中int——Integer,char——Character
装箱:基本数据类型转包装类型(对象类型)
拆箱 包装类型(对象类型)转基本数据类型
成员方法
需求:将字符串类型的数据转换成对应的基本类型
static 基本类型 parseXxx(String),即使用方法 类名.parseXxx();
其中除了Character类没有这方法,其使用String类中的toCharArray()和charAt();
//因为a属于基本数据类型,不能通过 对象名. 的形式调用方法
//解决方案:将其转换成对应的包装类(引用类型)即可
//int a = 10;
//装箱
Integer integer = new Integer(20);
//拆箱
int b = integer.intValue();
System.out.println(integer);//输出20
System.out.println(b);//输出20
//JDK5的新特性,自动拆装箱(上面方法已过时)
Integer integer2 = 30;//装箱
int integer3 = integer2;//拆箱
//需求:将字符串类型的“10”,转换成int类型的10
String s = "10";
int num = Integer.parseInt(s);