Java 基础
在 Java 中定义一个不做事且没有参数的构造方法的作用¶
Java 程序在执行子类的构造方法之前,如果没有用
super来调用父类特定的构造方法,则会调用父类中”没有参数的构造方法“。因此,如果父类中定义来有参数的构造方法,而在子类的构造方法中又没有用super来调用父类中特定的构造方法,则编译时将发生错误,因为 Java 程序找不到没有参数的构造方法可供执行。解决办法是在父类里加一个不做事且没有参数的构造方法。
import java 和 import javax 有什么区别¶
刚开始的时候 Java API 所必须包是
java开头的包,javax当时只是扩展 API 来 shying,然而随着时间的推移,javax逐渐地扩展成为 Java API 的组成部分。但是,将扩展从javax包移动到java包确实太麻烦来,最终会破坏一堆现有的代码。因此决定javax包成为标准 API 的一部分。
equals() 和 hashCode()¶
我们重写了
Person类的equals()方法。但是很奇怪的发现HashSet中仍然有重复元素。为什么会出现这种情况呢?这是因为p1和p2的内容相等,但是他们的hashCode()不等,所以HashSet在添加p1和p2的时候,认为它们不相等。
异常类层次结构¶
Throwable 接口常用方法¶
public String getMessage()返回异常发生时的简要描述 public String toString()返回异常发生时的详细信息 public String getLocalizedMessage()返回异常对象的本地化信息。使用 Throwable的子类覆盖这个方法,可以生成本地化信息。如果子类没有覆盖该方法,则该方法返回的信息与getMessage()返回的结果相同public void printStackTrace()在控制台上打印 Throwable对象封装的异常信息在以下 3 种特殊情况下,
finally块不会被执行
- 在
try或finally块中用了System.exit(int)退出程序。但是System.exit(int)在异常语句之后,finally还是会被执行。- 程序所在的线程死亡。
- 关闭 CPU。
在
try语句和finally语句中都有return语句时,在方法返回之前,finally语句的内容将被执行,并且finally语句的返回值将会覆盖原始的返回值。