jvm里的内存溢出

目录

堆溢出

虚拟机栈和本地方法栈溢出(栈溢出很少出现)

方法区和运行时常量池溢出

 本机内存直接溢出(实际中很少出现、了解即可)


堆溢出

堆溢出:最常见的是大list,list里面有很多元

堆溢出该怎么解决

        定位到导致内存溢出的对象

        判断是否是真的内存溢出,先判断这个对象是不是正常的,如果不是,就得修复,如果是:要么去调优,通过优化逻辑来减少对象的大小;如果说硬件设施~(操作系统)剩余内存还足够大,就可以将堆内存调大一些。

虚拟机栈和本地方法栈溢出(栈溢出很少出现)

虚拟即栈放的是java方法,本地方法栈放的是本地native方法

如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常;如果虚拟机的栈内存允许动态扩展,当扩展栈容量无法申请到足够的内存时,将抛出OutOfMemoryError异常。

方法区和运行时常量池溢出

String::intern()是一个本地方法,它的作用是如果字符串常量池中已经包含一个等于此String对象的字符串,则返回代表池中这个字符串的String对象的引用;否则,会将此String对象包含的字符串添加到常量池中,并且返回此String对象的引用。

str3直接在字符串常量池中创建字符串,str4 new在堆里

true true false false

原因:append之后可能为之前已经有的内存地址,ja和va拼接起来后的java之前在常量池中已经有了true true false false

原因:append之后可能为之前已经有的内存地址,ja和va拼接起来后的java之前在常量池中已经有了

断点查看字符串在常量池中的地址

 本机内存直接溢出(实际中很少出现、了解即可)

直接内存(Direct Memory)的容量大小可通过-XX:MaxDirectMemorySize参数来指定,如果不去指定,则默认与Java堆最大值(由-Xmx指定)一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/35736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS入门操作手册

一.ArcGIS安装过程 参考本人博客:保姆级Arcgis安装图文安装教程_追忆苔上雪的博客-CSDN博客 二.ArcGIS植被指数计算 (1)使用工具:栅格计算器 打开软件,右侧搜索栅格计算器打开,要是搜索栏不小心叉掉找不到了,可以通…

docker-desktop数据目录迁移

1.退出docker-desktop后执行 wsl --list -v 如下 NAME STATE VERSION * docker-desktop Stopped 2docker-desktop-data Stopped 22.执行以下命令进行数据导出:(需要等待命令执行完成&#xff09…

SpringCache的介绍和入门案例

文章目录 概述常用注解入门案例 概述 Spring Cache是Spring框架提供的一个缓存抽象层,用于在应用程序中实现缓存的功能。它通过在方法执行前检查缓存中是否已经存在所需数据,如果存在则直接返回缓存中的数据,如果不存在则执行方法体&#xf…

定义行业新标准?谷歌:折叠屏手机可承受20万次折叠

根据Patreon账户上的消息,Android专家Mishaal Rahman透露,谷歌计划推出新的硬件质量标准,以满足可折叠手机市场的需求。Android原始设备制造商(OEM)将需要完成谷歌提供的问卷调查,并提交样品设备进行严格审…

MySQL慢查询日志常用参数配置

慢查询日志 slow log:指query time减去lock time的时间,超过设置的阈值的查询SQL。 常用配置 #通用配置需配置在mysqld标签先,版本独有配置在mysqld-version标签下 [mysqld] #是否开启慢日志,Type:Boolean Default Value:OFF slow_log0/1…

基于 JMeter API 开发性能测试平台

目录 背景: 常用的 JMeter 类和功能的解释: JMeter 编写性能测试脚本的大致流程示意图: 源码实现方式: (1) 环境初始化 (2) 环境初始化 (3) 创建测试计划 (4) 创建 ThreadGroup (5) 创建循环控制器 (6) 创建 Sampler (…

【编码魔法师系列_六大原则5】迪米特原则(Law of Demeter Principle)

学会设计模式,你就可以像拥有魔法一样,在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们(GoF)凝聚出来的最佳实践,可以提高代码的可读性、可维护性和可重用性,从而让我们的开发效率更高。通…

每日一题——旋转数组的最小数字(II)

旋转数组的最小数字——II 题目链接 注:此题是昨天旋转数组的最小数字——I的拓展延伸,昨天题目数组的条件是不会存在重复元素,而本题数组的元素可以重复,因此建议先做前面一题,进行思考,这样求解这一题的…

【单片机毕业设计3-基于stm32c8t6的智能家居系统】

【单片机毕业设计3-基于stm32c8t6的智能家居系统】 前言一、功能介绍二、硬件部分三、软件部分总结 前言 🔥这里是小殷学长,单片机毕业设计篇3 基于stm32的智能家居控制系统 🧿创作不易,拒绝白嫖(有需可点击最后链接&a…

Python自动化测试框架:Pytest和Unittest的区别

pytest和unittest是Python中常用的两种测试框架,它们都可以用来编写和执行测试用例,但两者在很多方面都有所不同。本文将从不同的角度来论述这些区别,以帮助大家更好地理解pytest和unittest。 1. 原理 pytest是基于Python的assert语句和Pytho…

consul安装启动流程

普通软件包安装 首先cd /opt ,将安装包放到该目录下 下载consul安装包 进入consul官网找到自己开发平台对应的安装包下载 https://www.consul.io/downloads.html 或使用命令 wget https://releases.hashicorp.com/consul/1.6.2/consul_1.6.2_linux_amd64.zip (如果…

vue3 table动态合并,自定义参数合并单元格

<template><div><el-table :data"tableData" :span-method"objectSpanMethod" border:header-cell-style"{ textAlign: center}"><el-table-column prop"area" label"区域" align"center"&g…

HW样本《关于“XXXX”微信视频号发布短视频的信息说明.exe》的逆向分析

一、概述 样本运行后会释放《关于“XXXX”微信视频号发布短视频的信息说明.doc》并打开&#xff1b;同时释放ncloud.exe恶意文件并启动&#xff1b;调用cmd命令删除样本母体&#xff1b;其中ncloud.exe会从互联网下载类似字母表的数据解密出CS木马&#xff0c;在内存加载并运行…

《玩转Python数据分析专栏》大纲

欢迎来到《玩转Python数据分析分类专栏》&#xff01;在这个专栏中&#xff0c;我们将带您深入探索数据分析的世界&#xff0c;以Python为工具&#xff0c;解析各个领域的实际应用场景。通过100篇教程&#xff0c;我们将逐步引领您从入门级到高级&#xff0c;从基础知识到实战技…

前端安全:探秘安全 HTTP 头的设置

在当今数字化时代&#xff0c;前端安全至关重要。除了应对常见的攻击方式外&#xff0c;通过设置安全 HTTP 头&#xff0c;我们可以加强网站的安全性&#xff0c;减少潜在的威胁。本文将为您详细解释什么是安全 HTTP 头&#xff0c;以及如何通过设置它们来保护您的前端应用。 1…

真就逮住23届了使劲薅呗,24届笑了

作者&#xff1a;阿秀 InterviewGuide大厂面试真题网站&#xff1a;https://top.interviewguide.cn 小伙伴们大家好&#xff0c;我是阿秀。 最近在朋友圈看到不少动态说"24届明显好转"的消息&#xff0c;也收到不少私信问是不是24届的相比于23届好多了&#xff0c;更…

深度学习阶段性回顾

本文针对过去两周的深度学习理论做阶段性回顾&#xff0c;学习资料来自吴恩达老师的2021版deeplearning.ai课程&#xff0c;内容涵盖深度神经网络改善一直到ML策略的章节。视频链接如下&#xff1a;吴恩达深度学习视频链接 &#xff08;注&#xff1a;本文出自深度学习初学者&a…

Vue中如何更好地封装组件?

子组件接受父组件传递的事件 1.子组件使用事件名"$emit(父组件中传递的事件名,想给父组件传递的参数(可选))" click"$emit(click)" 2.子组件使用 v-on"$listeners" 父组件&#xff1a; <template><div id"app"><myCo…

MyBatis的XML映射文件

Mybatis的开发有两种方式&#xff1a; 注解 XML配置文件 通过XML配置文件的形式来配置SQL语句&#xff0c;这份儿XML配置文件在MyBatis当中也称为XML映射文件。 导学&#xff1a;在MyBatis当中如何来定义一份儿XML映射文件&#xff1f; 在MyBatis当中&#xff0c;定义XML…

使用 HTML、CSS 和 JavaScript 创建多步骤表单

使用 HTML、CSS 和 JavaScript 创建多步骤表单 为了处理又长又复杂的表单&#xff0c;我们需要将它们分成多个步骤。通过一次只在屏幕上显示一些输入&#xff0c;表单会感觉更容易理解&#xff0c;并防止用户感到被大量的表单字段淹没。 在本文中&#xff0c;我将逐步指导如何…