GitHub - tequlia2pop/java-docs: Java Documents

Java

对象

对于所有对象都通用的方法

Object 类所有的非 final 方法都有明确的通用约定(general contract),因为它们被设计成是要被覆盖(override)的。任何一个类,在覆盖这些方法的时候,都有责任遵守这些通用约定;否则,其他依赖于这些约定的类(例如 HashMapHashSet)就无法结合该类一起正常运作。

参考资料

语法基础

容器

注解

异常

类型信息

Java 如何在运行时识别对象和类的信息?主要有两种方式:

  • “传统的” RTTI(运行时类型信息)

    假定我们在编译时已经知道了所有的类型,那么就可以在运行时通过传统的类型转换、Class 对象或关键字 instanceof 来发现和使用类型信息。

  • 反射机制

    如果在编译时不知道类的类型,那么就无法使用 RTTI 来识别类型信息。但是通过反射,我们仍然能够在运行时发现和使用类的信息。

RTTI 和反射之间的真正区别只在于,对 RTTI 来说,编译器在编译时打开和检查 .class 文件。(换句话说,我们可以用“普通”方式调用对象的所有方法。)而对于反射来说,.class 文件在编译时是不可获取的,所以是在运行时打开和检查 .class 文件。

JavaEE

测试

Hamcrest

Hamcrest 是一个用于构建测试表达式的匹配器库,主要用于单元测试。

Mockito

Mockito 是用于 Java 单元测试的 mocking 框架。Mockito 库支持创建 mock、验证和 stubbing。

参考资料

ASCII