Java虚拟机在什么时候启动的?运行main方法的时候?一个main对应一个虚拟机吗

刚开始看java虚拟机有关内容的书籍,没翻几页心理就有个疑问:Java虚拟机在什么时候启动的。只知道 javac  java -xx+ 命令的运行,殊不知,java 命令运行的时候就创建了java虚拟机的一个实例。下面是我从网上找的看起来比较不错的回答:

 

一个运行时的Java虚拟机实例的天职是:负责运行一个java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Java虚拟机实例中。
Java虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序。而这个main()方法必须是共有的(public)、静态的(static)、返回值为void,并且接受一个字符串数组作为参数。任何拥有这样一个main()方法的类都可以作为Java程序运行的起点。

 

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实例,所以是对应的。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值