我想知道什么时候静态变量初始化为默认值.是否正确加载类时,会创建(分配)静态变量,然后执行声明中的静态初始化和初始化?在什么时候给出默认值?这导致了前向参考的问题.
另外请您解释一下这个问题,为什么静态字段没有及时初始化?特别是Kevin Brock在同一网站上给出的答案.我无法理解第三点.
作为面向对象范例的规则,静态方法只能访问静态变量和静态方法.如果是这样的话,就会出现一个明显的问题,即Java中的main()方法如何能够访问非静态成员(变量或方法),即使它是特定的public static void ... !!!
对于专家来说这是一个非常简单的问题,但对于像我这样的初学者来说,这只是令人困惑.我以为我理解静态,但显然我没有.以下是整个课程,它说我需要进行静态测试.但我不想.我该怎么做才能解决这个问题,为什么它首先发生?谢谢!
public class SubstringTest
{
private String test;
public static void main(String[] args)
{
test = "Penguin";
System.out.println(test);
System.out.println(test.substring(3));
}
}
Run Code Online (Sandbox Code Playgroud)