当使用 Java 命令运行 .class 文件的时候,就相当于启动了一个 JVM 进程,如何理解?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当使用 Java 命令运行 .class 文件的时候,就相当于启动了一个 JVM 进程,如何理解?相关的知识,希望对你有一定的参考价值。

请教各位大佬,这里说的启动了一个JVM进程,这个进程和操作系统进程是一个意思么?

我不太理解jvm当中具体有哪些进程,望解答。谢谢。

进程是操作系统资源管理的基本单位,运行.class文件和打开一个应用软件(当然有些软件可能对于多个进程)是类似的,都会创建一个操作系统进程。

你提到的"运行.class启动的JVM进程",实际上这个就是操作系统创建的进程;这个进程需要一定的资源(CPU、内存、磁盘等)来完成一定的事情,进程之间不会相互干扰,所以每个软件都需要操作系统分配进程。

至于你说的"JVM中有哪些进程",我理解应该是"JVM中有哪些"线程;建议去了解一下进程和线程之间的区别。我个人理解进程和线程的核心区别是:进程是资源管理、分配的基本单位,这个类比于公司;而线程是操作系统调度的基本单位,类比于公司员工。上级部门在分配资源的时候肯定是分配名额到企业,但是分配资源具体怎么使用,则需要由企业的员工来完成。

一般JVM中的线程由用户创建,但是JVM也会默认创建一些线程,比如垃圾回收线程。

参考技术A 你运行一个main方法的时候 会启动一个java进程 编译解析.class文件 main函数是java规范,你可以理解它就是应用程序的入口

以上是关于当使用 Java 命令运行 .class 文件的时候,就相当于启动了一个 JVM 进程,如何理解?的主要内容,如果未能解决你的问题,请参考以下文章

无法在命令行上将 Netbeans 生成的 .java 文件编译成 .class

javac 及 java命令的使用问题(错误或无法加载主类)

java命令怎么运行一个包里的多个class文件

使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析

class文件是啥意思

运行java的class文件方法详解