16_实用类2
StringBuffer
String:字符串是一个不可变的对象,当字符串内容发生变化时,都会产生新的字符串。
StringBuffer(字符串缓冲区):有效提升字符串拼接等变换的性能,可以把它理解为是一种可变的字符串。
构造方法:
- StringBuffer():创建一个空的字符串缓冲区
- StringBuffer(String):创建一个字符串缓冲区并添加好字符串
常用方法:
- append(各种类型):StringBuffer向字符串缓冲区追加内容(重载方法)
- toString():String 将字符串缓冲区中的内容转化为字符串
- insert(int offset,String str):StringBuffer 向字符串缓冲区的指定位置追加内容,原有的内容会依次后移
- deleteCharAt(int index):Stingbuffer 根据下标删除字符串缓冲区的制定字符
- reverse():StringBuffer 将字符串缓冲区中的内容反转
- …
在StringBuffer中有大量和String相同的方法,例如:subString(int start)、replace、length、charAt…
StringBuilder的API和StringBuffer相像,且性能更佳,但它是线程不安全的类型
StringJoiner
构造方法:
- StringJoiner(CharSequence delimiter)只指定分隔符
- StringJoiner(CharSequence delimiter,CharSequence prefix,charSqeuence suffix)指定分隔符、前缀,后缀
常用方法:
- add(charSequence newElement):StringJoiner 拼接字符串
- toString():String 将拼接的内容转化为字符串
- merge(StringJoiner):StringJoiner 拼接出两个StringJoiner
**注:**可以采用StringJoiner来实现字符串的拼接,其底层使用StringBulider,性能优异。
时间和日期
Date
构造方法:
- Date()以当前的系统时间毫秒值来构建Date对象
- Date(long date)传入时间毫秒值来构建Date对象
常用方法:
- getTime():long 获取Date对象的时间毫秒值(从1970.1.1 00:00:00到现在的时间毫秒值)
- setTime():void 给Date对象指定时间毫秒值
- before(Date when):boolean 判断当前Date对象是否在指定Date对象之前
- aftere(Date when):boolean 判断当前Date对象是否在指定Date对象之后
- equals(Object obj):boolean 判断两个Date对象是否相同(时间一致)
- …
Calender类
构造方法:
- 没有构造方法,只有一个获取Calender对象的方法
- getInstance():Calender 因为Java帮助你实现了一系列本地化处理
常用方法:
-
set(int field,int value):void 给Calendar对象指定具体的时间字段值
- 年:YEAR
- 月:MONTH
- 日:DATE
- 时:HOUR
- 分:MINUTE
- 秒:SECOND
- 星期:DAY_OF_WEEK
-
getTime():Date转化为Date对象
-
add(int field,int amount):void 给指定的时间字段添加值(可以传入正数或负数)
-
…
Java8的时间和日期
-
Instant:处理时间戳,类比Date
- now():Instant
- Date类
- from(Instant):Date
- toInstant():Instant
-
LocalDate:处理年月日信息(日期)
- now():LocalDate
- of(年,月,日):LocalDate
- isLeapYear():boolean 判断是否为闰年
- …
-
LocalTime:处理时分秒信息(时间)
- now():LocalTime
- of(时,分,秒):LocalTime
- …
-
LocalDateTime:处理年月日时分秒信息
- now():LocalDateTime
- of(年,月,日,时,分,秒):LocalDateTime
- …
格式化时间和日期
SimpleDateFormat:java.text Java 8以前的时间和日期类型使用
构造方法:
- SimpleDateFOrmat(格式化字符串)构建日期格式化对象
常用方法:
- parse(时间和日期字符串):Date解析字符串为Date对象
- format(Date date):String格式化Date对象为字符串
DateTimeFormatter :Java 8的时间和日期类型使用
- ofparttern(格式化字符串):DateTimeFormatter
- foramt(日期):String
- 在 Java 8 的时间和日期类型中,都有一个 parse 方法,可以传入一个 DateTimeFormatter 对象,以进行解析字符串为指定时间和日期类型的作用
BigDecimal
java.math.BigDecimal,用于精确的运算(浮点数计算)
构造方法:
- BigDecimal(String val)根据一个字符串数值创建对象
**注意:**千万不要用BigDecimal(double val)
常用方法:
- add(BigDecimal):BigDecimal 加法
- subtract(BigDecimal):BigDecimal 减法
- multiply(BigDecimal):BigDecimal 乘法
- divide(BigDecimal,int ,int):BigDecimal 除法
- p2:int 代表保留几位小数
- p3:int 代表规则
- HALF_UP 四舍五入
- 向上取整
- 向下取整
- …