给你个例子,你看看下面的输出是多少?? package com.sample.action;import java.util.Calendar; public class Test{ public static final Test INSTANCE = new Test(); private int size = 6; private static int THIS_YEAR = Calendar.getInstance().get(Calendar.YEAR); private Test(){ size = THIS_YEAR - 1930; } public int getSize(){ return size; } public static void main(String[] args){ System.out.println(INSTANCE.getSize()); } } 在static方法里面调用static变量,那种全局的,是没机会初始化的,呵呵。 看看下面的代码package com.sample.action;import java.util.Calendar; public class Test{ public static final Test INSTANCE = new Test(); private static int size = 6; private static int THIS_YEAR = Calendar.getInstance().get(Calendar.YEAR); static{ size = THIS_YEAR - 1930; } private Test(){ } public int getSize(){ return size; } public static void main(String[] args){ System.out.println(INSTANCE.getSize()); } } 你看看输出是多少? 你debug个断点跟跟看就明白了。
package com.sample.action;import java.util.Calendar;
public class Test{
public static final Test INSTANCE = new Test();
private int size = 6;
private static int THIS_YEAR = Calendar.getInstance().get(Calendar.YEAR);
private Test(){
size = THIS_YEAR - 1930;
}
public int getSize(){
return size;
}
public static void main(String[] args){
System.out.println(INSTANCE.getSize());
}
}
在static方法里面调用static变量,那种全局的,是没机会初始化的,呵呵。
看看下面的代码package com.sample.action;import java.util.Calendar;
public class Test{
public static final Test INSTANCE = new Test();
private static int size = 6;
private static int THIS_YEAR = Calendar.getInstance().get(Calendar.YEAR);
static{
size = THIS_YEAR - 1930;
}
private Test(){
}
public int getSize(){
return size;
}
public static void main(String[] args){
System.out.println(INSTANCE.getSize());
}
} 你看看输出是多少?
你debug个断点跟跟看就明白了。
我刚学不久.private static int THIS_YEAR = Calendar.getInstance().get(Calendar.YEAR); .但是我
但是我想那是引入YEAR的..
..第一个会有输出. 78
.第二个 为 6 不晓得对不..
...
..在书上的例子是用自由取值的方法去弄的..
..
...一个是静态的.
.一个不是.
...
...他们会输出不 同.
...
...应该就是那样.
.....我讲下我的理解.看看对不..不对请指出.
.....
.....静态的就是在类加载的时候就会被初始化.
...在那个时候就已经在内存中存在位置.
.而非静态的则需要在对象调用的时候.
...才会被初始化..
......不然不调用对象则不会被初始化