怎么都想不到答案....同一jvm static变量相同 这都小和尚念经样记住的 不知道怎么回答这个问题
解决方案 »
- JCreator的问题!
- 请问用j2se能实现 输出 图表么? 饼状或柱状图.
- 在生活中怎样培养自己面向对象的编程思想
- 在java中.++i会否比i++快?
- 跪问怎样实现Java程序的“最终任务”?
- 生成jar文件后,为什么不能执行读写文件和保存功能(在线等,急求)
- 请问各路大神100的阶乘的各个位数之和怎么求?比如10的阶乘是3628800,那我要求的结果是3+6+2+8+8+0+0=27
- splash screen命令行调试OK,生产jar运行时SplashScreen.getSplashScreen()总是返回null
- 汉字输出问题,在线等待,问题解决就给分!
- 急!判断上传文件是否为图形文件,怎么改名,我该怎样做
- sql 正则表达式
- java 实现目录管理
在java中有Bootstrap,ExtClassLoader,AppClassLoader三个加载器,其关系大致为:Bootstrap(爷爷,本地代码写的),
-ExtClassLoader(老爸),
-AppClassLoader(儿子)在加载新类时,会先判断其祖宗加载器是否已经加载了,如果没有方才加载。所以我觉得默认情况下是不会出现这种情况的。但如果,你整成这样:Bootstrap(爷爷)
-ExtClassLoade(老爸)
-AppClassLoader(儿子)
-牛头ClassLoader(牛孙子,自定义)
-马面ClassLoader(马孙子,自定义) 然后控制"牛头ClassLoader","马面ClassLoader" 去加载一个"白痴类.class"(例如包含static变量)。此时,"牛头ClassLoader","马面ClassLoader"都认为其父加载器没有加载"白痴类.class",故而造成加载了两个"白痴类.class",而他们之间可以说是毫无关系的,因此其中的static变量应该是可以不同的。呵呵,纯属臆测,期待高人啊
class ClassLoaderA extends ClassLoader {}
class ClassLoaderB extends ClassLoader {}
Test t1 = (Test)ClassLoaderA.loadClass("com.Test").newInstance();
Test t2 = (Test)ClassLoaderB.loadClass("com.Test").newInstance();
t1.i = 100;
t2.i = 1000;
System.out.println(t1.i, t2.i);
类似这样吧,没运行过
如下class Super{
final String A = "1";}class Sub extends Super{
public void disp(){
System.out.println(Super.A);
}
}2.更改Super中A的值,只重新编译Super类。此时,Super中的Super.A和Sub中的Super.A的值,不同的可能性非常大。
class B{
static {
A.str="new value";
}
}System.out.println(A.str); //value
System.out.println(A.str); //new value;又没有说 final 之类的 一个变量 他值本来就是变的
忘记static了
class Super{
final static String A = "1";}class Sub extends Super{
public void disp(){
System.out.println(Super.A);
}
}