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

java中类加载到内存有关问题

2013-01-05 
java中类加载到内存问题class demo{static int i0static String pastatic{i++System.out.println(

java中类加载到内存问题
class demo
{
static int i=0;

static String p="a";
static
{
i++;
System.out.println("p="+p+"   i="+i);
}
{
p="b";
System.out.println("p="+p);
}
private demo() 

{
p="c";
System.out.println("p="+p);
}
private static demo s=new demo();
public static demo getInstance()
{
return s;
}
public static void setparm(String a)
{
p=a;
}
}
class shijiu
{
public static void main(String[]args)
{
demo s=demo.getInstance();
demo ss=demo.getInstance();
}
}
我是想知道 demo ss=demo.getInstance 中的demo. 是不是再重新加载demo类
[解决办法]
不需要,这个和jvm的机制有关,你可以看看jvm加载类的机制,我知道这个类用到的时候加载这个类,程序中没有用到这个类的对象,静态变量,方法,才可能被释放。

[解决办法]
NO。首先demo自身有一个demo对象的引用,而且是static的,所以s只有在demo这个class在加载的时候初始化。而getInstance是返回的这个引用,所以你通过getInstance获取出来的demo对象都是同一个

热点排行