java 内存溢出的代码_Java 常见内存溢出异常与代码实现

2023-11-18

Java 堆 OutOfMemoryError

Java 堆是用来存储对象实例的, 因此如果我们不断地创建对象, 并且保证 GC Root 和创建的对象之间有可达路径以免对象被垃圾回收, 那么当创建的对象过多时, 会导致 heap 内存不足, 进而引发 OutOfMemoryError 异常.

/**

@author xiongyongshun

VM Args: java -Xms10m -Xmx10m -XX:+HeapDumpOnOutOfMemoryError

*/

public class OutOfMemoryErrorTest {

public static void main(String[] args) {

List list = new ArrayList<>();

int i = 0;

while (true) {

list.add(i++);

}

}

}

上面是一个引发 OutOfMemoryError 异常的代码, 我们可以看到, 它就是通过不断地创建对象, 并将对象保存在 list 中防止其被垃圾回收, 因此当对象过多时, 就会使堆内存溢出。

通过 java -Xms10m -Xmx10m -XX:+HeapDumpOnOutOfMemoryError 我们设置了堆内存为 10 兆, 并且使用参数 -XX:+HeapDumpOnOutOfMemoryError 让 JVM 在发生 OutOfMemoryError 异常时打印出当前的内存快照以便于后续分析.

编译运行上述代码后, 会有如下输出:

java -Xms10m -Xmx10m -XX:+HeapDumpOnOutOfMemoryError com.test.OutOfMemoryErrorTest 16-10-02 23:35

java.lang.OutOfMemoryError: Java heap space

Dumping heap to java_pid1810.hprof ...

Heap dump file created [14212861 bytes in 0.125 secs]

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

at java.util.Arrays.copyOf(Arrays.java:3210)

at java.util.Arrays.copyOf(Arrays.java:3181)

at java.util.ArrayList.grow(ArrayList.java:261)

at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:235

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java 内存溢出的代码_Java 常见内存溢出异常与代码实现 的相关文章

  • Ajax中的XMLHttpRequest对象详解

    原文地址 http www cnblogs com shunyao8210 archive 2008 11 24 1339718 html XMLHttpRequest对象是Ajax技术的核心 在Internet Explorer 5中 X
  • vlfeat 特征检测

    https blog csdn net wangxinsheng0901 article details 79676081 https github com dougalsutherland vlfeat ctypes
  • 【电脑配置】1、Chrome 设置深色模式

    1 在 Chrome 页面地址输入 chrome flags enable force dark 2 将 Dark Mode 设置为 Enabled 3 点击 Relaunch
  • Copy 数据到ppt 中保持对齐

    Copy 一组数据到PPT里 但是有可能在PPT里无法对齐 可以先拷贝到xls里 各个数据项会对齐到单元格 再拷贝到PPT后 这里即可对齐
  • Apifox生成接口文档

    一 http接口 点击添加接口 编辑接口相关信息 点击保存 点击修改文档 点击智能识别 请求示例智能识别 编辑请求参数信息 返回响应智能识别 可添加多个 成功 异常A 异常B等 编辑响应参数信息 添加响应示例 参照返回响应添加 点击保存 接
  • python书写格式_python并的写法

    广告关闭 腾讯云11 11云上盛惠 精选热门产品助力上云 云服务器首年88元起 买的越多返的越多 最高返5000元 最近倒腾python 希望能坚持下去吧发现了个叫codecademy的网站 还不错http www codecademy c
  • 服务器内部操作系统,服务器内部操作系统

    服务器内部操作系统 内容精选 换一换 Atlas 800 训练服务器 型号 9000 安装上架 服务器基础参数配置 安装操作系统等操作请参见 Atlas 800 训练服务器 用户指南 型号9000 风冷 或 Atlas 800 训练服务器
  • Java——string[] 和List的区别

    一直对string 和List
  • JavaWeb之综合小项目

    案例需求 使用Java程序操作数据库 并把结果显示在jsp页面上 这里只做查询操作 增删改操作类似如此 使用工具 maven idea tomcat MySQL数据库 使用技术 javabean servlet jsp 准备阶段 第一步 使
  • 求全排列的数学方法(洛谷1088 火星人noip2004普及组第4题)

    人类终于登上了火星的土地并且见到了神秘的火星人 人类和火星人都无法理解对方的语言 但是我们的科学家发明了一种用数字交流的方法 这种交流方法是这样的 首先 火星人把一个非常大的数字告诉人类科学家 科学家破解这个数字的含义后 再把一个很小的数字
  • 实战wxPython:056 - GDI基本元素之颜色Colour

    GDI系统中的设备上下文包含一些基本元素 例如颜色 画刷 画笔或字体等等 wx Colour定义设备上下文中对象显示的颜色 wx Brush是一个用于填充区域的绘图工具 它用于绘制形状的背景 它有颜色和风格 wx Pen用于绘制形状的轮廓
  • 查询sql数据库中表占用的空间大小

    1 SQL统计数据 大量事务操作后可能不准 exec sp spaceused 表名 2 准确的表空间大小 但可能会花些统计时间 exec sp spaceused 表名 true 3 数据库大小查询 exec sp spaceused 4
  • 关于shiro doGetAuthorizationInfo授权方法和doGetAuthenticationInfo登陆认证方法的执行时机

    1 默认情况下不关闭shiro session 登陆时生成JESSIONID 执行doGetAuthorizationInfo的时机 1 subject hasRole admin 或 subject isPermitted admin 自
  • error: ‘FixedArray’ {aka ‘class ceres::internal::FixedArray<double, 3>’} has no member named ‘data’

    在使用g2o或者Ceres遇到以下问题 error FixedArray aka class ceres internal FixedArray
  • private static final Long serialVersionUID= 1L详解

    我们知道在对数据进行传输时 需要将其进行序列化 在Java中实现序列化的方式也很简单 可以直接通过实现Serializable接口 但是我们经常也会看到下面接这一行代码 private static final Long serialVer
  • R语言基础图形元素——坐标轴和网格线

    R语言基础图形元素 坐标轴和网格线 简介 1 坐标轴 2 网格线 参考书籍 简介 坐标轴为图中元素数值大小提供了参照 绘图时 时常需要实现坐标轴的个性化绘制 可以通过axis 函数实现 网格线是图形的一种辅助线 可以实现图中元素更加精确把控
  • R语言作图:坐标轴设置

    R语言作图 坐标轴设置 偷闲阁 2018 02 04 20 51 24 209654 收藏 359 分类专栏 R语言 可视化 文章标签 R 坐标轴 刻度 可视化 版权声明 本文为博主原创文章 遵循 C
  • 小白用Python抓取豆瓣高评分喜剧电影

    目的 抓取豆瓣高评分喜剧电影 导入所需的库 import requests 进行模拟浏览器进行发送请求 import json 导入JSON类型的库 不会导入库的话 请参考我的上一篇文章 上面有提及 小白如何抓取网页 进行确定URL和浏览器
  • 开发gitlab-reporting周报项目的总结

    一 方案设计 二 数据库设计 三 代码设计 从gitlab项目中输出每个成员的周报 事件触发webhook 接收webhook的server server解析webhook事件 做一个周报生成器 用gitlab的issues生成周报 功能

随机推荐

  • WebGL 视图矩阵、模型视图矩阵

    目录 立方体由三角形构成 视点和视线 视点 观察目标点和上方向 视点 观察目标点 上方向 在WebGL中 观察者的默认状态应该是这样的 视图矩阵程序 LookAtTriangles js 实际上 根据自定义的观察者状态 绘制观察者看到的景象
  • 【插件】谷歌浏览器插件visio在线打开vsdx文件

    下载地址
  • 【牛客C++入门】CPP10 判断成绩等级

    描述 键盘录入一个成绩 整数 判断并输出成绩的等级 如果用户输入成绩不合法 小于0或者大于100 则输出成绩不合法 90 100 优秀 80 89 良 70 79 中 60 69 及格 0 59 差 输入描述 输入学生的成绩 整数 输出描述
  • 最美应用API接口分析

    最美应用API接口分析 最美应用API接口分析一 请求版本列表1 1 API二 请求应用配置2 1 API2 2参数列表2 3 返回三 友盟更新3 1 API3 2参数列表3 3 返回四 appleStore应用信息4 1API4 2 返回
  • 发布npm包-简要记录

    1注册账号 注册npm账号 需要邮箱 激活npm账号 npm账号注册成功以后会收到邮件 邮件中有个链接 点进去进行激活 2创建项目 npm init 创建项目 name 命名规则 不能包含大写字母 空格及下滑线 version 创建时候默认
  • Shiro源码分析-初始化-SecurityManager

    源码分析的第一篇以SecurityManager的初始化为题 根据ini配置文件初始化shiro的代码主要为两段 解析ini文件为Ini对象 Factory
  • 电商行业常用指标

    首先要构建电商数据分析的基本指标体系 主要分为8个类指标 即 1 总体运营指标 从流量 订单 总体销售业绩 整体指标进行把控 起码对运营的电商平台有个大致了解 到底运营的怎么样 是亏是赚 2 网站流量指标 即对访问你网站的访客进行分析 基于
  • 【Python】pip安装源、pip config命令 及 pip安装包位置 等相关问题

    永久性添加pip安装源 查看pip文件的存储位置有 查看pip config 的配置方法 删除配置信息 查看pip下载的安装包的默认路径 查看如何修改安装位置 永久性添加pip安装源 pip config set global index
  • F5 BIG-IP LTM基础资料

    F5 BIG IP网络概述 TMOS是一个全代理的体系结构 流量必须穿越BIG IP设备以获得TMOS的优化效果 部署方式 路由模式 也被称作串联模式 真实服务器放在BIG IP之后的一个内部网络 真实服务器的网关需要指向 或者最终通过 B
  • qsort的基本用法

    qsort的基本用法 在我们日常的刷题中 我们经常遇见一些需要排序的问题 有的时候我们会直接运用循环以及选择结构来暴力排序 或者使用比较简单的冒泡排序等排序方法 这些都是直接运用我们C语言或者C 里的底层代码来实现 今天我将介绍一种较为简单
  • Unity3D中通过代码修改子物体层级的顺序

    今天有个同事问我如何在程序中修改子物体的层级关系来改变遮挡关系 我给他敲出来一句代码 UI的层级关系是通过渲染表现出来的 在canvas下的物体 排序越靠前的越先被渲染 这样一来就会 被后来渲染的遮挡 总结一下有三句代码是修改子物体的层级的
  • 用java实现输入成绩,判断等级

    用java里的Scanner类实现输入成绩 用if判断成绩等级 代码如下 用java实现输入成绩 判断等级 导包 import java util Scanner public class Exercise public static vo
  • k8s基础5——Pod常用命令、资源共享机制、重启策略和健康检查、环境变量、初始化容器、静态pod

    文章目录 一 基本了解 二 管理命令 三 yaml文件参数大全 四 创建pod的工作流程 五 资源共享机制 5 1 共享网络 5 2 共享存储 六 生命周期 重启策略 健康检查 七 环境变量 八 Init Containe初始化容器 九 静
  • 大神之路-起始篇

    欢迎关注 WeiyiGeek 公众号 点击 下方卡片 即可关注我哟 设为 星标 每天带你 基础入门 到 全栈实践 再到 放弃学习 涉及 网络安全运维 应用开发 物联网IOT 学习路径 个人感悟 等知识 花开堪折直须折 莫待无花空折枝 本章目
  • 【STM32学习】(19)STM32实现直流电机测转速(霍尔传感器)

    最近在学习STM32单片机 本次博文想记录一下32单片机连接霍尔传感器来测量直流电机转速 材料准备 1 单片机 STM32L052K8 2 霍尔传感器 3 直流电机 电路图如下 其中 单片机和直流电机不用介绍 下面介绍一下霍尔传感器 主要想
  • 二分查找算法(整数和浮点数)

    二分查找算法 一 整数二分模板 二 浮点数的二分 一 整数二分模板 二分核心思想 选择区间 每次都保证答案在被选择的区间内 循环往复 整数二分有两种情况 第一种是区间 l r 被划分成 l mid 和 mid 1 r 时使用 bool ch
  • 【记录】数据处理方法总结及实现

    记录 数据处理方法总结及实现 背景 数据增强作为前处理的关键步骤 在整个计算机视觉中有着具足轻重的地位 数据增强往往是决定数据集质量的关键 主要用于数据增广 在基于深度学习的任务中 数据的多样性和数量往往能够决定模型的上限 本次记录主要是对
  • Android中ImageView控件scaleType属性详解

    ImageView的具体属性 1 显示在ImageView的中心的属性 分别为 centerCrop center centerInside fitCenter 2 ImageView全部的属性 3 具体属性分析 android scale
  • 初学Python到月入过万最快的兼职途径(纯干货)

    1 兼职薪资 附行哥工资单 2 兼职门槛 附学习知识清单 3 兼职途径 附入职考核过程 4 行哥的兼职感受 答应行友的第一篇赚钱干货推文来啦 行哥第一个在读书期间通过兼职赚到的10w 收入 这也是初学Python小白最快达到月入过万的途径
  • java 内存溢出的代码_Java 常见内存溢出异常与代码实现

    Java 堆 OutOfMemoryError Java 堆是用来存储对象实例的 因此如果我们不断地创建对象 并且保证 GC Root 和创建的对象之间有可达路径以免对象被垃圾回收 那么当创建的对象过多时 会导致 heap 内存不足 进而引