核心内容摘要
可视化展示:StructBERT文本向量空间分布
static是什么static静态是 Java 中的一个关键字用来修饰变量、方法、代码块、内部类核心作用是被 static 修饰的成员属于「类」本身而不是类的某个实例对象。
可以用一个通俗的比喻理解普通成员非 static好比每个学生的「个人笔记本」每个学生对象都有自己的一本互不干扰static 成员好比教室的「公共白板」所有学生对象共用这一个改了之后所有人看到的都是修改后的结果。
static的核心用法附代码示例
静态变量类变量定义属于类所有对象共享内存中只加载一次类加载时初始化访问可以直接通过「类名。
变量名」访问也可以通过对象访问不推荐。
java运行public class Student { // 非静态变量实例变量每个学生独有 String name; // 静态变量类变量所有学生共享的学校名称 static String school 北京大学; public static void main(String[] args) { //
直接通过类名访问静态变量推荐 System.out.println(Student.school); // 输出北京大学 //
创建对象访问不推荐易混淆 Student s1 new Student(); s
name 张三; System.out.println(s
school); // 输出北京大学 //
修改静态变量所有对象都受影响 Student.school 清华大学; Student s2 new Student(); s
name 李四; System.out.println(s
school); // 输出清华大学 System.out.println(s
school); // 输出清华大学 } }
静态方法类方法定义属于类无需创建对象即可调用注意静态方法中不能直接访问非静态成员因为非静态成员属于对象静态方法执行时可能还没有对象但可以访问静态成员。
java运行public class MathUtil { // 静态方法计算两数之和工具类常用静态方法 public static int add(int a, int b) { // 静态方法中可以访问静态变量 staticVar 10; return a b; } // 静态变量 static int staticVar; // 非静态变量 int nonStaticVar; public static void main(String[] args) { // 直接通过类名调用静态方法 int sum MathUtil.add(3,
; System.out.println(sum); // 输出8 // 错误示例静态方法中不能直接访问非静态变量 // System.out.println(nonStaticVar); } }
静态代码块定义类加载时执行且只执行一次常用于初始化静态变量、加载配置文件等执行顺序静态代码块 构造方法创建对象时执行。
java运行public class TestStaticBlock { // 静态变量 static int num; // 静态代码块 static { num 100; System.out.println(静态代码块执行num num); } // 构造方法 public TestStaticBlock() { System.out.println(构造方法执行); } public static void main(String[] args) { // 创建第一个对象静态代码块先执行再执行构造方法 TestStaticBlock t1 new TestStaticBlock(); // 创建第二个对象静态代码块不再执行只执行构造方法 TestStaticBlock t2 new TestStaticBlock(); } }输出结果plaintext静态代码块执行num100 构造方法执行 构造方法执行