第三篇Java复习

一、什么是异常
在Java语言中,引入了异常,以异常类的形式对这些非正常的情况进行封装,通过异常处理机制对程序运行时发生的各种问题进行处理

package Fx;
 
public class fx1 {
 
 public static void main(String[] args) {
   int result=divide(4,2);//调用divide()方法//把2改成0的话0不允许做除数就会出现异常
   System.out.println(result);
  }
  //下面的方法实现了两种整数相除
  public static int divide(int x,int y){
   int result=x/y;
   return result;
  }
 }

 

 Throwable类的继承体系
 Throwable类下面有两个分支:Error和Exception。Error表示系统级别的错误,通常是由于JVM或系统资源不足等原因引起的。Exception表示程序级别的异常,通常是由于代码逻辑错误或输入数据错误等原因引起的。 Error类下面有两个分支:LinkageError和VirtualMachineError。LinkageError表示类加载错误,VirtualMachineError表示JVM内部错误。

Exception类下面有两个分支:RuntimeException和IOException。RuntimeException表示程序在运行时发生的异常,通常是由于代码逻辑错误或数据异常引起的;IOException表示输入输出异常,通常是由于文件读写等操作引起的。 RuntimeException类下面有一些常见的子类,如NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException等,它们通常是由于代码逻辑错误或数据异常引起的。 IOException类下面也有一些常见的子类,如FileNotFoundException、SocketException等,它们通常是由于文件读写或网络操作等引起的异常。 

Throwable类中的常用方法 

二、try...catch和finally(p73)

 Java中提供了一种对异常进行处理的方式一一异常捕获。异常捕获通常使用try...catch语句,具体语法格式如下:

其中在try代码块中编写可能发生异常的Java语句,catch代码块中编写针对异常进行处理的代码。当tny代码块中的程序发生了异常,系统会将这个异常的信息封装成一个异常对象,并将这个对象传递给catch代码块。catch代码块需要一个参数指明它所能够接收的异常类型,这个参数的类型必须是Exception类或其子类。

把2改成0后出现异常打印了一个异常信息 

三、thr ows关键字(p74)

Java中允许在方法的后面使用throws关键字对外声明该方法有可能发生的异常,这样调用者在谓用方法时,就明确地知道该方法有异常,井且必须在程序中对异常进行处理,否则编译无法通过。

throws关键字声明抛出异常的语法格式如下:
修饰符 返回值类型 方法名 ([参数1,参数2....])throws ExceptionTypel[,ExceptionType2.....]{

}

throws关键字需要写在方法声明的后面 

四、运行时异常和编译时异常(p75)
运行时异常 运行时异常是指在程序运行时发生的异常,通常是由于代码逻辑错误或数据异常引起的。运行时异常是RuntimeException类及其子类的实例。运行时异常不需要在代码中声明或捕获,通常由JVM自动抛出并终止程序运行。常见的运行时异常有:NullPointerException、IndexOutOfBoundsException、ClassCastException等。
代码如下所示:
int[ ] arr=new int[5];

System.out.println(arr[6]);

编译时异常 编译时异常是指在编译程序时发生的异常,通常是由于语法错误或类型不匹配引起的。编译时异常是Exception类及其子类的实例,必须在代码中显式声明或捕获。常见的编译时异常有:IOException、SQLException等。
异常处理 异常处理是Java中非常重要的机制,能够帮助开发人员更好地控制程序中的异常。对于运行时异常,可以选择处理或不处理,如果不处理,程序会由JVM自动抛出并终止运行;如果需要处理,可以使用try...catch语句块捕获并处理异常。对于编译时异常,必须在代码中显式声明或捕获,否则代码无法通过编译。 总之,运行时异常和编译时异常是Java中异常处理机制的两个重要概念,开发人员应该了解它们的区别和处理方式,以便更好地控制程序中的异常。

五、自定义异常 (p76)
JDK中定义了大量的异常类,虽然这些异常类可以描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况,例如文件4-38中在divide0方法中不允许被除数为负数。为了解决这个问题,在Java中允许用户自定义异常,但自定义的异常类必须继承自Exception或其子类

自定义异常类 自定义异常类可以继承Exception类或RuntimeException类,通常建议继承Exception类。自定义异常类应该包含以下内容:
构造函数:用于创建异常对象并初始化异常信息;
getMessage方法:用于获取异常信息;
toString方法:用于返回异常的字符串表示形式。 例如,我们可以定义一个自定义异常类MyException:

第五章
一、API_类的初始化
类的初始化(p78)
类的初始化
API指的是应用程序,编程接口

在操作string类之前,首先需要对string类进行初始化,在JAVA中可以通过以下两种方式对string类

进行初始化
1、使用字符串常量直接初始化一个string对象

String  str1="abc";
2、使用string的构造方法初始化,字符串对象string的构造方法

String()    创建一个内容为空的字符串
String(String value)      根据指定的字符串内容创建对象
String(char[ ] value)   根据指定的字符串数组创建对象

 

 

二、API_类的常见操作

5.1String类和SreingBuffer类

1、String类的常见操作(p79)

string类在实际开发中的应用非常广泛,因此灵活地使用string类是非常重要的 .

在程序中,需要对字符串进行一些基本操作,如获得字符串长度获得指定位置的字符等。

 

程序开发中,经常需要对字符串进行转换操作,例如将字符串转换成数组的形式,将字符串中的字

符进行大小写转换等。 

程序开发中,用户输入数据时经常会有一些错误和空格,这时可以使用String类的replace0和trim0方法,进行字符串的替换和去除空格操作。 

操作字符串时,经常需要对字符串进行一些判断,如判断字符串是否以指定的字符串开始、结束,是否包含指定的字符串,字符串是否为空等 

在String类中针对字符串的截取和分割操作提供了两个方法,其中,substring0方法用于截取字符串的一部分,split0方法可以将字符串按照某个字符进行分割 

 

String字符串在获取某个字符时,会用到字符的索引,当访问字符串中的字符时,如果符的索引不存在,则会发生StringIndexOutOfBoundsException ( 字符串角标越界异常)

2、StringBuffer类 (p80)

由于字符事是常量,因此一旦创建,其内容和长度是不可改变的。如果需要对一个字符串进行修改,则只能创建新的字符事。为了便于对字符串进行修改,在JDK中提供了一个StringBuffer类(也称字符事缓冲区),StringBuffer和String类最大的区别在于它的内容和长度都是可以改变的。StringBuffer类似一个字符容器,当在其中添加或副除字符时,并不会产生新的StringBuffcr对象

针对添加和删除字符的操作,StringBuffer类提供了一系列的方法,具体如下表所示

 

任务:通过一个记录一个子串在整串出现的次数(p81) 

 

 

System类和Runtime类

1、System类(p82)

System类定义了一些与系统相关的属性和方法,它所提供的属性和方法都是静态的,因此,想要引用这些属性和方法,直接使用System类调用即可。 

currentTTimeMillis()方法 返回一个long类型的值,该值表示当前时间与1970年1月1日0点0分0秒之间的时间差,单位是毫秒,通常也将该值称作时间数

 

2、Runtime类(p83)
Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,对象不可以直接实例化。

 若想在程序中获得一个Runtime实例,只能通过以下方式:
Runtime run = Runtime .getRuntime():

由于Runtime类封装了虚拟机进程,因此,在程序中通常会通过该类的实例对象获取当前寻虚拟的相关信息 

Runtime类中提供了一个exec()方法,该方法用于执行一个dos命令,从而实现和在命令窗口中输入dos命令同样的效果  

 

5.3Math类和Random类
1、Math类(p84)

Math类是数学操作类,提供了一系列用于数学运算的静态方法,包括求绝对值、三角函数等。Math类中有两个静态常量PI和E,分别代表数学常量π和e。
由于Math类比较简单,因此初学者可以通过查看API文档来学习Math类的具体用法。

 

2、Random类(P85)

  • 在JDK的java.util包中有一个Random类,它可以在指定的取值范围内随机产生数字。在Random类中提供了两个构造方法,第一个构造方法 

 

 

第二个构造方法 

 

相对于Math的random()方法而言,Random类提供了更多的方法来生成各种伪随机数,不仅可以生成整数类型的随机数,还可以生成浮点类型的随机数,表中列举了Random类中的常用方法

5.4 包装类(p86)
在Java中,很多类的方法都需要接收引用类型的对象,此时就无法将个基本数据类型的值传入。为了解决这样的问题,JDK中提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装为引用数据类型的对象。在Java中,每种基本类型都有对应的包装类,具体如下表所示。包装类。其中,除了integer和character类,其它包装类的名称和基本数据类型的名称一致,只是类名的第一个字母需要大写。
包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念,其中装箱是指将基本数据类型的值转为引用数据类型,反之,拆箱是指将引用数据类型的对象转为基本数据类型。

20

 

sum=30

Integer类除了具有object类的所有方法外,还有一些特有的方法其中的intValue()方法可以将Integer类型的值转为int类型,这个方法可以用来进行拆箱操作。 

任务:字符串排序程序设计(p87)v 

 

5.5 JDK型特性——switch语句支持字符串类型(P88)
stringVal是一个字符串类型的变量,用于控制switch语句的分支。case后面的值是一个字符串字面量,用于与stringVal比较。如果stringVal与某个case后面的值相等,则执行相应的代码块,否则执行default代码块。 2. 注意事项 使用switch语句支持字符串类型时,需要注意以下几点:

case后面的值必须是一个字符串字面量,不能是一个变量或表达式;
switch语句中的字符串比较是通过equals方法进行的,而不是通过==运算符进行的;
与其他类型的switch语句一样,每个case后面必须跟一个break语句,否则会继续执行下一个case分支,直到遇到break语句或switch语句结束。

 Java中switch语句支持字符串类型是一个很方便的特性,能够使代码更加简洁和易于阅读。

欸嘿!!!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值