首页 > 其他分享 >JVM

JVM

时间:2023-08-04 17:14:15浏览次数:37  
标签:操作系统 Windows 不同 使用 JVM Linux

一、解决什么问题

1.解决Java跨平台问题的
2.解决Java如何让计算机运行的
3.解决内存的分配释放,如垃圾回收gc
4.安全性,如字节码验证和安全沙箱
5.异常处理
6.多线程
7.动态加载,即动态的加载和卸载代码,这样比较灵活和可扩展,如即时编译器JIT

二、如何解决的

1.跨平台?

方法:通过不同平台使用不同的JVM
问题:JVM底层是如何实现跨平台的(即不同平台哪里不一样,实质上考虑的是操作系统是在哪几个方面不一样)?

  • 二进制格式:不同操作系统上的JVM使用不同的二进制格式。例如,Windows上的JVM使用PE(Portable Executable)格式,而Linux上的JVM使用ELF(Executable and Linkable Format)格式。

  • 内存管理:不同操作系统上的JVM可能使用不同的内存管理机制。例如,Windows上的JVM使用虚拟内存管理,而Linux上的JVM使用分页机制。

  • 线程调度:不同操作系统上的JVM可能使用不同的线程调度算法。例如,Windows上的JVM使用抢占式调度算法,而Linux上的JVM使用时间片轮转调度算法。

  • 文件系统:不同操作系统上的JVM可能使用不同的文件系统接口。例如,Windows上的JVM使用Win32 API,而Linux上的JVM使用POSIX API。

  • 网络通信:不同操作系统上的JVM可能使用不同的网络通信接口。例如,Windows上的JVM使用Winsock API,而Linux上的JVM使用Socket API。

2.如何让Java在计算机上运行的?

方法:通过什么组件让其变成二进制机器码

3.如何实现内存管理的

三、有哪些组件

1.程序计数器

a.解决什么问题?

b.如何解决问题的?

2.堆
3.

四、如何使用这些组件


标签:操作系统,Windows,不同,使用,JVM,Linux
From: https://www.cnblogs.com/hyc492/p/17606235.html

相关文章

  • 为了成为Java大牛,我决定手写个JVM~
    JVM对我们很多人来说就像个黑盒子,无从下手,但是又是我们JavaCoder不得不去深入研究的一门技术国内玩JVM的大牛很少,知名的就那么几个,而玩好JVM又教好JVM的人更是少之又少。今天给大家介绍其中一位,江湖人送外号道格牙的子牙老师。下面的时间,交给他。哈喽,我就是江湖人送外号[......
  • JavaSE--JDK、JRE、JVM三者之间的关系
    JDK:Java开发工具箱JRE:Java运行环境JVM:java虚拟机JDK包括JRE,JRE包括JVM。jvm是不能独立安装的,但是jre和jdk是可以单独安装的安装jdk后jre自动就安装了安装jre后jvm就自动安装了 问题:在客户进行项目部署时,把项目跑起来,需要安装jdk么?只需要安装jre就行,jre体积小,安装便捷 Java体......
  • 一次JVM内存溢出的排查经过
    文章目录一、背景二、解决办法三、总结一、背景高峰将至,系统访问量进入高峰期。随之系统出现了异常:java.lang.OutOfMemoryError:unabletocreatenewnativethread。在解决这个问题中,尝试了各种方法,最后竟然是因为它…二、解决办法1、关于这个问题,一开始猜想是因消息队列(acti......
  • JAVA系列之JVM内存调优
    文章目录一、前提二、JVM内存结构1、栈内存2、堆内存3、永久代(元空间)三、JVM常用参数1、堆大小设置2、垃圾回收器选择2.1吞吐量优先的并行收集器2.2响应时间优先的并发收集器3、其他辅助配置四、内存溢出排查1、元空间溢出(java.lang.OutOfMemoryError:Metaspace)2、栈深度不够(ja......
  • JVM垃圾回收
    JVM垃圾回收1.概述JVM(Java虚拟机)的垃圾回收是自动管理内存的过程,用于回收不再使用的对象并释放内存资源。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。这种自动化的内存管理机制极大地减轻了开发人员对手动释放内存的负担,提高了开发效率。1.1.什么是垃......
  • JVM 简介
    一、JVM简介1.1字节码由编译器编译程序得到的二进制文件(.class文件)。不同的编译器,可以编译出相同的字节码文件,字节码文件也可以在不同的JVM上运行(具有跨平台性,一次编译,到处运行)。1.2虚拟机虚拟机(VirtualMachine)可以分为系统虚拟机和程序虚拟机:(1)系统虚拟机:完全是对......
  • JVM
    前言什么是JVM?JavaVirtualMachine,Java程序的运行环境(Java二进制字节码的运行环境)。java代码的执行流程JVM的整体结构程序计数器ProgramCounterRegister程序计数器(寄存器)......
  • jvm attach过程与底层实现
    rasp的技术重点之一是java-agent技术,通过agent可以获取到Instrumentation接口的实现,通过这个inst变量对字节码进行修改。javaagent可以在jvm启动时使用-agentjar参数启动,也可以在运行时通过attach相应进程,并且指明需要加载的jar包,就可以进入到jar包中定义好的agentmain方法处,执......
  • JVM02_垃圾回收
    GC的相关VM参数含义参数堆初始大小-Xms堆最大大小-Xmx或-XX:MaxHeapSize=size新生代大小-Xmn或(-XX:NewSize=size+-XX:MaxNewSize=size)幸存区比例(动态)-XX:InitialSurvivorRatio=ratio和-XX:+UseAdaptiveSizePolicy幸存区比例-XX:Survivor......
  • 深入理解Java虚拟机(JVM):原理、结构与性能优化
    1.介绍Java虚拟机(JVM)是Java程序的核心执行引擎,负责将Java源代码编译成可执行的字节码,并在运行时负责解释执行字节码或将其编译成本地机器代码。本文将深入探讨JVM的原理、结构以及性能优化的相关技术。2.JVM原理与结构2.1JVM运行时数据区域JVM运行时数据区域由以下几部分组......