2020-11-22

异常异常既然产生则有必要进行合理的处理,Java中对于异常的处理分为两种方式:异常抛出(throw/throws)异常捕获(try/catch/finally)Java程序中一旦出现异常,这出现异常问题的所在代码行之后的代码无法再执行。throws:用于方法的声明中,抛出有可能出现的异常throw:用于语句块中,抛出指定类型的异常对象,throw一旦执行,则一定会出现该类型异常final是一个关键字用于修饰类,属性,方法finalize是Object类中提供的一个方法,用于在jvm对对象清理时,对于当前对象执行一些最终的处理工作的finally是异常中的语句块运行时异常类型java.lang.ArithmeticException算术异常(比如被零除)java.lang.ArithmeticException空指针异常(调用方法,属性的对象为null时)java.lang.ArrayIndexOutOfBoundsException数组索引越界java.lang.ClassCastException类型转换异常java.util.InputMismatchException输入的数据类型不匹配读取的类型常见的异常类型java.lang.ClassNotFoundException类未找到异常java.io.FileNotFoundException文件未找到异常java.io.IOExceptionIO异常(输入输出异常)java.sql.SQLException访问数据库的异常java.text.ParseException解析异常常用类Objects类Object类是所有java类的顶层父类(祖宗类),但是Objects是从Java7开始新增的一个对于java对象进行空指针安全操作的工具类Objects类是一个工具类Objects对外不提供构造器,因此无法创建对象Objects类中的所有方法都是static提供的是对于对象的空指针安全操作的方法Random类​ Math类中提供了一个random()的方法,用于随机一个从0.01.0之间的浮点数,当实际需求有个性化的要求时,只能通过计算获取其他类型的随机数,实际操作相对比较麻烦;因此,Java中还提供了另一个专门用于生成各种需求的随机数类型,比如,随机整数,随机浮点数,随机布尔值。nextBoolean():随机一个布尔值nextDouble():随机一个0.01.0之间的double值nextInt():随机一个int范围内的整数值nextInt(int bounds):随机一个从0~bounds-1位的整数值File类​ File类是来自于java.io包中的一个用于处理本机操作系统中的文件,文件可以是目录也可以是一个标准文件;File类是用于在Java中实现跟本机文件系统进行关联的操作类。其中包含一些常见的文件操作:创建文件/目录,查看文件的状态,删除文件等。Date类java.util.Date是一个传统的java用于处理日期时间的类,由于版本更新,内部有很多构造器包括方法均已标记为过时,取而代之的是java.util.Calendar类;常用方法after(Date d)before(Date d)compareTo(Date d)getTime()//判断当前日期对象是否是参数日期对象之后的日期
System.out.println(d1.after(d2));

System.out.println(d1.before(d2));


//实现一个小程序,判断两个学生的年龄,输出较大学生的信息?
//学生:学号,姓名,生日(1999/11/11)

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());正则表达式正则表达式( Regular expression)是一组由字母和符号组成的特殊文本, 它可以用来从文本中找出满足你想要的格式的句子。正则表达式最早源自于perl语言(脚本语言);正则表达式的功能十分强大,可以用于进行文本的匹配,检索,替换;常见于一些网络爬虫。java中对于正则表达式的处理主要由一下三个类实现:java.lang.Stringjava.util.regex.Patternjava.util.regex.Macher简单案例:String a = “13567845635”;
//判断两个字符串是否完全一致
System.out.println(a.equals(“13567845634”));
//判断当前String对象是否匹配给定的正则表达式( 匹配手机号格式字符串)
System.out.println(a.matches("^1\d{10}$"));重复零次或更多次+重复一次或更多次?重复零次或一次{n}重复n次{n,}重复n次或更多次{n,m}重复n到m次案例://匹配输入长度为4的数字要求必须以1开头

System.out.println(“1234”.matches("^1\d{3}"));

//验证输入的是否是qq号 5-11位长度数字,不能以0开始
System.out.println(“12334352324”.matches("1\d{4,10}"));

// \w
System.out.println(“a”.matches("[0-9a-zA-Z]"));

//匹配不能少于5位长度的数字
System.out.println(“12387912”.matches("\d{5,}"));

//匹配不能超过6位长度的数字
System.out.println(“12346”.matches("\d{0,6}"));

//匹配字母0个或多个
System.out.println("".matches("[a-zA-Z]
"));

//匹配字母1个或多个
System.out.println(“a”.matches("[a-zA-Z]+"));

//匹配字母0个或1个
System.out.println(“ac”.matches("[a-zA-Z]?"));


  1. 1-9 ↩︎

可以使用 Java 中的 LocalDateTime 类来处理时间。 首先,我们需要将给定的时间段转换为 LocalDateTime 对象: ```java LocalDateTime start = LocalDateTime.of(2020, 11, 20, 0, 0, 0); LocalDateTime end = LocalDateTime.of(2021, 10, 9, 23, 59, 59); ``` 这里将结束时间设置为 23:59:59 是因为我们想要包含该日期的所有时间。 接下来,我们可以使用一个循环来遍历时间段中的每一天,并获取该天的开始时间和结束时间: ```java LocalDateTime current = start; while (!current.isAfter(end)) { LocalDateTime dayStart = current.withHour(0).withMinute(0).withSecond(0).withNano(0); LocalDateTime dayEnd = current.withHour(23).withMinute(59).withSecond(59).withNano(999999999); System.out.println("Day " + current.toLocalDate() + " starts at " + dayStart + " and ends at " + dayEnd); current = current.plusDays(1); } ``` 这里,我们使用 `withHour`、`withMinute`、`withSecond` 和 `withNano` 方法来设置每天的开始时间和结束时间。然后,我们可以使用 `plusDays` 方法来增加 `current` 对象的日期,以便遍历整个时间段。 完整代码如下: ```java import java.time.LocalDateTime; public class Main { public static void main(String[] args) { LocalDateTime start = LocalDateTime.of(2020, 11, 20, 0, 0, 0); LocalDateTime end = LocalDateTime.of(2021, 10, 9, 23, 59, 59); LocalDateTime current = start; while (!current.isAfter(end)) { LocalDateTime dayStart = current.withHour(0).withMinute(0).withSecond(0).withNano(0); LocalDateTime dayEnd = current.withHour(23).withMinute(59).withSecond(59).withNano(999999999); System.out.println("Day " + current.toLocalDate() + " starts at " + dayStart + " and ends at " + dayEnd); current = current.plusDays(1); } } } ``` 输出结果如下: ``` Day 2020-11-20 starts at 2020-11-20T00:00 and ends at 2020-11-20T23:59:59.999999999 Day 2020-11-21 starts at 2020-11-21T00:00 and ends at 2020-11-21T23:59:59.999999999 Day 2020-11-22 starts at 2020-11-22T00:00 and ends at 2020-11-22T23:59:59.999999999 ... Day 2021-10-07 starts at 2021-10-07T00:00 and ends at 2021-10-07T23:59:59.999999999 Day 2021-10-08 starts at 2021-10-08T00:00 and ends at 2021-10-08T23:59:59.999999999 Day 2021-10-09 starts at 2021-10-09T00:00 and ends at 2021-10-09T23:59:59.999999999 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值