假设在同一台机器上,安装了一个JVM,一个应用服务器
1.启动一个应用服务器
2.另外编写一个包含main方法的JAVA类,并编译以及运行
问题:在运行这个JAVA类的时刻,这台机器上有多少个JVM进程?

解决方案 »

  1.   

    应用服务器如果是用jvm的服务器(如weblogic等),那就是两个进程。
    否则是一个.
      

  2.   

    那有哪些服务器是JVM服务器,哪些服务器不是JVM服务器,这两种服务器又有什么区别?
      

  3.   

    现基本上都是JVM服务器(依靠JVM运行的服务器,因为是Java编写的)。
    执行一个Java程序就有一个进程。
    JVM应用服务器是一个Java程序,包含main方法的JAVA类也是Java程序。
    所以同时运行时有两个进程。
    但如果你写的类是运行在服务器上的(如WEB程序),则可能只有一个服务器的JVM进程。
      

  4.   

    如果程序运行在客户端,那应该有两个JVM进程,运行在服务端可能就一个JVM进程吧
      

  5.   

    补充:
    既然你已说明是“包含main方法的JAVA类”,那运行时肯定多一进程(main方法 = 进程)。
    你可以想像一下,呵呵,其实运行JVM服务器也是运行“一个包含main方法的JAVA类”。
      

  6.   

    恩,谢谢你的回答,受益匪浅!
    顺便再问你一个问题,在Jsp,Servlet开发的B/S项目中,客户端与服务端严格的界限是什么?
      

  7.   

    如果程序运行在客户端,那应该有两个JVM进程,运行在服务端可能就一个JVM进程吧看你的客户端指的是什么。
    是JSP,运行在Tomcat这样容器里,只有一个后台Tomcat的进程(Tomcat就是个“包含main方法的JAVA类”)。
    是“包含main方法的JAVA类”,运行在客户端机器上的JVM里,肯定多一个进程。总之,一个JVM运行时只能容忍一个“包含main方法的JAVA类”,多运行一个就多启动一个JVM到内存,当然就多一个进程了。
      

  8.   

    恩,谢谢你的回答,受益匪浅! 
    顺便再问你一个问题,在Jsp,Servlet开发的B/S项目中,客户端与服务端严格的界限是什么?
    用户看到和操作的部分是客户端,如HTML,JavaScript。
    Jsp,Servlet都是工作在后台,然后生成HTML到客户端机器,
    Jsp,Servlet中的HTML部分看作是客户端部分,Java程序是后台部分。你也可以按MVC来区分。