type
status
date
slug
summary
tags
category
icon
password
System类属性
in: 表示输入,指的是键盘
out: 表示的标准输出,指的是系统命令行
err: 表示错误输出,指的是系统命令行
System类方法
getProperties(): 获取到系统属性
getenv(): 获取到应用程序的运行环境
currentTimeMillis():获取到当前时间的时间戳(距离 1970年1月1日 00:00:00 UTC的毫秒数)
arraycopy(Object src, int srcPos,Object dest, int destPos,int length):
BigInteger、BigDecimal
基本数据类型 byte、short、int、long、float、double、char、boolean
基本包装类型 Byte、Short、Integer、Long、Float、Double、Character、Boolean
无论是基本数据类型还是基本包装类型,都无法解决两个问题:
1. 对于超大整数来说,无法表示
2. 对于超精度浮点数来说,也无法精确表示
使用 BigInteger 来表示超大整数,使用 BigDecimal 用来表示超精度浮点数
BigInteger 和 Integer以及int 没有关系, 它们之间不能转换
BigInteger实现运算,不能使用算数运算符,而是要调用方法add + 、subtract - 、multiply * 、divide /
BigDecimal可以保证数据浮点数计算以后的精度
divide(BigDecimal db): 如果得到的结果是一个无限循环数,会报错
divide(BigDecimal db,int scale,int roundingMode):
scale 表示小数点后的位数 roundingMode 小数点后的处理方式(四舍五入,舍去,进一)divide(BigDecimal db,int roundingMode):
学习内置类的套路
- 使用类创建对象
- 使用 new 方法调用构造方法,创建一个实例对象 String / Date 如果构造方法私有,不允许外部创建实例对象或者是一个抽象类接口
- 看类里是否有静态方法,能够返回一个实例对象
- 看能不能创建子类对象
- 看这个类里的方法是否全都是静态的,如果方法全静态,表示这是一个工具类 eg:Arrays/Math/Objects 等等
- 有哪些属性和方法可以调用
日期类综述
Java里可以使用java.util.Date Calendar LocalDate LocalTime LocalDateTime Instant类来表示日期时间
Date
- 构造方法: Date(): 空参构造方法,创建的是当前日期时间对象 Date(long time): 创建 指定时间戳 的日期时间对象
- 其他方法: Date里的大部分方法在 JDK1.1 里都已经废弃了,不建议使用;可用一个新的类 Calendar 来取代 Date里的大部分功能 getYear(): 获取到年,不是精确的年份,而是 真实年份-1900 后的结果
SimpleDateFormat
使用 SimpleDateFormat类来实现日期时间格式化:
Date类型对象 --> 字符串,调用 format方法
字符串 --> Date类型的对象,调用 parse方法
Date类代码演示
Calender
Calendar 类是JDK1.1推出的,用来取代 Date里的方法,Calender是一个抽象类,不能直接创建实例对象因此可以考虑
- 可以考虑创建一个子类对象
- 调用静态方法,获取到一个 Calendar类型的对象获取到当前的日期时间
- 常见方法: get(int field): 根据字段获取到对应的值. field 就是数字,可选值是0~16,定义在 Calendar类里的静态成员常量,每个字段都代表了一个日期属性,比如年、月、日等
- 该类缺点: 1. 所有的获取属性都通过 get 方法传入字段,一共有 17 个字段 2. 静态方法返回的结果是数字,表达的意思模糊且不统一,0表示一月 1表示周日
- 优化方向(该类不具备): 1. 列出常见的方法 getYear() getMonth() getDate() getHour() 2. 返回的结果不要再使用数字表示,用 枚举 来表示!
LocalDate、LocalTime、LocalDateTime
Calendar类可以用来表示日期时间类,但是它有一些问题
- 只能通过get(int field)获取字段
- 返回的结果是数字,不明确 JDK8新出了 LocalDate LocalTime LocalDateTime Instant 分别用来表示 日期/时间以及日期时间
还有一些其他的方法可以用来做日期时间的计算,就是localDateTime这三啦。
Local日期家族的格式化
JDK8里的日期时间转换成为字符串,使用的是 DateTimeFormatter 类
LocalDate LocalTime LocalDateTime --> 字符串 format
字符串 --> LocalDate LocalTime LocalDateTime parse
- 作者:tacjin
- 链接:http://jin.wiki/article/8b85bafb-d73c-4e17-b928-0bcff9e84c4e
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。