JavaBean

在Java中,有很多class的定义都符合这样的规范: 若干private实例字段; 通过public方法来读写实例字段。 例如: public class Person { private String name; private int age; public String getName() { return this.name; } public void setName(String n
JavaBean

枚举类

在Java中,我们可以通过static final来定义常量。例如,我们希望定义周一到周日这7个常量,可以用7个不同的int表示: public class Weekday { public static final int SUN = 0; public static final int MON = 1; public static final int TUE = 2; public stati
枚举类

记录类

使用String、Integer等类型的时候,这些类型都是不变类,一个不变类具有以下特点: 定义class时使用final,无法派生子类; 每个字段使用final,保证创建实例后无法修改任何字段。 假设我们希望定义一个Point类,有x、y两个变量,同时它是一个不变类,可以这么写: public final class Point { private final int x; private fi
记录类

BigInteger

在Java中,由CPU原生提供的整型最大范围是64位long型整数。使用long型整数可以直接通过CPU指令进行计算,速度非常快。 如果我们使用的整数范围超过了long型怎么办?这个时候,就只能用软件来模拟一个大整数。java.math.BigInteger就是用来表示任意大小的整数。BigInteger内部用一个int数组来模拟一个非常大的整数: BigInteger bi = new Bi
BigInteger

BigDecimal

和BigInteger类似,BigDecimal可以表示一个任意大小且精度完全准确的浮点数。 BigDecimal bd = new BigDecimal("123.4567"); System.out.println(bd.multiply(bd)); // 15241.55677489 BigDecimal用scale()表示小数位数,例如: BigDecimal d1 = new BigDe
BigDecimal

常用工具类

Java的核心库提供了大量的现成的类供我们使用。本节我们介绍几个常用的工具类。 Math 顾名思义,Math类就是用来进行数学计算的,它提供了大量的静态方法来便于我们实现数学计算: 求绝对值: Math.abs(-100); // 100 Math.abs(-7.8); // 7.8 取最大或最小值: Math.max(100, 99); // 100 Math.min(1.2, 2.3); //
常用工具类

Java的异常

在计算机程序运行的过程中,总是会出现各种各样的错误。 有一些错误是用户造成的,比如,希望用户输入一个int类型的年龄,但是用户的输入是abc: // 假设用户输入了abc: String s = "abc"; int n = Integer.parseInt(s); // NumberFormatException! 程序想要读写某个文件的内容,但是用户已经把它删除了: // 用户删除了该文件:
Java的异常

捕获异常

在Java中,凡是可能抛出异常的语句,都可以用try ... catch捕获。把可能发生异常的语句放在try { ... }中,然后使用catch捕获对应的Exception及其子类。 多catch语句 可以使用多个catch语句,每个catch分别捕获对应的Exception及其子类。JVM在捕获到异常后,会从上到下匹配catch语句,匹配到某个catch后,执行catch代码块,然后不再继续匹
捕获异常