达内javaSE_day11 学习笔记 —— Math类、日期相关类、异常、IO流
程序员文章站
2022-05-25 21:41:39
...
这里写目录标题
1. Math类
1.1 常用方法
练习:猜数游戏
//练习:随机数int , 猜数游戏
public class Demo {
public static void test4() {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int x = random.nextInt(10)+1;
while(true){
System.out.println("input num:");
int num = scanner.nextInt();
if (num<x) {
System.out.println("猜小了");
System.out.println("请继续猜:");
}else if(num>x) {
System.out.println("猜大了");
System.out.println("请继续猜:");
}else if(num == x) {
System.out.println("猜对了");
break;
}
}
}
public static void main(String[] args) {
test4();
}
}
2. 和日期相关的类
2.1 Date类
2.2 Calendar类
3. 异常
3.1 继承关系
父类:Throwable
子类:
- Error: 通过代码不能处理的。 xxxError
-
Exception: 通过代码能处理的错误。 xxxException
- RuntimeException:运行时异常。 Eg: 整数/0异常 (ArithmeticException) 、 数组越界异常(StringIndexOfBoundsException) 、 字符串索引越界、 类型强制转换异常 、空指针异常。
- 编译时异常:如IOException、FileNotFoundException、InterruptedException
eg:
3.2 强制处理
运行时异常不强制处理,如果代码写的严谨,可以避免运行时异常的产生
编译时异常必须处理
3.3 异常处理的两种方式
(1)throws抛出异常(声明异常)
(2)try-catch块捕获异常
异常代码块:
- 在日志文件中保存堆栈信息
- 对于外行,则 翻译异常信息
- 检查代码:直接打印堆栈信息
3.4 异常块的正确使用语法
try-catch
try-catch-finally
try-catch-catch-…-finally
try-finally 语法正确,但不能捕获异常
3.5 try-catch可以嵌套使用try-catch块
public static void test8() {//可以嵌套try
try {
try {
}finally {
}
} catch (Exception e) {
}
}
3.6 执行过程
- 如果try中有异常,从异常语句开始不再执行后边的语句,跳到catch执行。
- 不管有无异常,finally块都会执行
3.7 自定义异常类
-
继承现有的异常类
-
super(异常信息) //调用父类带参的构造方法
-
使用格式:if(){throw 异常类对象}
3.8 方法重写异常(编译时异常)
子类方法重写父类的方法的异常规则:
子类异常要<=父类异常(指编译时异常,和运行时异常没有关系)
<= 指的是:个数、继承关系
3.9 throw 和 throws 的区别
throw | throws |
---|---|
抛出异常 | 声明异常 |
在方法内 | 方法声明 |
后面跟着异常类的对象 | 后面跟着异常类的类型 |
只能有一个异常类的对象 | 多个异常类型,用“,”隔开 |
4. IO流
4.1 File类
- 创建对象时,不能创建文件夹和文件,只是对文件的一个描述
4.1.1 构造方法创建对象的三种格式
//构造方法创建对象的三种格式
public static void test1(){
File file =
new File("c:\\a\\b\\a.txt");//方式1
File file2 =
new File("c:\\a\\b","a.txt");//方式2
File path =
new File("c:\\a\\b");
File file3 =
new File(path,"a.txt");//方式3
System.out.println(file+","+file2+","+file3);
}