日期:2014-05-20  浏览次数:20728 次

分别在命令行和eclipse运行java程序,有什么区别??
我看到一篇帖子,“把‘Hello’打印十次”。于是我用以下代码验证到底直接输出和循环输出哪种耗时少:
------------------------------***************************************--------------------------------
public class Printhello 
 {
  public static void main(String[] args) 
  {
  long t_start = 0 ,t_end = 0;
  t_start = System.nanoTime();
  System.out.println("Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello ");
  t_end = System.nanoTime();
  System.out.println("直接输出耗时:"+(t_end-t_start)+"纳秒");
   
  t_start = System.nanoTime();
  for(int i = 1;i <= 10; i++)
  {System.out.print("Hello ");}
  t_end = System.nanoTime();
  System.out.println();
  System.out.println("循环输出耗时:"+(t_end-t_start)+"纳秒");  
  }
 
 }
--------------------------------****************************************----------------------
  我在eclipse上多次运行,发现 循环输出 耗时少,后在dos下多次运行,结果相反。请问大家为什么出现这种区别??后来我在eclipse里把直接输出和循环输出部分的代码互换位置,结果是 直接输出 耗时少,再问大家这又是为什么??

  欢迎高手指教,欢迎分享优质的具上述功能的代码!!!!

------解决方案--------------------
你搜搜ide和dos运行机制。
------解决方案--------------------
其实最终都是调用java虚拟机运行,出现你说的这种情况,可能是jdk环境不一样或者传入参数不一样。
------解决方案--------------------
dos下运行和IDE中运行都是调用java命令启动JVM运行的,不同的是运行参数不一样,dos下会检查class的有效性,IDE下不会(在调用命令前久检查过了)