当前位置: 首页 > news >正文

JVM基础了解

        JVM 是java虚拟机。

       作用:运行并管理java源码文件锁生成的Class文件;在不同的操作系统上安装不同的JVM,从而实现了跨平台的保证。一般在安装完JDK或者JRE之后,其中就已经内置了JVM,只需要将Class文件交给JVM即可

 写好的java源文件,会编译生成16进制的字节码文件(**.class),cafe babe开头,有相应的格式,可交由jvm执行

1.类加载

     A. 首先是Loading阶段,找到jvm执行字节码文件的前提是需要找到对应的字节码文件。由此可知,下一步就是通过类加载机制对 Class文件进行加载,其实是在硬盘上查找并通过IO读入字节码文件【使用到类时才会加载,java这里采用的时懒加载机制,例如:调用类main()方法时,new对象等,在加载阶段会在内存生成一个代表这个类的java.lang.Class对象】【双亲委派】

     双亲委派机制进行类加载,加载类的时候,先由Custom ClassLoader 自定义类加载器 委托上级 App ClassLoader应用类加载器 再委托上级Extension ClassLoader 扩展类加载器 最后委托给 Bootstrap ClassLoader 根加载器 ,由根加载器优先去加载此类。如果 根加载器未在自己的工作范围内找到,则向下一级委托,一旦有加载器加载后,则不会被重复加载。根加载器 和扩展类加载器一般是加载 java自带的一些 类,【这样是一个沙箱机制,防止 用户随意篡改已有的类,比如用户自己写一个 java.lang.String类,用户自己写的类是没法被加载】

    当然,双亲委派机制也是可以破坏的,ClassLoader里面的 复写loadclass方法,改变加载方式,例如:Tomcat

   B.找到对应的class文件,进行加载的时候,会打散.class的信息,类文件字节码流静态存储结构 放入 JVM的一块区域【Method  Area】,方法区,所有的线程共享的一块区域

   C. 类文件的所对应的Class对象 交给jvm 放入【Heap】堆中,也是所有线程共享的一块区域 


2.链接 (Linking)

   加载类文件后需要进一步处理

   a. 验证  verify :保证类被加载的类的正确性,有验证规则

   b. 准备 prepare :为类的静态变量分配内存空间,并将其的值初始化为默认值 。比如 static int a =0 ; 初始化 a=0;

   c. 解析 resolve :将类中的符号引用转换为直接引用

    例如:目前字节码文件String str 的地址,以前是.class 文件中的一个代称,这里将会 分配好内存空间直接对应内存中的某一个真实的地址指向


3. 初始化 (Initializing)

   为静态变量进行初始化为真正的值   ,a =10;


最后 进行使用  以及 卸载

 

 

相关文章:

JVM基础了解

JVM 是java虚拟机。 作用:运行并管理java源码文件锁生成的Class文件;在不同的操作系统上安装不同的JVM,从而实现了跨平台的保证。一般在安装完JDK或者JRE之后,其中就已经内置了JVM,只需要将Class文件交给JVM即可 写好的…...

QT:event事件分发器,事件过滤器(了解)

Event事件分发器 用于事件的分发 可以用事件分发器做拦截,从而不进入到后面的虚函数中,但是不建议 bool event(QEvent *e); 返回值 如果是true 代表用户处理这个事件,不向下进行分发 e->type()中可选择进行拦截的类…...

若依项目的介绍(前后端分离版本)

目录 一、若依介绍 (一)简单介绍 (二)若依版本 (三)Git远程拉取步骤 二、项目的技术介绍 (一)后端技术 1.spring boot 2.Spring Security安全控制 3.MyBatis 4.MySQL和R…...

DT游乐场建模

丢了一个...

Servlet+JDBC实战开发书店项目讲解第9篇:VIP等级优惠实现

ServletJDBC实战开发书店项目讲解第9篇:VIP等级优惠实现 介绍 在这篇博客中,我们将讲解如何在书店项目中实现VIP等级优惠功能。VIP等级优惠是一种常见的商业策略,可以吸引更多的顾客并提高销售额。我们将使用Servlet和JDBC来实现这个功能。…...

Azure文件共享

什么是Azure文件共享 Azure文件共享是一种在云中存储和访问文件的服务。它允许用户在不同的计算机、虚拟机和服务之间共享数据,并在应用程序中进行访问、修改和管理。 Azure文件共享可以用于各种用途,例如: 共享文件资源给多个虚拟机或服务…...

idea新建web项目

步骤一 步骤二 步骤三 新建两个目录lib、classes 步骤四 设置两个目录的功能lib、classes 步骤五 发布到tomcat...

回归预测 | MATLAB实现BES-SVM秃鹰搜索优化算法优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BES-SVM秃鹰搜索优化算法优化支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现BES-SVM秃鹰搜索优化算法优化支持向量机多输入单输出回归预测(多指标,多图)效…...

电商增强现实3D模型优化需要关注的4个方面

到目前为止,AR技术已经发展到足以在更广泛的范围内实施。 在电子商务中,这项技术有望提供更令人兴奋的购物体验。 为了实现这一目标,在这篇博客中,我将介绍如何针对电子商务中的 AR 优化 3D 模型。 推荐:用 NSDT编辑器…...

【Effective Python】读书笔记-04推导与生成

1. 用列表推导取代 map 与 filter 因为不需要写 lambda 表达式。 可以很容易地跳过原列表中的某些数据。 # 列表推导l [i for i in range(5)] # [0, 1, 2, 3, 4] print(l)# 字典推导d {i: i ** 2 for i in range(5)} # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16} print(d)2. 控制推导…...

Android内存泄漏总结和性能优化技巧

我们在开发安卓应用时,性能优化是非常重要的方面。一方面,优化可以提高应用的响应速度、降低卡顿率和提升应用流畅度,从而提升用户体验;另一方面,优化也可以减少应用的资源占用,提高应用的稳定性和安全性&a…...

leetcode 125.验证回文串

⭐️ 题目描述 🌟 leetcode链接:https://leetcode.cn/problems/valid-palindrome/ 思路: 这道题只判断字符串中的字母与数字是否是回文。虽然小写大写字母可以互相转换,但是里面是含有数字字符的,所以先统一&#xff…...

ZooKeeper客户端使用与经典应用场景

概述 ZooKeeper的应用场景依赖于ZNode节点特性和Watch监听机制。 应用场景 数据发布/订阅 常用于实现配置中心,类似的有nacos。数据发布/订阅的一个常见的场景是配置中心,发布者把数据发布到ZooKeeper的一个或一系列的节点上,供订阅者进行…...

标签准备——labelIMG工具使用——自动化标注

在实际生产项目中,为了提升目标识别的准确性,我们往往需要3000-5000张图片进行标注。而直接参与过标注的人都有一个共同的感觉,就是标注是一个简单、枯燥、无聊且十分耗时费力的差事。为此,我们可以在有了初步训练模型的基础上,采用更加自动化的方式进行标注,届时,你讲不…...

关于vant2 组件van-dropdown-item,在IOS手机上,特定条件下无法点击问题的探讨

情景重现 先贴有问题的代码 <template><div :class"showBar ? homeContain : homeContain-nobar"><div class"contant" id"content"><van-dialog v-model"loading" :before-close"onBeforeClose" :…...

一零七一、Spring大海捞针篇

IOC&#xff0c;AOP&#xff1f; IOC&#xff08;控制反转&#xff09;是一种设计模式&#xff0c;它将对象的创建、依赖注入和管理交给了容器来完成&#xff0c;而不是由开发者手动管理。 这样做的好处是降低了组件之间的耦合度&#xff0c;提高了代码的可维护性和可扩展性。 …...

请求并发控制

请求并发数量控制 并发限制 要求&#xff1a;多个请求做并发限制&#xff0c;请求完成后执行回调 思路&#xff1a; 首次循环启动能够执行的任务 取出能执行的任务推入执行器执行 执行器更新当前并发数&#xff0c;并且再请求完成时继续取出任务推入执行器 当所有请求完…...

创建密码库/创建用户帐户/更新 Ansible 库的密钥/ 配置cron作业

目录 创建密码库 创建用户帐户 更新 Ansible 库的密钥 配置cron作业 创建密码库 按照下方所述&#xff0c;创建一个 Ansible 库来存储用户密码&#xff1a; 库名称为 /home/curtis/ansible/locker.yml 库中含有两个变量&#xff0c;名称如下&#xff1a; pw_developer&#…...

vue实现穿梭框,ctrl多选,shift多选

效果图 代码 <template><div class"container"><!--左侧--><div><div class"title">{{ titles[0] }}</div><div class"layerContainer"><div v-for"item in leftLayerArray":key"…...

Win11中zookeeper的下载与安装

下载步骤 打开浏览器&#xff0c;前往 Apache ZooKeeper 的官方网站&#xff1a;zookeeper官方。在主页上点击"Project"选项&#xff0c;并点击"Release" 点击Download按钮&#xff0c;跳转到下载目录 在下载页面中&#xff0c;选择版本号&#xff0c;并点…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...