20201225-孔鹏曌

学习内容

日期

​ 在Java语言中,传统的表示时间的方法是参照历元(格林威治标准时间,1970.01.01T00:00:00.000)来获取偏移量

​ 例:System.currentTimeMillis()

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

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

public Date()public Date(long millis)

​ 使用指定时间值创建Date类实例:

Date date = new Date(时间);

java.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)

​ 当前实例与参数指定对象相等返回true

public int compareTo(Date anotherDate)

​ 比较两个日期的顺序,早、等于、晚分别返回-1、0、1的整数

public Object clone()

public Instant toInstant()——JDK1.8新增的方法

java.util.Date类中的方法

public static Date from( Instant instant )——JDK1.8新增的方法

box.getTime()——获取Date实例内部保存的值(long型)

box.setTime()——修改box内部的值

时间换算

​ 1分钟(minute) = 60(seconds)

​ 1秒 = 1000毫秒(millisecond)

​ 1毫秒 = 1000微妙(microseconds)

​ 1微妙 = 1000纳秒)(nanoseconds)

​ 1纳秒 = 1000皮秒(picoseconds)

Calendar

定义

​ Calendar是一个抽象类,Gregorian Calendar类是Calendar类非抽象的子类

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

代码的使用

calendar.clear();——清除所有日历字段的值

calendar.set(year, month, date);——年月日

calendar.set(year, month, date, hourOfDay, minute);——年月日时分

calendar.set(year, month, date, hourOfDay, minute, second);——年月日时分秒

calendar.set();——set方法可以设置单个日历字段的值

Calendar类的作用

​ 1.在类中提供了根据Calendar实例返回java.util.Date实例的方法

public final Date getTime()

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

  • 获得Calendar实例(充当容器)

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

  • 根据实际要求依次设置年月日时分秒等日历字段值

  • 根据Calendar实例获得Date实例

    Date date = calendar.getTime();

Local Date

java.time包是Java8新增的包

LocalDateJava8新增的最终类(final class)

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

代码的使用

LocalDate today = LocalDate.now();——调用LocalDate类中的类方法获得 当前日期对应的LocalDate实例

LocalDate birthdate = LocalDate.of( 年,月,日);——调用LocalDate类中的类方法获得指定日期对应的LocalDate实例

LocalTime current = LocalTime.now();——调用 LocalTime类中的类方法 获得当前时间对应的LocalTime实例

LocalTime time = LocalTime.of( 时,分,秒,纳秒);——调用LocalTime类中的类方法获得指定时间对应的LocalTime实例

进位计数制

  1. 二进制:0b或0B为前缀,计数符号有:0 , 1.

  2. 八进制: 以0为前缀,计数符号: 0,1,2,3,4,5,6,7.

  3. 十六进制: 0x或0X为前缀,计数符号有: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.

  4. 十进制: 没有前缀,直接书写.计数符号:0,1,2,3,4,5,6,7,8,9.

    补充:异或: ^ ,即比较,相同为0,不同为1.

关于线程

public static void main( String[] args ) {
        int[] a = { 1 , 100 , -20 , 99 , 1000 , 0 , 30 };
        Sorter s = new Sorter(); // 创建 Sorter 类 的 实例
        // 【main线程】 调用 【s】 的 【traversal方法】【遍历a数组】【未返回数据】
        s.traversal( a ); // 凡事说 s 调用 traversal方法 都是不合适的
        // 【main线程】 调用 【s】 的 【sort方法】【对a数组排序】【未返回数据】
        s.sort( a );
        s.traversal( a );   
    }
  1. 说明:以上过程应表达为 main线程调用 s 的traversal方法遍历a数组, 不能说s调用traversal方法.

关于static

  1. static表示与类相关的,属于类的.不能翻译为静态的.

  2. final表示最终的,不可更改的.

  3. StaticInitializers : 类初始化器,俗称静态代码块.

  4. 被static修饰的方法时属于类的方法,被称为类方法,不能叫静态方法.

  5. 调用类方法: " 类名 . 类方法名(参数)"的形式调用.

  6. 调用本类声明的类方法时,课省略类名.

    补充:static出现错误时,控制台提示为:

字符串的存储

  1. 以"中文";为例作说明:

    "中文"这两个汉字首先转换为一个byte[]数组,再转换成一个字符序列,最后再转换为一个UTF16的byte[]数组.

  2. 平台默认字符集: getBytes();例:

    byte[] bytes = s.getBytes();
    
  3. 如果字符串中包含ISO-8859-1之外的字符,则再String实例内部储存的byte数组,是将字符序列按照UTF-16LE字符集编码(encode)的.

  4. 如果字符串中仅仅包含ISO-8859-1的字符,则字符序列按照ISO-8859-1字符集编码的.

问题

​ Java中对于日期是没有定义公元前和公元概念?

​ 个人理解:

​ Java中可以定义夏令时之类的时间概念,是不是也意味着定义了公元前和公元的属性。

吐槽

​ 老师可不可以早点上课,来复习下昨天讲的内容。

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1