1.什么是API?
可以理解为Java自己提供的标准类库,开发人员可直接使用其方法,
而不用进行源码实现。如常用的打印方法:System.out.println();,这是Java自己提供的东西。
官方解释:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,
目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,
而又无需访问源码,或理解内部工作机制的细节。
2.常用API
了解API是什么之后,再看一下Java中常用的API有哪些:
System类
StringBuffer&StringBuilder类
Math数学类
日历时间格式
Runtime类
包装类
2.1 System类
System类提供了大量的静态方法,操作的内容和系统有关。
long currentTimeMillis(); 获取当前时间戳
Properties getProperties(); 获取系统属性的方法
exit(int status); 退出当前程序
arrayCopy(Object src, int srcPos, Object dest, int detPos, int length)
Object src ——原数组
int srcPos ——从原数组指定下标开始
Object dest ——目标数组
int destPos——目标数组从指定位置开始
int length ——读取数据的个数
2.2StringBuffer&StringBuilder
(1)概述
为了解决String字符串操作导致的内存冗余问题,提高效率,Java中提供了StringBuffer和StringBuilder来操作字符串,并且提供了很多方法,便于程序开发。
StringBuffer和StringBuilder中都有char类型可变长数组作为字符串的保存空间。使用到的方法类型和ArrayList类似。
区别:
StringBuffer 线程安全,但效率较低
StringBuilder 线程不安全,但效率较高
(2)StringBuffer构造方法
Constructor:
StringBuffer(); 创建一个未存储任何字符串信息的空StringBuffer空间,底层初始化一个16个字符char类型数组
StringBuffer(String str); 根据提供的String类型字符串创建对应的StringBuffer空间,底层char类型数组的容量会根据str.length + 16决定,并且保存对应的str
(3)StringBuffer成员方法
增:
append(Everything); 在StringBuffer和StringBuilder对象中,添加另外的数据,并且当作字符串处理。
insert(int index, Everything); 在StringBuffer和StringBuilder对象中,在指定的下标位置,添加其他内容,并且当作字符串处理。
删:
dele(int start, int end); 删除指定范围内的字符 start <= n < end
deleteChartAt(int index); 删除指定下标的字符
改:
replace(int start, int end, String str); 从指定位置start开始i,到end结束, start <= n < end,使用str替换
setCharAt(int index, char ch); 使用ch替换指定下标index对应的字符。
- 1
- 2
查:
String toString(); 将底层的char类型数组保存的字符内容转换成对应的String类型字符串返回。
int length(); 返回底层char类型数组中有多少个有效元素
String substring(int begin); 从指定位置开始获取到char类型数组有效元素末尾对应的字符串,截取操作
String substring(int begin, int end); 从指定位置begin开始到end结束,获取对应的字符串,要头不要尾
int indexOf(String str); 指定元素字符串所在下标位置
int lastindexOf(String str); 指定元素字符串最后一次所在下标位置
反序:
reverse();
2.3Math数学类
常用方法:
public static double abs(double a); 返回值为绝对值
public static double ceil(double a); 向上取整
public static double floor(double a); 向下取整
public static double round(double a); 四舍五入
public static double random(); 随机数 【0.0 <= 1.0】
2.4日历时间格式
2.4.1 Date时期类【逐渐淘汰】
作用:
获取当前系统时间【大部分构造方法已过时,仅作了解】
Constructor:
Date(); 创建一个Date,对应当前时间,精度为毫秒值
Date(long date); 根据时间戳毫秒数,创建对应的Date对象,时间戳是从1970-01-01 00:00:00 GMT (GMT:格林威治标准时间)
Method:
long getTime();
通过Date类对象获取对应当前时间的毫秒数
- 1
- 2
2.4.2 DateFormat 日期格式类
DateFormat 是一个abstract修饰的类,用于转换时间。
DateFormat不能直接使用,一般使用DateFormat子类
SimpleDateFormat来使用
SimpleDateFormat构造方法中需要的参数是一个
String, String类型的参数有特定的要求
标识字母(区分大小写) | 对应含义 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 时(24小时) |
m | 分 |
s | 秒 |
String format(Date date);
根据指定匹配要求,转换Date格式为字符串
Date parse(String format);
按照指定的匹配规则,解析对应的字符串,返回一个Date数据
2.4.3 Calender日历类
Calender日历类,替换了很多Date类中的方法。把很多数据都作为静态的属性,通过一些特定的方法来获取。比Date处理日期数据更加方便。
Calender是一个abstract修饰的类,没有自己的类对象。这里通过特定的方法getInstance获取Calender日历类对象。
public static Calender getInstance();
默认当前系统时区的Calender对象
【常用方法:】
public int get(int field);
返回特定数据的数值
public void set(int field, int value);
设置特定字段对应的数据
public Date getTime();
返回得到一个Date对象,从计算机元年到现在的毫秒数,保存在date对象中
字段名 | 含义 |
---|---|
YEAR | 年 |
MONTH | 月(从0开始,使用时须+1) |
DAY_OF_MONTH | 当前月的第几天 |
HOUR | 小时(12小时制) |
HOUR_OF_DAY | 小时(24小时制) |
MINUTE | 分钟 |
SECOND | 秒 |
DAY_OF_WEEK | 周几(注意:周日为1) |
2.5 Runtime类
Runtime当前程序运行环境类对象,只要程序启动就会有对应的Runtime存在。
获取Runtime对象的方法:
Runtime Runtime.getRuntime();
需要了解的方法:
gc(); JVM的GC机制,但是就算你调用了GC方法,也不会立即执行。
long totalMemory(); 目前程序使用的总内存
long freeMemory(); 目前程序使用的剩余内容
long maxMemory(); Java程序能过申请的最大内存
Process exec(String exePath); 开启一个程序
2.6包装类
Java中提供了两种数据类型
【基本数据类型】
byte short int long double float boolean char
【引用数据类型】
类对象,数组,字符串
Java中万物皆对象,Java中提供了包装类,让基本类型也可以当做类对象来处理。
包装之后的基本数据类型依然可以进行基本的操作和运算,但是多了一些特有的方法,增加了操作性。
基本类型 | 对应的包装类(java.lang) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
2.6.1自动装箱和自动拆箱
基本类和包装类型之间进行转换的操作,这个过程就是"装箱"和"拆箱"。
装箱 从基本类型到包装类
拆箱 从包装类到基本类型
【不推荐】
使用强制操作,太麻烦!!!
2.6.2包装类和字符串数据转换过程
从文本中读取的数据很多都是字符串类型,例如 JSON XML Database
除了Character字符包装类之外,其他的包装类都有对应的解析方法
以下方法都是static修饰的静态方法
public static byte parseByte(String str);
public static short parseShort(String str);
public static int parseInt(String str);
public static long parseLong(String str);
public static float parseFloat(String str);
public static double parseDouble(String str);
public static boolean parseBoolean(String str);
以上方法都是对饮的包装类调用,解析成对应的基本数据类型。