一、Object 类:
是所有 java 类的顶层父类。
① Objects 类是一个工具类;
② Objects 对外不提供构造器,因此无法创建对象;
③ Objects 类中的所有方法都是 static;
④ 提供的是对于对象的空指针安全操作的方法。
public class Test {
public static void main(String[] args) {
User u1 = new User(1, "lm", "123456");
User u2 = null;
//空指针安全的对象比较
System.out.println(Objects.equals(u1, u2)); //false
//空指针安全的toString( 对象若为null则输出“null”字符串)
System.out.println(Objects.toString(u2)); //null
//对象若为null则输出“0”
System.out.println(Objects.toString(u2,"0")); //0
//空指针安全的hashCode
System.out.println(Objects.hashCode(u2)); //0
//为空判断
System.out.println(Objects.isNull(u2)); //true
//不为空判断
System.out.println(Objects.nonNull(u2)); //false
}
}
class User {
private int sno;
private String sname;
private String password;
public User(int sno, String sname, String password) {
super();
this.sno = sno;
this.sname = sname;
this.password = password;
}
}
二、Random 类:
该类的实例用于生成伪随机数。
① nextBoolean():随机一个布尔值;
② nextDouble():随机一个 0.0~1.0 之间的 double 值;
③ nextInt():随机一个int范围内的整数值;
④ nextInt(int x):随机一个从 0~x-1 位的整数值。
Random r = new Random();
// 随机布尔值
boolean f = r.nextBoolean();
System.out.println(f);
// 随机一个从[0 1)之间的浮点数
double d = r.nextDouble();
System.out.println(d);
//随机一个int范围内的整数值
int i = r.nextInt();
System.out.println(i);
// 随机一个[0 5)以内的整数
i = r.nextInt(5);
System.out.println(i);
// 随机一个[5 10]之间的整数
i = r.nextInt(6) + 5;
System.out.println(i);
三、File 类:
File 类是来自于 java.io 包中的一个用于处理本机操作系统中的文件,文件可以是目录也可以是一个标准文件;File 类是用于在 Java 中实现跟本机文件系统进行关联的操作类
常见属性:
常量 | 解释 |
pathSeparator | 获取与本机系统相关的路径分隔符 |
separator | 获取与本机系统相关的目录分隔符 |
常用方法
① createNewFile() 创建新文件(标准文件)
② exists() 判断 File 对象是否存在
③ delete() 删除 File 对象所表示的文件或者目录(空目录)
④ getName() 获取 File 对象所表示的文件名称
⑤ getParent() 获取 File 所指的文件或者目录的父路径
⑥ isFile() 判断当前 File 所指的是否是标准文件
⑦ isDirectory() 判断当前 File 所指的是否是目录
⑧ length() 获取 File 所表示文件大小(字节)
⑨ list() 获取 File 所表示目录下所有子文件的名称数组
⑩ listRoots() 获取当前电脑可用的磁盘根
⑪ mkdir() 创建当前 File 所表示的目录(一级)
⑫ renameTo(File file) 重命名文件
四、Date 类 & Calendar 类
1:Date 类
① Date():获取当前系统时间所表示的日期对象
② Date(long time):根据提供的时间毫秒数,构建一个日期对象(从1970年1月1日 00:00:00开始)
③ after(Date d):判断当前日期对象是否是参数日期对象之后和日期
④ before(Date d):判断当前日期对象是否是参数日期对象之前和日期
⑤ getTime():获取当前日期对象所表示的时间毫秒数
2:日期格式化(DateFormat & SimpleDateFormat)
例如:
Date d = new Date();
//获取一个用于进行日期(Date)格式化的对象
DateFormat fmt = DateFormat.getDateInstance();
String time = fmt.format(d);
System.out.println(time); //2020-11-20
// 获取一个用于进行日期时间(DateTime)格式的对象
fmt = DateFormat.getDateTimeInstance();
time = fmt.format(d);
System.out.println(time); //2020-11-20 9:50:37
//获取一个用于进行时间(Time)格式化的对象
fmt = DateFormat.getTimeInstance();
time = fmt.format(d);
System.out.println(time); //9:50:37
//获取简单的日期格式化对象
fmt = DateFormat.getInstance();
time = fmt.format(d);
System.out.println(time); //20-11-20 上午9:50
//指定格式日期时间的字符串
fmt = new SimpleDateFormat("yyyyMMdd");
System.out.println(fmt.format(d)); //20201120
fmt = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss:SSS"); //2020年11月20日 09:50:37:988
System.out.println(fmt.format(d));
fmt = new SimpleDateFormat("[HH:mm:ss]");
System.out.println(fmt.format(d)); //[09:55:28]
/** 将String类型的日期时间转换成Date类型对象 */
String dateTime = "1999/11/11 11:11:11";
fmt = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//将字符串类型的时间根据指定的格式解析为Date类型对象
Date date = fmt.parse(dateTime);
System.out.println(date);
3:Calendar 类
JDK 1.1 开始 Date 中很多方法和构造器标记为过时,新增替代方案 Calendar,是一个抽象类有一个直接子类:java.util.GregorianCalendar 对其继承,并且实现其中的抽象方法,具体使用如下:
//以当前系统时间为基础获取日历实例 时区 + 8
Calendar c = Calendar.getInstance();
//设置日历到2019年11月20日?
c.set(2019, 10, 20);
System.out.println(c);
System.out.println("获取日历表示的年份:"+c.get(Calendar.YEAR));
System.out.println("获取日历表示的月份(月份从0开始):"+c.get(Calendar.MONTH)); //10(月份从0-11)
System.out.println("获取日历表示的日期"+c.get(Calendar.DAY_OF_MONTH)); //20
System.out.println("获取日历表示的小时"+c.get(Calendar.HOUR_OF_DAY)); //当前小时
System.out.println("获取日历表示的分钟"+c.get(Calendar.MINUTE)); //当前分钟
System.out.println("获取日历表示的秒钟"+c.get(Calendar.SECOND)); //当前秒钟
System.out.println("获取日历表示的毫秒"+c.get(Calendar.MILLISECOND)); //当前毫秒
System.out.println("获取当前日历表示的日期是今年的第多少天:"+c.get(Calendar.DAY_OF_YEAR)); //今年第多少天
System.out.println("获取日历所有表示的时间毫秒数"+c.getTimeInMillis());