Rumah Java javaTutorial 什么是java虚拟机?JVM的简单介绍

什么是java虚拟机?JVM的简单介绍

Nov 21, 2018 pm 04:52 PM
java mesin maya java jvm

本篇文章给大家带来的内容是java中什么是JVM?Java虚拟机的简单介绍,让大家了解JVM可以做什么,JVM的作用。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

什么是java虚拟机?JVM的简单介绍

什么是JVM?

Java虚拟机(JVM)是运行Java字节码的虚拟机,它是java编程语言的核心。当我们运行程序时,JVM负责将字节代码转换为特定于机器的代码。JVM还依赖于平台,并提供核心Java函数,如内存管理,垃圾收集,安全性等。

JVM被称为虚拟,因为它提供的接口不依赖于底层操作系统和机器硬件。这种与硬件和操作系统的独立性使得java程序可以在任何地方进行一次写入。

在现实世界中,JVM是一种规范,它提供了一个可以执行Java字节码的运行时环境。

JVM可以做什么?

JVM执行以下操作:

1、加载代码

2、验证代码

3、执行代码

3、提供运行时环境

JVM提供以下定义:

1、记忆区

2、类文件格式

3、注册集

4、垃圾收集堆

5、致命错误报告等

JVM架构

让我们来了解一下JVM的内部架构。它包含有类加载器,内存区域,执行引擎等。

JVM-Architecture.png

1、类加载器

Classloader是JVM的子系统,用于加载类文件。每当我们运行java程序时,它首先由类加载器加载。Java中有三个内置的类加载器。

1)、Bootstrap ClassLoader:这是第一个类扩展,它是Extension类加载器的超类。它加载rt.jar文件,该文件包含Java Standard Edition的所有类文件,如java.lang包类,java.net包类,java.util包类,java.io包类,java.sql包类等。

2)、Extension ClassLoader:这是Bootstrap的子类加载器和System类加载器的父类加载器。它遍历位于$ JAVA_HOME / jre / lib / ext目录中的jar文件。

3)、System / Application ClassLoader:这是Extension类加载器的子类加载器。它从类路径加载类文件。默认情况下,classpath设置为当前目录。您可以使用“-cp”或“-classpath”开关更改类路径。它也被称为Application类加载器。

2、类(方法)区域

Method区域存储每类结构,例如运行时常量池,字段和方法数据,方法的代码。

3、堆

Heap是分配对象的运行时数据区域。

4、堆叠

Java 堆叠存储帧。Stack包含局部变量和部分结果,并在方法调用和返回中起作用。

每个线程都有一个私有JVM堆栈,与线程同时创建。

每次调用方法时都会创建一个新帧。当方法调用完成时,框架将被销毁。

5、程序计数器寄存器(Program Counter Register)

PC(Program Counter)寄存器包含当前正在执行的Java虚拟机指令的地址。

6、原生方法堆栈(Native Method Stack)

它包含应用程序中使用的所有本机方法。

7、执行引擎(Execution Engine)

它包含:

1)、虚拟处理器

2)、解释器:读取字节码流然后执行指令。

3)、实时(JIT)编译器:用于提高性能。JIT同时编译具有类似功能的部分字节代码,因此减少了编译所需的时间。这里,术语“编译器”指的是从Java虚拟机(JVM)的指令集到特定CPU的指令集的转换器。

8、Java本地接口(Java Native Interface)

Java Native Interface(JNI)是一个框架,它提供了一个接口,用于与另一种语言(如C,C ++,Assembly等)编写的另一个应用程序进行通信.Java使用JNI框架将输出发送到控制台或与OS库交互。

总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多相关视频教程,请访问:Java教程

Atas ialah kandungan terperinci 什么是java虚拟机?JVM的简单介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Penjana Nombor Rawak di Jawa Penjana Nombor Rawak di Jawa Aug 30, 2024 pm 04:27 PM

Panduan untuk Penjana Nombor Rawak di Jawa. Di sini kita membincangkan Fungsi dalam Java dengan contoh dan dua Penjana berbeza dengan contoh lain.

Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Oct 13, 2024 pm 01:32 PM

Java ialah bahasa pengaturcaraan popular yang boleh dipelajari oleh pembangun pemula dan berpengalaman. Tutorial ini bermula dengan konsep asas dan diteruskan melalui topik lanjutan. Selepas memasang Kit Pembangunan Java, anda boleh berlatih pengaturcaraan dengan mencipta program "Hello, World!" Selepas anda memahami kod, gunakan gesaan arahan untuk menyusun dan menjalankan program, dan "Hello, World!" Pembelajaran Java memulakan perjalanan pengaturcaraan anda, dan apabila penguasaan anda semakin mendalam, anda boleh mencipta aplikasi yang lebih kompleks.

See all articles