返回信息流package test;
class B{
protected static int i = 100;
static {
System.out.println("B");
}
}
class C extends B{
static {
System.out.println("C");
}
}
public class MyApp {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(C.i);
}
}
提示:JVM优化
这是一条镜像帖。来源:北邮人论坛 / java / #19832同步于 2011/8/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
大家看看输出啥
lovemaker
2011/8/26镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
为什么没有输出 C?
【 在 lovemaker 的大作中提到: 】
: package test;
: class B{
:
: ...................
我觉得这个行为是和具体JVM相关的。毕竟JVM的标准并没有规定类应该如何装载,是积极装载,一下子装载所有的类呢?还是懒惰装载,不用到就不装载。
不输出C那就是说明这个JVM懒惰至极了吧。而且知道C.i就是B.i,所以连C都不装载。