核心内容摘要
monad初学者指南:mostly-adequate-guide-ru教你驯服异步操作
好的下面用简单易懂的方式解释 Java 中的static和final关键字
static关键字static表示静态的用于修饰成员变量、方法、代码块。
它意味着该成员属于类本身而不是类的某个实例。
特点静态变量所有实例共享同一个静态变量。
通过类名.变量名直接访问。
class Student { static String school 清华大学; // 所有学生共享学校名称 } // 使用 System.out.println(Student.school); // 输出清华大学静态方法可直接通过类名.方法名()调用。
不能访问非静态成员因为不依赖实例。
class MathUtils { static int add(int a, int b) { return a b; } } // 使用 int result MathUtils.add(3,
; // 输出8静态代码块在类加载时执行一次用于初始化静态资源。
class Database { static { System.out.println(加载数据库驱动...); } }
final关键字final表示不可改变的用于修饰变量、方法或类。
特点final变量基本类型值不可修改常量。
引用类型引用不可变但对象内部状态可能可变。
final double PI
14159; // 常量 final ListString list new ArrayList(); list.add(Java); // 允许因为list引用不变但内容可变 // list new ArrayList(); // 错误引用不可重新赋值final方法方法不能被重写子类不能修改。
class Parent { final void print() { System.out.println(不能重写我); } } class Child extends Parent { // void print() { ... } // 编译错误 }final类类不能被继承。
final class StringUtils { ... } // class SubUtils extends StringUtils { ... } // 错误
static final组合static final修饰的变量是全局常量通常用大写命名。
例如 Java 中Integer.MAX_VALUEpublic static final int MAX_VALUE 2147483647;