目录
final关键字
-
修饰类代表类不可继承
-
修饰变量代表变量不可以被重新赋值
-
修饰方法代表方法不可被重写(最终方法)
-
final还有防止指令重排序的作用(并发)
static关键字
"static"表示在编程语言中定义静态成员或方法。用于变量、方法、块或嵌套类。
1. 静态变量:
当一个变量被声明为静态变量时,它的值不依赖于特定对象的实例,而是被所有该类的实例共享。静态变量只有一份内存空间,无论创建了多少个类的实例,它们都共享同一个值。静态变量通常用于存储全局状态或在类中共享信息。
2. 静态方法:
静态方法是属于类本身而不是类的实例的方法。它们不需要对类进行实例化就可以直接调用。静态方法不能直接访问类的非静态成员,因为它们没有特定的实例上下文。静态方法通常用于执行不依赖于特定实例的操作,例如工具方法或计算公式。
3. 静态块:
静态块是一段代码块,在类被加载时执行且仅执行一次。它用于在类加载时进行初始化操作,例如初始化静态变量或执行其他必要的设置。
4. 静态嵌套类:
静态嵌套类是定义在另一个类内部的类,但与外部类的实例无关。静态嵌套类不需要依赖外部类的实例,因此可以直接通过外部类名称来访问。
使用静态成员和方法有以下几个特点和用途:
- 静态成员对所有类的实例都是共享的,可以在不创建类的实例的情况下使用。
- 静态方法没有对特定实例的依赖,可以通过类名直接调用。
- 静态成员和方法属于类本身,而不是某个特定的对象。
- 静态成员和方法可以在程序的任何地方使用,无需创建对象实例。
- 静态成员和方法通常用于实现工具方法、常量、单例模式、静态计数器等功能。
异常
当在 Java 中发生错误或异常情况时,程序会抛出异常。Java 的异常体系是用于处理这些异常情况的结构。
Java 的异常体系
1. Throwable:
`Throwable` 是 Java 异常体系的顶层父类。它有两个子类:`Error` 和 `Exception`。所有的异常都是 `Throwable` 的子类。
2. Error:
`Error` 是指那些严重错误,通常表示 JVM 或系统本身出现了问题,无法恢复。例如 `OutOfMemoryError`、`StackOverflowError` 等,它们一般不能被捕获和处理。
3. Exception:
`Exception` 是指一般的异常情况,可以由程序进行捕获和处理。`Exception` 有很多子类,可以根据具体情况选择合适的子类来处理异常。
4. Checked Exception(受检异常——强制处理,不处理则无法运行程序):
受检异常是指在方法中可能发生的异常,编译器会强制要求开发者在代码中进行处理。例如 `IOException`、`SQLException` 等。在方法声明中需要显示地声明受检异常或使用 `try-catch` 块进行处理。
5. Unchecked Exception(非受检异常——不强制处理,到运行的时候出错了才会在控制台报错):
非受检异常是指在运行过程中可能发生的异常,编译器不会强制要求开发者在代码中进行处理。例如 `NullPointerException`、`ArrayIndexOutOfBoundsException` 等。这些异常通常是由程序逻辑错误引起的,应该通过修改代码来避免。
6. RuntimeException:
`RuntimeException` 是非受检异常的子类。与其他非受检异常不同,编译器不会强制要求捕获或声明这些异常。常见的 `RuntimeException` 包括 `NullPointerException`、`ArrayIndexOutOfBoundsException`、`ArithmeticException` 等。
当异常发生时,如果没有合适的异常处理机制,程序会终止执行并抛出异常信息。为了处理异常情况,Java 提供了一种异常处理的机制,即使用 `try-catch-finally` 块。
- `try` 块中包含可能发生异常的代码。
- `catch` 块用于捕获异常,并根据需要进行处理。
- `finally` 块中的代码不管是否发生异常,都会被执行。
在处理异常时,可以根据具体情况选择不同的异常处理策略,例如捕获异常并进行处理、将异常向上抛出、日志记录等。
java异常体系结构图

抽象类与接口
一些知识点——
1、 抽象类归根结底是类,普通类的特征抽象类也具备,只能单继承
2、接口可以多实现,接口中的方法除了default方法和static方法是没有方法体的
3、在使用上区别并不大,都是偏向于顶层父类
4、接口在编程中更偏向于有能力、动作行为之类,抽象类更偏向于事物的本质(举一个通俗一点的例子就是,人和动物这种关系,动物更适合以抽象类的形式存在)
5、接口中所有的方法默认是public,属性都是static final的
本文介绍了Java中的final关键字,用于声明不可变的类、变量和方法,以及static关键字,用于创建静态成员和方法,包括静态变量、静态方法、静态块和静态嵌套类。同时,文章详细阐述了Java异常处理机制,包括异常体系、受检异常和非受检异常的处理。最后,讨论了抽象类与接口的区别,强调它们在面向对象编程中的角色。
560

被折叠的 条评论
为什么被折叠?



