API (1)

86 阅读3分钟

API (1)

首先建议学API没必要全部背下来, 我自己也背不下来全部的API, 所以, 第一个是英文要多练习, 特别是API常见的英文, 因为第一, 很多都是通用的, 比如你背会一个方法, 那就相当于背会了很多个API共用的方法. 第二个是多查API文档, 官方是英文版的, 不好理解, 可以下载一个中文版的API文档. 按需查询, 哪里不会点哪里

1 包装类

1.1 作用

​ 把基本数据类型转化为对应的包装类型, 这样就可以在集合的泛型中使用

​ 主要就是8个基本数据类型: Byte, Short, Character, Integer, Long, Float, Double, Boolean

1.2 装箱和拆箱
1.2.1 装箱

​ 装箱: 把基本数据类型转换为包装类型

​ 拆箱: 把包装类型转化为基本数据类型

//输出基本数据类型 (包装类<=>基本数据类)
// 装箱
Integer e = 999;
// 拆箱
int d = e;

2 String的处理API

2.1 StringBuilder和StringBuffer
2.1.1 作用

​ 这两者作用都主要用于频繁的对字符串的操作 (例如拼接、修改), 效率更高

2.1.2 区别

​ StringBuilder和StringBuffer的区别在于, 前者处理效率高, 但是线程共享导致不安全. 后者处理效率低, 但是由于单独占有一个线程, 所以数据安全.

2.1.3 常用方法

​ - 内容拼接: append(任意类型)

​ - 获取内容长度: int length()

​ - 内容反转: reverse()

​ - 转化为String: toString()

2.2 StringJoiner
2.2.1 作用

​ 用于频繁对字符串的拼接,并且按照某一种格式进行拼接

2.2.2 比StringBuilder/Buffer的优势

​ 为拼接而生, 构造时如果设计好了 连接符, 首项和尾项, 可以自动拼入

​ 例如:

    public static String arraytoStr(int[] arr){
        StringJoiner sj = new StringJoiner(", ","[","]");

        for (int i = 0; i < arr.length; i++) {
            sj.add(arr[i]+"");
        }
        return sj.toString();
    }
2.2.3 常用方法

​ 拼接内容: add(String )

​ 获取内容的长度: int length();

​ 把内容转化为字符串: String toString();

3 Math

3.1 作用

​ Math译为数学, 是一个用于操作数字运算的工具类, 里面都是静态方法, 所以用类名.方法名调用.

3.2 常用方法

​ - 获取数字的绝对值: static double abs(double a)

​ - 向上取整: static double ceil(double a)

​ - 向下取整: static double floor(double a)

​ - 四舍五入: static long round(double a)

​ - 获取较大值: static double max(double a , double b)

​ - 获取n次方: static double pow(double a, double b )

​ - 获取随机数: static double random()

4 BigDecimal

4.1 作用

​ 为了解决小数进行运算数, 由于进制转换的问题, 会出现失真的问题

4.2 构造器

​ 这里讲构造器的原因是因为, BigDecimal的构造器有坑, 导致依旧失真

​ BigDecimal (double value): 亲测, 不好用, 会失真.

​ BigDecimal (String str): 字符串内数据类型与子类对象一致, 不会失真

​ BigDecimal.valueOf(num): 这个是方法不是构造器, 可以用来将double数据类型转化为BigDecimal, 这样计算不会失真

4.3 常用方法

​ - 把小数转化为BigDecimal: 被我拿到构造器讲了....

​ - 加法: BigDecimal add(BigDecimal a);

​ - 减法: BigDecimal subtract(BigDecimal a);

​ - 乘法: BigDecimal multiply(BigDecimal a);

​ - 除法: BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式)

​ - 把BigDecimal转化为小数double doubleValue()

5 LocalDate/LocalTime/LocalDateTime

5.1 LocalDate
5.1.1 作用

​ 获取日期, 年月日

5.1.2 特点

​ 对象不可以被改变, 修改完之后, 都要重新接收对象

5.1.3 常用方法

​ - 获取数据: getXxx

​ - 修改数据: withXxxx

​ - 添加数据: plusXxx

​ - 减少数据: minusXxx

​ - 时间比较: equals, isBefore, isAfter

5.2 LocalTime
5.2.1 作用

​ 获取时间, 时分秒

5.2.2 特点

​ 与LocalDate一样, 不过多阐述

5.2.3 常用方法

​ 与LocalDate一样, 不过多阐述

5.3 LocalDateTime
5.3.1 作用

​ 获取日期时间, 年月日, 时分秒

5.3.2 特点

​ 与LocalDate一样, 不过多阐述

5.3.3 常用方法

​ LocalDate常用的方法LocalDateTime都支持, 而且, 它有另外三种常用方法

​ - 把LocalDateTime转换成LocalDate: (LocalDate) .toLocalDate()

​ - 把LocalDateTime转换成LocalTime: (LocalTime) .toLocalTime()

​ - 合并LocalDate和LocalTime: static LocalDateTime of(LocalDate date, LocalTime time)

6 ZoneID和ZonedDateTime (时区时间)

6.1 ZoneID
6.1.1 作用

​ 获取时区的ID

6.1.2 获取对象的方法

​ - 获取系统默认的时区: static ZoneId systemDefault()

​ - 获取Java支持的全部时区Id: static Set getAvailableZoneIds()

​ - 把某个时区id封装成ZoneId对象: static ZoneId of(String zoneId)

6.2 ZonedDateTime
6.2.1 作用

​ 获取带时区的日期信息, 年月日, 时分秒

6.2.2 特点

​ 与LocalDate一样, 不过多阐述

6.2.3 常用方法

​ 与LocalDate一样, 不过多阐述

7 Instant (时间戳)

7.1 作用

​ 获取某一个瞬间,秒,毫秒,微秒,纳秒

7.2 常用方法

​ 与LocalDate一样, 不过多阐述

​ 获取时间时可以选getEporchSecond()或者getNano(), 分别指代获取总秒数和纳秒(不足一秒)

8 DateTimeFormatter

8.1 作用

把时间转化为指定格式的字符串,也可以把字符串转化为对应的时间

8.2 常用方法

​ - 格式化时间: public String format(时间对象)

8.3 LocalDateTime提供的格式化, 解析时间的方法

​ - 格式化时间: public String format(DateTimeFormatter formatter)

​ - 解析时间: public static LocalDateTime parse(String 时间字符串, DateTimeFormatter formatter)

9 Duration

9.1 作用

​ 可以用于计算两个时间对象相差的天数、小时数、分数、秒数、纳秒数;支持LocalTime、LocalDateTime、Instant等时间。

9.2 常用方法

计算隔多少天,并返回: public long toDays()

计算隔多少小时,并返回: public long toHours()

计算隔多少分,并返回: public long toMinutes()

计算隔多少秒,并返回: public long toSeconds()

计算隔多少毫秒,并返回: public long toMillis()

计算隔多少纳秒,并返回: public long toNanos()

PS: 源码都很简单, 就是需要对API文档多熟悉熟悉