Java 学习笔记·八 —— Java 常用工具·API
Java 常用工具APIAPI,Application Programming Interface,应用程序编程接口,这里指的是 API 文档,通常叫做 “Java 文档”,是 Java 中提供的类的使用说明书Java 中的类和方法几乎全部都有文档注释(/** 文档注释内容 */),这些文档注释就被 Java 的命令(javadoc.exe,在 JDK 安装的 bin 目录下)编译成了 Java
Java
常用工具
API
API
,Application Programming Interface
,应用程序编程接口,这里指的是 API
文档,通常叫做 “Java
文档”,是 Java
中提供的类的使用说明书
Java
中的类和方法几乎全部都有文档注释(/** 文档注释内容 */
),这些文档注释就被 Java
的命令(javadoc.exe
,在 JDK
安装的 bin
目录下)编译成了 Java
文档,即 API
发挥面向对象思想,找到 Java
提供的对象来实现功能,学习 API
文档就是学习 Java
中的类的使用方法。开发 Java
程序的过程中,想要使用 Java
提供的类的功能,就需要通过 API
文档来查找并使用。
API
是程序员和 Java
语言之间沟通的桥梁
API
文档的使用方法
使用步骤 :
-
搜索类
在搜索框里按类名模糊查询,或者通过文档顶部提供的层级结构查找。
-
查看类的包名
很多类在使用之前需要导包,所以要知道该类所属的包。 每一个类都默认导入
java.lang
包,所以如果你使用的是该包下的类,则无须手动导包。 -
查看类的注释
使用一个类前,要知道该类的大致功能和它的定位,要知道一个类的能力边界,以便快速确定该类是不是你真正需要的。
-
查看构造方法(如有)
使用类之前要创建类的对象。如果是静态类或者一些工具类如
java.lang.Math
类,则不需要这么做。 -
查找需要的方法并使用
根据标识符的命名规则,可以快速定位方法的位置。仔细阅读方法的注释,注意区分重载方法的使用有何不 同。如果找不到想要的方法,可能该方法在父类,或者更高的父类中。
Object
类
类层次结构最顶层的基类,所有类都直接或间接的继承自 Object
类,所以,所有的类都是一个 Object
(对象)。Java
是严格的面向对象的语言,所以,所有的函数和数据都封装到类中(并非所有的编程语言都这样),通过类的对象来调用这些功能或实现某个算法。
-
构造方法
Object():
构造一个对象。所有子类对象初始化时都会优先调用该方法 -
成员方法
int hashCode():
返回对象的哈希码值,该方法通过对象的地址值进行计算,不同对象的返回值一般不同Class<?> getClass():
返回调用此方法对象的运行时类对象(调用者的字节码文件对象)String toString():
返回该对象的字符串表示boolean equals():
返回其它某个对象是否与此对象“相等”。默认情况下比较两个对象的引用(地址值),建议重写
Scanner
类
扫描器,能够解析字符串(String
)和基本数据类型的数据
-
构造方法
Scanner(InputStream):
构造一个扫描器对象,从指定输入流中获取数据参数System.in
,对应键盘录入 -
成员方法
hasNextXxx():
判断是否还有下一个输入项,其中Xxx
可能是任意基本数据类型,返回结果为布尔类型nextXxx():
获取下一个输入项,其中Xxx
可能是任意基本数据类型,返回对应类型的数据String nextLine():
获取下一行数据。以换行符作为分隔符。String next():
获取下一个输入项,以空白字符作为分隔符空白字符:空格、tab、回车等
String
类
字符串,每一个字符串对象都是常量
-
构造方法
String(byte[]):
构造一个String
对象,将指定字节数组中的数据转化成字符串String(char[]):
构造一个String
对象,将指定字符数组中的数据转化成字符串 -
成员方法
boolean equals(String)
:
判断当前字符串与给定字符串是否相同,区分大小写boolean equalsIgnoreCase(String):
判断当前字符串与给定字符串是否相同,==不区分大小写 ==boolean startWith(String):
判断是否以给定字符串开头int length():
获取当前字符串的长度char charAt(int index):
获取指定索引位置的字符int indexOf(String):
获取指定字符(串)第一次出现的索引int lastIndexOf(String):
获取指定字符(串)最后一次次出现的索引String substring(int):
获取指定索引位置(含)之后的字符串String substring(int, int):
获取从索引start
位置(含)起至索引end
位置(不含)的字符串byte[] getBytes():
将字符串转换成字节数组char[] toCharArray():
将字符串转换成字符数组static String valueOf(..) :
将指定类型数据转换成字符串String replace(old, new):
将指定字符(串)替换成新的字符(串)String[] split(String):
切割字符串,返回切割后的字符串数据,原字符串不变String trim():
去掉字符串两端的空白字符
StringBuilder
和 StringBuffer
类
可变字符序列,用于构造字符串对象。内部使用自动扩容的数组操作字符串数据。StringBuilder
和 StringBuffer
使用相同的 API
。
-
构造方法
StringBuilder()
:
构造一个空的StringBuilder
容器StringBuilder(String):
构造一个StringBuilder
容器,并添加指定字符串 -
成员方法
StringBuilder append(…):
将任意数据添加到StringBuilder
容器中String toString():
将当前StringBuilder
容器转成字符串
Data
和 Calendar
类
日期和日历类,用于操作日期相关的信息
-
构造方法
Date():
构造一个日期对象,当前系统时间,精确到毫秒Date(long):
构造一个日期对象,时间为自“1970年1月1日00:00:00 GMT”
起,至指定参数的毫秒数 -
成员方法
long getTime():
将日期对象转换成对应时间的毫秒值static Calendar getInstance():
根据当前系统时区和语言环境获取日历对象int get(int field):
返回给定日历字段的值void set(int field, int value):
将给定的日历字段设置为指定的值
Calender
类是抽象类,不能创建对象
基本类型的包装类
基本数据类型不是对象,所以 Java
针对基本类型提供了对应的包装类,以对象的形式来使用
- 装箱
基本类型转包装类型(对象类型)
- 拆箱
包装类型(对象类型)转基本类型
- 成员方法
基本类型 parseXxx(String)
:
将字符串类型的数据转换成对应的基本类型
示例代码
package cn.itcast.demo2;
import java.util.Calendar;
import java.util.Scanner;
public class APIDemo1 {
/*
* Object 类:
* 类层次结构最顶层的基类,所有类都直接或间接继承自Object
* 所有类都是一个Object对象
* 构造方法:
* Object() : 构造一个对象,所有子类对象初始化时都会优先调用该方法
* 成员方法:
* int hashCode() : 返回对象的哈希码值,该方法通过对象的地址值进行计算
* 不同对象的返回值一般不同
* Class<?>getClass() :
* 返回调用此方法对象的运行时类对象(调用者的字节码文件对象)
* String toString() : 返回该对象的字符串表示
* boolean equals() : 比较是否相等,建议重写
* */
public static <Calender> void main(String[] args) {
// 非静态方法的调用方式:通过 对象名. 的形式
Object obj1 = new Object();
Object obj2 = new Object();
int code1 = obj1.hashCode();
int code2 = obj2.hashCode();
System.out.println(code1);
System.out.println(code2);
System.out.println("----------------");
Class clazz1 = obj1.getClass();
Class clazz2 = obj2.getClass();
System.out.println(clazz1);
System.out.println(clazz2);
System.out.println("----------------");
// 默认打印地址值
// 地址值的组成: 全类名 + @ + 该对象的哈希码的无符号16进制形式
String s1 = obj1.toString();
String s2 = obj2.toString();
System.out.println(s1);
System.out.println(s2);
System.out.println("----------------");
boolean b1 = obj1.equals(obj2);
System.out.println(b1);
System.out.println("----------------");
/*
* Scanner 类:
* 扫描器,能够解析字符串(String)和基本数据类型的数据
* 构造方法:
* public Scanner(InputStream is):
* 构造一个扫描器对象,从指定输入流中获取数据参数
* System.in对应键盘录入
* 成员方法:
* hasNextXxx():
* 判断是否还有下一个输入项,Xxx可能是任意基本数据类型
* 返回结果为 布尔类型
* ** nextXxx():
* 获取下一个输入项,Xxx可能是任意基本数据类型
* 返回对应类型的数据
* ** String nextLine():
* 获取下一行数据,以换行符作为分隔符
* String next():
* 获取下一个输入项,以空白字符为分隔符
* 空白字符:空格、tab、回车等
* */
// System.in 标准的输入流,默认指向键盘
Scanner sc = new Scanner(System.in);
/*System.out.println("Enter one int");
// 为了解决 InputMismatchException,可以加一个判断
if (sc.hasNextInt()) {
int num = sc.nextInt();
System.out.println(num);
}*/
// 97 = a
byte[] by = {97,98,99};
String str1 = new String(by);
System.out.println(str1);
char[] ch = {'h', 'e', 'l', 'l', 'o'};
String str2 = new String(ch);
System.out.println(str2);
// String 可以免写 new
String str3 = "abc";
/*
* StringBuilder 和 StringBuffer
* 可变字符序列,用于构造字符串对象,内部使用自动扩容的数组操作
* 字符串数据,使用相同的 API
* 建议优先使用 StringBuilder,速度更快
* 构造方法:
* StringBuilder()
* 构造一个空的 StringBuilder容器
* StringBuilder(String)
* 构造一个 StringBuilder容器,并添加指定字符串
* 成员方法:
* StringBuilder append(...):
* 将任意数据添加到容器中,返回自身
* StringBuilder toString():
* 将当前StringBuilder容器转成字符串
* */
/*
* Calender 类是抽象类,不能创建对象
* 但是可以如下使用
* */
Calendar c = Calendar.getInstance();
System.out.println(c);
// 获取年月日
// java 中使用 0-11 表示月份
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DATE);
System.out.println("Year = " + year);
System.out.println("Month = " + (month + 1));
System.out.println("Day = " + day);
// 设置
/* System.out.println("----------------");
c.set(Calendar.YEAR, 2020);
int year2 = c.get(Calendar.YEAR);
System.out.println("Year2 = " + year2);*/
c.set(2020, 2, 3);
int year3 = c.get(Calendar.YEAR);
int month3 = c.get(Calendar.MONTH);
int day3 = c.get(Calendar.DATE);
System.out.println("Year3 = " + year3);
System.out.println("Month3 = " + (month3 + 1));
System.out.println("Day3 = " + day3);
/*
* 装箱:基本类型转包装类型(对象类型)
* 拆箱:包装类型(对象类型)转基本类型
*
* 基本类型 parseXxx(String):(静态)
* 将字符串类型的数据转成对象的基本类型
* 除了 Character 都有
*
* 如果字符串想转换成 char类型
* 可以使用 String的方法 toCharArray()、charAt()
*
* */
int a = 10;
// a 是基本类型,不能 对象名. 来调用方法
Integer i1 = new Integer(a); // 过时写法
int b = i1.intValue();
// 新写法
Integer i2 = 30;
int a2 = i2;
String s = "10";
int num = Integer.parseInt(s);
System.out.println(num+10);
}
}
如果
if
语句控制的只有一行代码,可以省略{}
更多推荐
所有评论(0)