Java虚拟机在什么时候启动的?运行main方法的时候?一个main对应一个虚拟机吗
main函数是程序运行的入口,相当于win32的exe,一个程序运行需要一个JVM,多个程序就是多个JVM
一个运行时的Java虚拟机实例的天职是:负责运行一个java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Java虚拟机实例中。
Java虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序。而这个main()方法必须是共有的(public)、静态的(static)、返回值为void,并且接受一个字符串数组作为参数。任何拥有这样一个main()方法的类都可以作为Java程序运行的起点。
1.首先得理解什么是JVM,JVM全称Java Virtual Machine,JVM使用软件模拟Java 字节码的指令集,运行在一个完全隔离环境中的完整计算机系统。
Java语言规范和JVM语言规范是相对独立的,所以Java程序在每个不同的操作系统的虚拟机上编译出来的东西是不一样的,但是符合那个特定系统的JVM
规范,所以Java程序才能做到一次编译,到处运行,只需要运行在不同的操作系统虚拟机上就可以了。
2.看下图的JVM启动流程
1.我们在IDEA或者eclipse上面启动java程序或者直接cmd启动
2.由于我们的电脑上肯定安装了jdk,jdk里面就有jvm.cfg
3.根据配置寻找jvm.dll,我们安装的jdk上面也有
4.这个时候JVM已经初始化完成,就会加载我们的class文件
5.找到main方法并且运行起来。
每一个程序运行都遵照上面的过程,那么回答你的问题1.在你运行程序的时候启动2.不是在运行main方法的时候,是在运行main方法之前,程序启动
以后3.一个java程序一次只能运行一个main方法,在main方法执行之前会首先创建一个JVM实例,所以是对应的。
不是的, 一个main 方法代表一个程序进程的入口, 一个的虚拟机可以和物理机一样虚拟化出来和物理机一样
不是的,虚拟机是你的程序写好后,先在虚拟机这样一个平台上运行,类似于操作系统对于应用程序,并不是一个电脑版的QQ就对一个操作系统,所有的应用程序共用的,所以一个程序只能有一个main函数。虚拟机在你安装java的时候就一起安装了,随时可用。
不是的, 一个main 方法代表一个程序进程的入口, 当你在启动你那个程序的时候虚拟机也就启动了
没那么多虚拟机得,就一个,一般启动得时候,就是代码再编译得时候,就加载了,一个main方法,是再java程序中,有这个说法,javaEE是基于tomcat等
一些web服务,servicelet服务启动得说,但是一个main方法,享当于一个线程,没毛病得,可以同时运行好多main,也可以好多项目得说,main中可以调用其他方法得