程序代码如下:public class ClassA
{
public static String str;
public ClassA()
{
str= new String();
}
public static void main(String [] args) throws Exception
{
str= "hello";
Thread.sleep(5000);
System.out.println(str);
}
}public class ClassB
{
public static void main(String[] args)
{
String str = (ClassA.name+="haha");
System.out.println(str);
}
}问题是,先运行ClassA,再运行ClassB,ClassB运行结束后输出nullhaha,而ClassA sleep 5秒后输出是hello.为什么操作的同一个静态属性运行的结果确没有任何联系呢?我原来是在一个类中用一个静态的HashMap保存数据,中途从另一个类中调用这个静态的HashMap却取不到任何数据,然后自己写了上面两个测试类,郁闷了半天越整越糊涂了.请教各位才子才女!! 不甚感激!
{
public static String str;
public ClassA()
{
str= new String();
}
public static void main(String [] args) throws Exception
{
str= "hello";
Thread.sleep(5000);
System.out.println(str);
}
}public class ClassB
{
public static void main(String[] args)
{
String str = (ClassA.name+="haha");
System.out.println(str);
}
}问题是,先运行ClassA,再运行ClassB,ClassB运行结束后输出nullhaha,而ClassA sleep 5秒后输出是hello.为什么操作的同一个静态属性运行的结果确没有任何联系呢?我原来是在一个类中用一个静态的HashMap保存数据,中途从另一个类中调用这个静态的HashMap却取不到任何数据,然后自己写了上面两个测试类,郁闷了半天越整越糊涂了.请教各位才子才女!! 不甚感激!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货