java学习笔记(二)

Number类

Java 语言为每一个内置数据类型提供了对应的包装类。
与数字相关的包装类(Integer、Long、Byte、Double、Float、Short)都是Number类的子类
这里写图片描述

这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number 类属于 java.lang 包。

Math类

Math 包含了用于执行基本数学运算的属性和方法。
Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。

Character类

Character 类用于对单个字符进行操作。
Character 类在对象中包装一个基本类型 char 的值。

String类

在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。

String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。
如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。

StringBuffer 和 StringBuilder 类

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)

数组

声明数组:

dataType[] arrayRefVar;   // 首选的方法

或

dataType arrayRefVar[];  // 效果相同,但不是首选方法

创建数组:

arrayRefVar = new dataType[arraySize];

合起来:

dataType[] arrayRefVar = new dataType[arraySize];

finalize方法

它在对象被垃圾收集器析构(回收)之前调用,可以用来在垃圾回收之前做一些最后的清理工作。

读写文件

这里写图片描述
字符流都是以reader/writer结尾的;
字节流则是以stream结尾的。

异常处理

  • 检查性异常:编译时会进行检查。
  • 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
  • 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

错误Error和异常Exception都是Throwable的子类:

这里写图片描述

一些常见的运行时异常:

  • ArithmeticException:数学运算异常
  • ArrayIndexOutOfBoundsException:用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
  • ClassCastException:当试图将对象强制转换为不是实例的子类时,抛出该异常。
  • IndexOutOfBoundsException:
  • NullPointerException:当应用程序试图在需要对象的地方使用 null 时,抛出该异常

捕获异常

Catch 语句包含要捕获异常类型的声明。当try代码块中发生一个异常时,try 后面的 catch 块就会执行。

一个 try 代码块后面跟随多个 catch 代码块的情况就叫多重捕获。
多重捕获块的语法如下所示:

try{
   // 程序代码
}catch(异常类型1 异常的变量名1){
  // 程序代码
}catch(异常类型2 异常的变量名2){
  // 程序代码
}catch(异常类型2 异常的变量名2){
  // 程序代码
}

上面的代码段包含了 3 个 catch块。
可以在 try 语句后面添加任意数量的 catch 块。
如果保护代码中发生异常,异常被抛给第一个 catch 块。
如果抛出异常的数据类型与 ExceptionType1 匹配,它在这里就会被捕获。
如果不匹配,它会被传递给第二个 catch 块。
如此,直到异常被捕获或者通过所有的 catch 块。

throws/throw关键字

如果一个方法没有捕获一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。

可以在方法体内使用 throw 关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。

public void deposit(double amount) throws RemoteException
  {
    // Method implementation
    throw new RemoteException();
  }

一个方法可以声明抛出多个异常,多个异常之间用逗号隔开。

finally

finally 代码块出现在 catch 代码块最后,用来创建在 try 代码块后面执行的代码块。
无论是否发生异常,finally 代码块中的代码总会被执行。
在 finally 代码块中,可以运行清理类型等收尾善后性质的语句。

try{
  // 程序代码
}catch(异常类型1 异常的变量名1){
  // 程序代码
}catch(异常类型2 异常的变量名2){
  // 程序代码
}finally{
  // 程序代码
}

如果catch中使用了return语句,执行顺序是先执行finally,再执行return语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值