首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java static 在内存中的运行情况解决方案

2012-04-09 
java static 在内存中的运行情况class Demo1{int num1String colorbluestatic{System.out.println(

java static 在内存中的运行情况
class Demo1
{
int num=1;
String color="blue";
static
{
System.out.println("static");
}
public static void show(Demo1 d)
{
System.out.println(d.num);
}
public static void main(String args[])
{
Demo1 d=new Demo1();
show(d);
System.out.print("main");
}
static
{
System.out.println("end");
}
}
静态成员函数不能调用非静态成员变量。静态成员先于对象存在那在show()里面怎么可以调用d.num。谁能给说一下该代码在内存中从加载到运行时的顺序。

[解决办法]
static 
end
1
main


static 
end
是由于 该类为启动类,即 java Demo1
所以jvm会主动使用 ,先加载 class ,然后初始化static模块的代码 ,顺序执行
然后执行main函数


[解决办法]
静态成员函数不是优先于对象存在吗,在该函数被加载时 Demo1 d 并没有被创建,怎么能输出呢?
你掉用这个函数的时候不会传递一个对象吗
[解决办法]
没看明白,你想问什么。调用show的时候, d 已经new出来了。还想怎么样呢
[解决办法]
Demo1 d=new Demo1();
show(d);
d不是new 出来了吗。。。

热点排行