Java语言第四篇异常与API

异常与API

    • 异常
    • API
      • Math类
      • System
      • Object
      • BigDecimal
      • 基本类型包装类
      • Date 类

异常

异常:就是程序出现了不正常的情况。程序在执行过程中,出现的非正常的情况,最终会导致 JVM 的非正常停止。

编译时异常就是在编译的时候出现的异常,运行时异常就是在运行时出现的异常。

虚拟机默认处理异常的方式:将异常信息以红色字体打印在控制台、结束程序运行

异常处理方式 —— throws

格式:throws 异常类名;

注意:这个格式是写在方法的定义处,表示声明一个异常。

  • 编译时异常因为在编译时就会检查,所以必须要写在方法后面进行显示声明
  • 运行时异常因为在运行时才会发生,所以在方法后面可以不写

抛出异常对象 —— throw
手动创建一个异常对象格式:throw new 异常();

注意:这个格式是在方法内的,表示当前代码手动抛出一个异常,下面的代码不用再执行了。

throws

  • 用在方法声明后面,跟的是异常类名
  • 表示声明异常,调用该方法有可能会出现这样的异常
    throw
  • 用在方法体内,跟的是异常对象名
  • 表示手动抛出异常对象,由方法体内的语句处理

异常处理方式 —— try…catch…

try {
可能出现异常的代码;
} catch(异常类名 变量名) {
异常的处理代码;
}

Throwable 的成员方法

public String getMessage() 返回此 throwable 的详细消息字符串
public String toString() 返回此可抛出的简短描述
public void printStackTrace() 把异常的错误信息输出在控制台
  • 抛出 throw throws让方法停止并告诉调用者这里出现了问题
  • 捕获 try…catch能让代码继续往下运行。

自定义异常的意义:让程序的提示报错更加的见名知意

API

常用接口及方法

Math类

Math 包含执行基本数字运算的方法
public static int abs(int a) 返回参数的绝对值
public static double ceil(double a) 向上取整
public static double floor(double a) 向下取整
public static int round(float a) 四舍五入
public static int max(int a,int b) 返回两个int值中的较大值
public static int min(int a,int b) 返回两个int值中的较小值
public static double pow(double a,double b) 返回a的b次幂的值
public static double random() 返回值为double的正值,[0.0,1.0)

类名.调用静态方法

System

System 不能被实例化

public static void exit(int status) 终止当前运行的 Java 虚拟机,非零表示异常终止
public static long currentTimeMillis() 返回当前时间(以毫秒为单位)
arraycopy(数据源数组, 起始索引, 目的地数组, 起始索引, 拷贝个数) 数组copy

Object

每个类都可以将 Object 作为父类。
所有类都直接或者间接的继承自该类构造方法:public Object()

  • Object类是所有类的直接或者间接父类
  • 直接打印一个对象就是打印这个对象的toString方法的返回值
  • Object类的toString方法得到的是对象的地址值
  • 我们一般会对toString方法进行重写结
public String toString() 返回对象的字符串表示形式。建议所有子类重写该方法,自动生成
public boolean equals(另一个对象) 比较对象是否相等。默认比较地址,重写可以比较内容,自动生成
public static String toString(对象) 返回参数中对象的字符串表示形式。
public static String toString(对象, 默认字符串) 返回对象的字符串表示形式。
public static Boolean isNull(对象) 判断对象是否为空
public static Boolean nonNull(对象) 判断对象是否不为空

BigDecimal

作用:可以用来精确计算
BigDecimal 类的构造方法

BigDecimal(double val) 参数为double
BigDecimal(String val) 参数为String

BigDecimal 类的常用方法

public BigDecimal add(另一个BigDecimal对象) 加法
public BigDecimal subtract (另一个BigDecimal对象) 减法
public BigDecimal multiply (另一个BigDecimal对象) 乘法
public BigDecimal divide (另一个BigDecimal对象) 除法
public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式)除法
  • BigDecimal是用来进行精确计算的
  • 创建BigDecimal的对象,构造方法使用参数类型为字符串的。
  • 四则运算中的除法,如果除不尽请使用divide的三个参数的方法。
  • 代码示例:
    • BigDecimal divide = bd1.divide(参与运算的对象, 小数点后精确到多少位, 舍入模式);
    • 参数1 ,表示参与运算的BigDecimal 对象。
    • 参数2 ,表示小数点后面精确到多少位
    • 参数3 ,舍入模式
      • BigDecimal.ROUND_UP 进一法
      • BigDecimal.ROUND_FLOOR 去尾法
      • BigDecimal.ROUND_HALF_UP 四舍五入

基本类型包装类

将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据.
例如:用于基本数据类型与字符串之间的转换

byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

Integer 类的概述和使用

public Integer(int value) 根据 int 值创建 Integer 对象(过时)
public Integer(String s) 根据 String 值创建 Integer 对象(过时)
public static Integer valueOf(int i) 返回表示指定的 int 值的 Integer 实例
public static Integer valueOf(String s) 返回一个保存指定值的 Integer 对象 String

自动装箱和自动拆箱

  • 装箱:把基本数据类型转换为对应的包装类类型
  • 拆箱:把包装类类型转换为对应的基本数据类型

注意:只要是对象,在使用前就必须进行不为 null 的判断

Integer的成员方法
static int parseInt(String s) 将字符串类型的整数变成int类型的整数

int 和 String 的相互转换
基本类型包装类的最常见操作就是:用于基本类型和字符串之间的相互转换

  • int 转换为 String
    • 方式一:加双引号即可
    • 方式二:public static String valueOf(int i):返回 int 参数的字符串表示形式。该方法是 String 类中的方法
  • String 转换为 int
    • public static int parseInt(String s):将字符串解析为 int 类型。该方法是 Integer 类中的方法

名词解释

  • 二分查找
  • 冒泡排序:相邻的数据两两比较,小的放前面,大的放后面。
  • 递归:以编程的角度来看,递归指的是方法定义中调用方法本身的现象
  • 快速排序算法中,每一次递归时以第一个数为基准数,找到数组中所有比基准数小的。再找到所有比基准数大的。小的全部放左边,大的全部放右边,确定基准数的正确位置。

Arrays 类包含用于操作数组的各种方法

public static String toString(int[] a) 返回指定数组的内容的字符串表示形式
public static void sort(int[] a) 按照数字顺序排列指定的数组
public static int binarySearch(int[] a, int key) 利用二分查找返回指定元素的索引

Date 类

Date 代表了一个特定的时间,精确到毫秒

public Date() 创建一个Date对象,表示默认时间
public Date(long date) 创建一个Date对象,表示指定时间
public long getTime() 获取时间对象的毫秒值
public void setTime(long time) 设置时间,传递毫秒值

SimpleDateFormat

SimpleDateFormat 可以对Date对象,进行格式化和解析

public SimpleDateFormat() 构造一个SimpleDateFormat,使用默认格式
public SimpleDateFormat(String pattern) 构造一个SimpleDateFormat,使用指定的格式
  • 格式化(从 Date 到 String )
    public final String format(Date date):将日期格式化成日期/时间字符串
  • 解析(从 String 到 Date )
    public Date parse(String source):从给定字符串的开始解析文本以生成日期

JDK8新增日期类

格式化(从 Date 到 String )public final String format(Date date): 把时间按照固定格式进行展示

LocalDate LocalTime LocalDateTime Clock Duration DateTimeFormatter

Optional类

public static  Optional of(T value) 获取一个Optional对象,封装的是非null值的对象
public static  Optional ofNullable(T value) 获取一个Optional对象,Optional封装的值对象可以是null也可以不是null
public T get() 如果存在值,返回值,否则抛出NoSuchElementException
public boolean isPresent() 判断Optional所封装的对象是否不为空,如果不为空返回true , 否则返回false
public T orElse(T other) 如果不为空,则返回具体的值,否则返回参数中的值
public T orElseGet(Suppliersupplier)如果不为空,则返回值,否则返回由括号中函数产生的结果
public void ifPresent(Consumer action)如果不为空,则使用该值执行给定的操作,否则不执行任何操作
public void ifPresentOrElse(Consumer action, Runnable emptyAction)如果不为空,则使用该值执行给定的操作,否则执行给定的基于空的操作。

你可能感兴趣的:(编程语言,java,开发语言)