为什么我的实例变量可以在没有实例的情况下访问?

Why is my instance variable accessible without an instance?

我对Instance变量的理解是,它们是在创建对象时创建的。如果那是真的那么为什么可以打印变量 "data"?我不应该先创建一个 class JavaTesting 的对象吗?

public class JavaTesting 
{
    static int a = 1;
    private int data = 99;

    @Test
    public void f1() 
    {    
        System.out.println("Print a = "+a);
        System.out.println("Print data = "+data);
    }

}

您的方法 f1() 不是静态方法。这意味着它只能在实例上调用。调用 f1() 的任何方法都可能首先创建 JavaTesting 的实例。如果你让 f1() 静态,你的 IDE 可能会发作并开始发出危险信号。