java 中static和 类加载问题

publicclassStaticDemo{publicstaticvoidmain(String[]args){System.out.println(test.u);S... public class StaticDemo {
public static void main(String[] args) {
System.out.println(test.u);
System.out.println("before");
System.out.println(test.d);
System.out.println("finish");
}
}
class test{
//静态代码块
static{
System.out.println("静态代码块正在加载...");
}
public final static int u = 3;
public static int d=2;
public test() {

}
}

//静态变量是在类加载期间分配的,那当我调用test.u的时候,没有先打印出“代码块在加载”,也就是说test
//类并么有被加载。
//难道是因为final static ,但是当我注销掉//System.out.println(test.u);在运行,发现类被加载了
//先运行了代码块中的输出
展开
 我来答
函广日件炉读6606
2011-08-10 · TA获得超过790个赞
知道小有建树答主
回答量:1479
采纳率:0%
帮助的人:1525万
展开全部
你这是内部类,不是静态块。如果是静态块,直接写static{,前面不要写class test{
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
penol168
2011-08-10 · TA获得超过108个赞
知道小有建树答主
回答量:230
采纳率:0%
帮助的人:103万
展开全部
final static是一个常量,test不会加载,test.u当成常量使用
追问
常量难道是在javac编译的时候就在内存中分配了空间?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhuixuecool
2011-08-10 · 超过15用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:42.2万
展开全部
楼上正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-08-10
展开全部
?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式