欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

第四周的收获

程序员文章站 2022-03-16 14:52:26
第四周:异常以及常用类的使用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

相关标签: 基础 java