public class Test {
public static String str;
/**
* @param args
*/
public static void main(String[] args) throws Exception{
if(Test.aaa==null){
Test.str= "111";
}
else{
Test.str="222";
}
Thread.sleep(15000);
System.out.println(Test.aaa);
}}现在我运行这个程序(使用java命令),然后等待5秒,再运行这个程序(使用java命令),请问两次运行的结果分别是什么?
请问这两次运行的java虚拟机和runtime是同一个吗?
public static String str;
/**
* @param args
*/
public static void main(String[] args) throws Exception{
if(Test.aaa==null){
Test.str= "111";
}
else{
Test.str="222";
}
Thread.sleep(15000);
System.out.println(Test.aaa);
}}现在我运行这个程序(使用java命令),然后等待5秒,再运行这个程序(使用java命令),请问两次运行的结果分别是什么?
请问这两次运行的java虚拟机和runtime是同一个吗?
public class Test {
public static String str;
/**
* @param args
*/
public static void main(String[] args) throws Exception{
if(Test.aaa==null){
Test.str= "111";
}
else{
Test.str="222";
}
Thread.sleep(15000);
//System.out.println(Test.aaa);
System.out.println(Test.str);}}
java命令实际上是一个exe组件(对于WIN32),
也就是说你每次执行java命令就会创建一个jvm进程。
不同的jvm进程之间是互相隔离的,并不冲突。
runtime是一个逻辑上的概念,每个jvm进程都会管理自己的runtime,
但是runtime本身可能只有一套,但可以有多个实例。
java的runtime实际上主要指rt.jar。
public class Test {
public static String str;
/**
* @param args
*/
public static void main(String[] args) throws Exception{
if(Test.str==null){//这前是Test.aaa的
Test.str= "111";
}
else{
Test.str="222";
}
Thread.sleep(15000);
//System.out.println(Test.aaa);
System.out.println(Test.str);}}
程序运行完后,再执行的话,结果应该一样的
那现在问题是这样,我写了一个批处理bat:内容为“java Test”
我希望在某一个时刻Windows只有一个Test程序在运行,也就是说如果我双击两轮(一共点四下)这个bat程序,它只运行第一次,而第二次提示程序已经运行。
这个怎么实现呢?
}
Test getTest(){
if(Test.str==null)
return new Test();
}
main写到另外一个类里面去 TEST类作为单例类 书上有啊 翻本书看看
还有楼主的本意应该是这样吧:
public class Test
{
private static String str = null;
public static void showStr()
{
if(Test.str == null){
Test.str= "111";
}
else{
Test.str="222";
}
Thread.sleep(15000);
System.out.println(Test.str);
}
public static void main(String[] args)
{
Test.showStr();
Test.showStr();
}
}
每次启动查找此文件.如果有则报错.
singleton