20201225-魏凯

2020.12.25

1. String

1.1 String/StringBuilder/StringBuffer的区别

  • StringBuffer是线程安全的,其中绝大多数实例方法都是由synchronized修饰符修饰的
  • StringBuilder不是线程安全的,其中所有的实例方法都没有synchronized修饰符修饰的

1.2 字符集

  • 如果字符串中仅包含ISO-8859-1字符集中的字符,则字符序列按照ISO-8859-1字符集编码(encode)的。此时String实例中的coder取值为0

  • 如果字符串中包含ISO-8859-1字符集之外的字符,则在String实例内部存储的byte数组是将字符序列按照UTF-16LE字符集编码的。此时String实例中的coder值为1

2. Date(日期)

2.1历元:格林威治标准时间1970年1月1日的00:00:00:000(格里高利历)

2.2java语言中传统的表示时间的方法是参照历元获取偏移量,比如System.currTimeMillis()

2.3在java语言中使用java.util.Date类的实例来表示日期和时间

2.4java.util.Date类尚未被废弃的两个构造方法:

  • public Date()
  • public Date(long millis)

2.5java.util.Date类尚未被废弃的实例方法:

  • public long getTime()
  • public void setTime(long millis)
  • public int hashCode()
  • public String toString()
  • public boolean before(Date when):若当前Date实例表示的瞬间早于参数when表示的瞬间就返回true
  • public boolean after(Date when):若当前Date实例表示的瞬间晚于参数when表示的瞬间就返回true
  • public boolean equals(Object another):若当前Date实例与参数指定的对象相等则返回true
  • public int compareTo(Date anotherDate):比较两个日期的顺序,若当前Date实例表示的瞬间早于、等于、晚于参数anotherDate所表示的瞬间则分别返回小于零、等于零、大于零的整数
  • public Object clone()
  • public Instant toInstant()【JDK1.8新增】

2.6java.util.Date类中的类方法:

public static Date from(Instant instant)【JDK1.8新增】

3. Time(时间)

3.1java.time包是Java 8新增的包

3.2LocalDate是java 8新增的最终类(final class)

3.3LocalDate类的实例都是不可变对象(year/month/dateOfMonth)

3.4LocalDataTime是Java 8新增的最终类

3.5LocalDataTime类的实例都是不可变对象(LocalDate/LocalTime)

3.6LocalTime是Java 8新增的最终类

3.7LocalTime类的实例都是不可变对象(hour/minute/second)

4. Calendar(日历)

4.1 Calendar类是一个抽象类,GregorianCalendar类是Calendar非抽象的子类

4.2 Calendar为特定瞬间与一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法

例如:

  • calendar.set(year, month, date);
  • calendar.set(year, month, date, hourOfDay, minute);
  • calendar.set(year, month, date, hourOfDay, minute, second);

4.3 Calendar类中提供了根据Calendar实例返回java.util.Date实例的方法:

public final Date getTime()

4.4 根据Calendar实例来获得java.util.Date实例

①获得Calendar实例(用它充当一个容器)

②清空Calendar实例中所有日历字段的值

③根据实际需要依次设置年、月、日、时、分、秒、毫秒等日历字段的值

④根据Calendar实例获得Date实例

评论