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

jvm学习第1day jvm简介,栈溢出、堆溢出

jvm学习第1day jvm简介,栈溢出、堆溢出

  • jvm简介
  • 栈线程安全
  • 栈溢出
  • 线程运行诊断
      • 堆溢出
    • 方法区
      • 方法区内存溢出
      • 常量池和运行时常量池

jvm简介

jvm 是编译后的字节码文件运行的环境, 因此各个平台有了jvm可以运行java.class文件,这是Java跨平台的原因。
jre jvm + 基础类库(日期类,集合类等) java run environment
jdk jre + 编译工具 (Java Development Kit Java开发工具包)
javase jdk + Idea 有了java开发工具包jdk ,再需要一个编写代码的工具IDEA ,就可以进行java编码
javaee javase + 应用服务器(例如Tomcat)

栈线程安全

程序计数器:很多线程,每个线程都要记录下一个指令的地址,因此是私有的。
栈 :一个方法调用就是一个线程的开始,一个线程用的内存空间就是栈,这个方法可以嵌套方法。 方法中包含:参数,返回值,变量,都是需要占用内存的。
活动栈帧:正在执行的栈帧。(方法)
如果一个栈是1m,整个内存是500m,那么最多500个线程,如果一个栈2m,最多250个线程,并不是说栈越大越好,栈大了,只是可以递归的次数多了。
共享的需要考虑线程安全,私有的不需要考虑。

栈溢出

1.栈帧过多导致栈内存溢出 例如递归终止出现错误设置栈内存大小
2.栈帧过大导致栈内存溢出。

线程运行诊断

在好这里插入图片述
发生死锁了:a要b b要a 但是a,b都已经被锁定了。

程序计数器 、虚拟机栈(只要不离开栈就是私有的)、本地方法栈;堆、方法区共享。

堆内存中的对象不被调用就会垃圾回收

堆溢出

在这里插入图片描述
java堆空间不足导致堆溢出。

方法区

在这里插入图片描述

方法区内存溢出

方法区是概念 实现有两个:元空间 永久代在这里插入图片描述

在这里插入图片描述

常量池和运行时常量池

指令 去常量区中找的什么类下的方法等功能。
在这里插入图片描述

相关文章:

jvm学习第1day jvm简介,栈溢出、堆溢出

jvm学习第1day jvm简介,栈溢出、堆溢出 jvm简介栈线程安全栈溢出线程运行诊断堆堆溢出 方法区方法区内存溢出常量池和运行时常量池 jvm简介 jvm 是编译后的字节码文件运行的环境, 因此各个平台有了jvm可以运行java.class文件,这是Java跨平台…...

用广告维持的免费 AI 图像生成工具(个人项目分享)

用广告维持的免费 AI 图像生成工具(个人项目分享) 免费 AI 图像生成工具网址:https://aiart.gcc.ac.cn/ 最近做了一个 AI 图像生成器,主要目标是“尽量简单”: 打开网页就能用不用注册、不用登录免费,不…...

分析Web3下数据保护的创新模式

在这个信息爆炸的时代,我们正站在 Web3 的门槛上,迎接一个以去中心化、用户主权和数据隐私为核心的新时代。Web3 不仅仅是技术的迭代,它更是一场关于数据权利和责任的结构性变革。本文将探讨 Web3 下数据保护的创新模式,以期为用户…...

​减少交通拥堵、提高效率、改善交通安全的智慧交通开源了。

智慧交通视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上…...

协议融合驱动效能跃升:Modbus转Ethernet IP的挤出吹塑机应用

在现代工业自动化领域,Modbus作为一种串行通信协议,其稳定性和简单性被广泛应用于各种工控设备中。但随着技术的进步,对于更高速、更远传输距离的需求日益增长,这就需要将Modbus协议通过以太网进行传输,即实现Modbus T…...

Hive的TextFile格式优化方法

Hive的TextFile格式是一种简单的行式存储格式,数据以文本行形式存储,每行包含多个字段,字段间通过分隔符(如逗号、制表符)分隔。尽管TextFile在性能上不如ORC、Parquet等列式存储格式,但在特定场景下仍有其优势。以下是TextFile格式的特点、优势、使用场景及优化方法: …...

bug 记录 - 使用 el-dialog 的 before-close 的坑

需求说明 弹窗中内嵌一个 form 表单 原始代码 <script setup lang"ts"> import { reactive, ref } from "vue" import type { FormRules } from element-plus const ruleFormRef ref() interface RuleForm {name: stringregion: number | null } …...

Next.js 中间件鉴权绕过漏洞 CVE-2025-29927

前言:CVE-2025-29927 是一个影响 Next.js 的严重漏洞&#xff0c;源于开发者信任了客户端请求中携带的 X-Middleware-Rewrite 头部字段。攻击者可以手动构造该头部&#xff0c;实现绕过中间件逻辑&#xff0c;访问本应受保护的资源或 API。 影响版本&#xff1a;Next.js < …...

基于YOLO-NAS-Pose的无人机象群姿态估计:群体行为分析的突破

【导读】 应对气候变化对非洲象的生存威胁&#xff0c;本研究创新采用无人机航拍结合AI姿态分析技术&#xff0c;突破传统观测局限。团队在肯尼亚桑布鲁保护区对比测试DeepLabCut与YOLO-NAS-Pose两种模型&#xff0c;首次将后者引入野生动物研究。通过检测象群头部、脊柱等关键…...

8天Python从入门到精通【itheima】-71~72(数据容器“序列”+案例练习)

目录 71节-数据容器“序列”的切片 1.学习目标 2.什么是序列 3.序列的常用操作——切片 4.小节总结 72节——案例练习&#xff1a;序列的切片实践 1.案例需求 2.代码实战 好了&#xff0c;又一篇博客和代码写完了&#xff0c;励志一下吧&#xff0c;下一小节等等继续&a…...

中达瑞和SHIS高光谱相机在黑色水彩笔墨迹鉴定中的应用

在文件检验与物证溯源领域&#xff0c;对书写材料&#xff08;如墨水&#xff09;进行快速、准确、无损的鉴别至关重要。由陈维娜等人撰写的《高光谱技术结合化学计量法鉴别黑色水彩笔墨迹》&#xff08;发表于《光谱学与光谱分析》2023年第7期&#xff09;利用中达瑞和SHIS凝采…...

dvwa10——XSS(DOM)

XSS攻击&#xff1a; DOM型XSS 只在浏览器前端攻击触发&#xff1a;修改url片段代码不存储 反射型XSS 经过服务器攻击触发&#xff1a;可能通过提交恶意表单&#xff0c;连接触发代码不存储 存储型XSS 经由服务器攻击触发&#xff1a;可能通过提交恶意表单&#xff0c;连…...

dvwa14——JavaScript

LOW 先按提示尝试输入success&#xff0c;提交失败 那用bp抓包一下 &#xff0c;抓到这些&#xff0c;发现有token验证&#xff0c;说明改对token才能过 返回页面f12看一下源码&#xff0c;发现value后面的值像密码&#xff0c;于是试一下md5和rot13的解密 ROT13加密/解密 - …...

外网访问内网服务器常用的三种简单操作步骤方法,本地搭建网址轻松让公网连接

当本地内网环境搭建部署好服务器后&#xff0c;怎么设置让外网公网上连接访问到呢&#xff1f;或本身处于不同局域网间的主机&#xff0c;需要进行数据交互通信&#xff0c;又应该如何实现操作&#xff1f;这些都离不开外网对内网的访问配置。 总的来说外网访问内网服务器主要…...

机器学习实验八--基于pca的人脸识别

基于pca的人脸识别 引言&#xff1a;pca1.pca是什么2.PCA算法的基本步骤 实例&#xff1a;人脸识别1.实验目的2.实现步骤3.代码实现4.实验结果5.实验总结 引言&#xff1a;pca 1.pca是什么 pca是一种统计方法&#xff0c;它可以通过正交变换将一组可能相关的变量转换成一组线…...

UDP包大小与丢包率的关系:原理分析与优化实践

文章目录 &#x1f4e6; UDP包大小与丢包率的关系&#xff1a;原理分析与优化实践一、核心结论&#xff1a;UDP包大小如何影响丢包率&#xff1f;二、技术原理解析&#xff1a;为什么大UDP包更容易丢失&#xff1f;1️⃣ MTU限制与IP分片&#xff08;关键机制&#xff09;2️⃣…...

ubuntu 端口复用

需求描述&#xff1a;复用服务器的 80端口&#xff0c;同时处理 ssh 和 http 请求&#xff0c;也就是 ssh 连接和 http 访问服务器的时候都可以指定 80 端口&#xff0c;然后服务器可以正确分发请求给 ssh 或者 http。 此时&#xff0c;ssh 监听的端口为 22&#xff0c;而 htt…...

Registry和docker有什么关系?

当遇到多个服务器需要同时传docker镜像的时候&#xff0c;一个一个的传效率会非常慢且压力完全在发送方的网络带宽&#xff1b;可以参考git hub&#xff0c;通常我们会用git push将代码传到git hub&#xff0c;如果谁需要代码用git pull就可以拉到自己的机器上&#xff0c;dock…...

C++11实现TCP网络通讯服务端处理逻辑简化版

以下是使用C11实现的TCP服务端处理逻辑&#xff0c;包含循环读取数据、帧头检测&#xff08;AABBCC&#xff09;及4376字节数据包处理&#xff1a; cpp #include <iostream>#include <vector>#include <cstring>#include <unistd.h>#include <arp…...

python3.9带 C++绑定的基础镜像

FROM ubuntu:20.04 # 设置非交互式环境变量&#xff08;避免apt安装时提示时区选择&#xff09; ENV DEBIAN_FRONTENDnoninteractive RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 安装基础编译工具和依赖 # 添加Python 3.9 PPA并安装依赖 RUN apt-get upda…...

Elasticsearch中的语义搜索(Semantic Search)介绍

Elasticsearch中的**语义搜索(Semantic Search)**是一种基于文本语义理解的搜索技术,它能够超越传统的关键词匹配,识别查询与文档之间的语义相关性,从而提供更精准、更符合用户意图的搜索结果。这种技术通过捕捉文本背后的含义、上下文和概念关联,解决了传统搜索中常见的…...

LabVIEW的AMC架构解析

此LabVIEW 程序基于消息队列&#xff08;Message Queue&#xff09;机制构建 AMC 架构&#xff0c;核心包含消息生成&#xff08;MessageGenerator &#xff09;与消息处理&#xff08;Message Processor &#xff09;两大循环&#xff0c;通过队列传递事件与指令&#xff0c;实…...

MySQL 索引:为使用 B+树作为索引数据结构,而非 B树、哈希表或二叉树?

在数据库的世界里&#xff0c;性能是永恒的追求。而索引&#xff0c;作为提升查询速度的利器&#xff0c;其底层数据结构的选择至关重要。如果你深入了解过 MySQL&#xff08;尤其是其主流存储引擎 InnoDB&#xff09;&#xff0c;你会发现它不约而同地选择了 B树 作为索引的主…...

ubuntu屏幕复制

在ubnuntu20中没有办法正常使用镜像功能,这里提供一下复制屏幕的操作. 使用xrandr查看所有的显示器情况 这里我发现自己的电脑没有办法直接设置分辨率,但是外接的显示器可以设置,从命令行来说就是设置: xrandr --output HDMI-0 --mode 1920x1080那怎么样才能将原生电脑屏幕换…...

Flutter嵌入式开发实战 ——从树莓派到智能家居控制面板,打造工业级交互终端

一、为何选择Flutter开发嵌入式设备&#xff1f; 1. 跨平台能力降维打击 特性传统方案Flutter方案开发效率需分别开发Android/Linux一套代码多端部署内存占用200MB (QtWeb引擎)<80MB (Release模式)热重载支持不支持支持 2. 工业级硬件支持实测 树莓派4B&#xff1a;1080…...

Spring WebFlux 整合AI大模型实现流式输出

前言 最近赶上AI的热潮&#xff0c;很多业务都在接入AI大模型相关的接口去方便的实现一些功能&#xff0c;后端需要做的是接入AI模型接口&#xff0c;并整合成流式输出到前端&#xff0c;下面有一些经验和踩过的坑。 集成 Spring WebFlux是全新的Reactive Web技术栈&#xf…...

验证电机理论与性能:电机试验平板提升测试效率

电机试验平板提升测试效率是验证电机理论与性能的重要环节之一。通过在平板上进行电机试验&#xff0c;可以对电机的性能参数进行准确测量和分析&#xff0c;从而验证电机的理论设计是否符合实际表现。同时&#xff0c;提升测试效率可以加快试验过程&#xff0c;节约时间和成本…...

Vue.js应用结合Redis数据库:实践与优化

一、概述 Vue.js是一个用于构建用户界面的渐进式JavaScript框架&#xff0c;适用于开发单页面应用&#xff08;SPA&#xff09;。Redis是一个高性能的内存数据结构存储&#xff0c;用作数据库、缓存和消息中间件。将Vue.js与Redis结合&#xff0c;可以实现高效的数据管理和快速…...

Simplicity studio SDK下载和安装,创建工程

下载SDK工具地址 Simplicity Studio - Silicon Labs 选择适合自己电脑的版本。 这个就使用你自己的邮箱注册一个就可以了&#xff0c;我是用的公司邮箱注册的。 下载完成&#xff1a; 安装 下载完成后右键点击安装&#xff0c;一路下一步 安装完成后&#xff0c;程序自动打…...

OpenCV——Mac系统搭建OpenCV的Java环境

这里写目录标题 一、源码编译安装1.1、下载源码包1.2、cmake安装1.3、java配置1.4、测试 二、Maven引入2.1、添加Maven依赖2.2、加载本地库 一、源码编译安装 1.1、下载源码包 官网下载opencv包&#xff1a;https://opencv.org/releases/ 以4.6.0为例&#xff0c;下载解压后&…...