第四周的收获
程序员文章站
2022-07-09 14:33:50
第四周:异常以及常用类的使用Objects类Random类File类Date类Calendar类Objects类Objects类是一个工具类Objects对外不提供构造器,因此无法创建对象Objects类中的所有方法都是static提供的是对于对象的空指针安全操作的方法User u1 = new User(1, "softeem", "123456");User u2 = null;//if(u2 != null) {//System.out.println(u2.eq...
Objects类
- Objects类是一个工具类
- Objects对外不提供构造器,因此无法创建对象
- Objects类中的所有方法都是static
- 提供的是对于对象的空指针安全操作的方法
User u1 = new User(1, "softeem", "123456");
User u2 = null;
// if(u2 != null) {
// System.out.println(u2.equals(u1));
// }
//空指针安全的对象比较
System.out.println(Objects.equals(u1, u2));
//空指针安全的toString
System.out.println(Objects.toString(u2)); // 对象若为null则输出“null”字符串
System.out.println(Objects.toString(u2,"0")); //对象若为null则输出“0”
//空指针安全的hashCode
System.out.println(Objects.hashCode(u2));
//为空判断
System.out.println(Objects.isNull(u2));
//不为空判断
System.out.println(Objects.nonNull(u2));
//检查对象不为空,若为空则抛出NullPointerException
System.out.println(Objects.requireNonNull(u2));
Random类
Math类中提供了一个random()的方法,用于随机一个从0.0~1.0之间的浮点数,当实际需求有个性化的要求时,只能通过计算获取其他类型的随机数,实际操作相对比较麻烦;因此,Java中还提供了另一个专门用于生成各种需求的随机数类型,比如,随机整数,随机浮点数,随机布尔值
public class RandomDemo {
private static final class RandomGeneratorHolder{
static final Random randomNumberGenerator = new Random();
}
private static final String SOURCE = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
//随机指定长度位验证码
public static String genCode(int count) {
String code = "";
for(int i = 0;i < count;i++) {
int index = RandomGeneratorHolder.randomNumberGenerator.nextInt(SOURCE.length());
code += SOURCE.charAt(index);
}
return code;
}
public static void main(String[] args) {
Random r = new Random();
//随机布尔值
boolean f = r.nextBoolean();
System.out.println(f);
//随机一个从0.0~1.0之间的浮点数
double d = r.nextDouble();
System.out.println(d);
int i = r.nextInt();
System.out.println(i);
//随机一个5以内的整数
i = r.nextInt(5);
System.out.println(i);
//随机一个5(含)~10(含)之间的整数
i = r.nextInt(6) + 5;
System.out.println(i);
//随机生成指定长度的验证码,包含0-9A-Za-z之间的字符
String code = genCode(6);
System.out.println(code);
}
}
File类
File类是来自于java.io包中的一个用于处理本机操作系统中的文件,文件可以是目录也可以是一个标准文件;File类是用于在Java中实现跟本机文件系统进行关联的操作类。其中包含一些常见的文件操作:创建文件/目录,查看文件的状态,删除文件等。
public class FileDemo {
public static void main(String[] args) {
File f = new File("D:\\JAVA\\hjj.java\\study\\lesson18\\tes");
System.out.println("文件是否存在" + f.exists());
System.out.println("是否是隐藏文件" + f.isHidden());
System.out.println("文件大小(字节)" + f.length());
// 从1970年1月1日00:00:00~指定时间的毫秒数
System.out.println("文件最后修改时间" + f.lastModified());
// 列出当前系统可用的盘符
File[] files = File.listRoots();
for (File file : files) {
System.out.println(file);
}
f = new File("");
// 文件重命名
boolean b = f.renameTo(new File(""));
System.out.println("重命名结果:" + b);
}
}
Date类
//判断当前日期对象是否是参数日期对象之后的日期
System.out.println(d1.after(d2));
System.out.println(d1.before(d2));
Date d3 = new Date();
System.out.println(d3.equals(d1));
//获取当前日期对象所表示的时间毫秒数
System.out.println(d3.getTime());
System.out.println(d1.getTime());
// System.out.println(d3.getYear());
Calendar类
//以当前系统时间为基础获取日历实例 +8
Calendar c = Calendar.getInstance();
System.out.println(c);
//设置日历到2019年11月20日?
// c.set(2019, 10, 20);
//设置日历对象中指定字段的值
c.set(Calendar.YEAR, 2019);
System.out.println("获取日历表示的年份:"+c.get(Calendar.YEAR));
System.out.println("获取日历表示的月份(月份从0开始):"+c.get(Calendar.MONTH));
System.out.println("获取日历表示的日期"+c.get(Calendar.DAY_OF_MONTH));
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());
//设置月份为12月
c.set(Calendar.MONTH, 11);
//获取当前日期所表示字段的可能最大值
int maxDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(maxDay); //31
int maxMonth = c.getActualMaximum(Calendar.MONTH);
System.out.println(maxMonth);//11 (0~11)
//获取小时(24小时制)的最大值
int maxHour = c.getActualMaximum(Calendar.HOUR_OF_DAY);
System.out.println(maxHour); //23 (0~23)
//获取小时(12小时制)的最大值
maxHour = c.getActualMaximum(Calendar.HOUR);
System.out.println(maxHour);
//计算从你出生到现在一共生活了多少天?(生命倒计时) 1000 * 60 * 60 * 24
c.set(1999, 10, 11);
long start = c.getTimeInMillis();
long now = System.currentTimeMillis();
long days = (now - start) / (1000 * 60 * 60 * 24);
System.out.println(days);
//将日历的日期设置为1号(设置为这个月的第一天)
c.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(c.get(Calendar.DAY_OF_WEEK));
GregorianCalendar gc = (GregorianCalendar)c;
//判断指定年份是否是闰年(该方法为GregorianCalendar特有,因此需要将Calendar强制转换)
boolean leapYear = gc.isLeapYear(2020);
System.out.println(leapYear);
//将Calendar转换为java.util.Date
Date date = c.getTime();
System.out.println(date);
本文地址:https://blog.csdn.net/Misaki0728/article/details/109958483