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
新增的包
LocalDate
是Java8
新增的最终类(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
实例
进位计数制
-
二进制:0b或0B为前缀,计数符号有:0 , 1.
-
八进制: 以0为前缀,计数符号: 0,1,2,3,4,5,6,7.
-
十六进制: 0x或0X为前缀,计数符号有: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
-
十进制: 没有前缀,直接书写.计数符号: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 );
}
- 说明:以上过程应表达为 main线程调用 s 的
traversal
方法遍历a数组, 不能说s调用traversal
方法.
关于static
-
static
表示与类相关的,属于类的.不能翻译为静态的. -
final
表示最终的,不可更改的. -
StaticInitializers
: 类初始化器,俗称静态代码块. -
被static修饰的方法时属于类的方法,被称为类方法,不能叫静态方法.
-
调用类方法: " 类名 . 类方法名(参数)"的形式调用.
-
调用本类声明的类方法时,课省略类名.
补充:static出现错误时,控制台提示为:
字符串的存储
-
以"中文";为例作说明:
"中文"这两个汉字首先转换为一个byte[]数组,再转换成一个字符序列,最后再转换为一个UTF16的byte[]数组.
-
平台默认字符集: getBytes();例:
byte[] bytes = s.getBytes();
-
如果字符串中包含
ISO-8859-1
之外的字符,则再String实例内部储存的byte数组,是将字符序列按照UTF-16LE
字符集编码(encode)的. -
如果字符串中仅仅包含
ISO-8859-1
的字符,则字符序列按照ISO-8859-1
字符集编码的.
问题
Java中对于日期是没有定义公元前和公元概念?
个人理解:
Java中可以定义夏令时之类的时间概念,是不是也意味着定义了公元前和公元的属性。
吐槽
老师可不可以早点上课,来复习下昨天讲的内容。
近期评论