OOM内存溢出java代码实例1

代码如下:

 1 package com.github.mayangbo666.test;
 2
 3 import java.util.ArrayList;
 4 import java.util.List;
 5
 6 public class OOM1 {
 7     public static void main(String[] args) {
 8         List<Byte[]> list = new ArrayList<>();
 9         int i = 0;
10         try {
11             while (true) {
12                 list.add(new Byte[1024 * 1024]);//每次1M
13                 i++;
14             }
15         } catch (Throwable throwable) {
16             throwable.printStackTrace();
17             System.out.println("次数: " + i);
18         }
19     }
20 }

执行结果图:

堆(heap)与栈(stack)

可以看到这里是堆内存溢出

其实也有栈内存溢出

...

原文地址:https://www.cnblogs.com/m-yb/p/11576006.html

时间: 2024-10-12 13:21:30

OOM内存溢出java代码实例1的相关文章

【转】Java内存溢出(java.lang.OutOfMemoryError)问题及其解决方法

Java内存溢出(java.lang.OutOfMemoryError)问题及其解决方法 内存溢出有两种情况,如下: 相关配置以Tomcat环境为例 一.java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的. Class在被Loader时就会被放到PermGen space中,它和存放类实例(Insta

OutOfMemoryError/OOM/内存溢出异常实例分析--堆内存异常

Java堆内存溢出 只要不断创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象, 那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常,代码如下: import java.util.ArrayList; import java.util.List; public class HeapOOM { static class OOMObject { } public static void main(String[] args) { List<OOMObject>

java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) exce

产品需求 产品经理需要导出一个页面的所有的信息到 EXCEL 文件. 需求分析 对于 excel 导出,是一个很常见的需求. 最常见的解决方案就是使用 poi 直接同步导出一个 excel 文件. 客户体验 & 服务性能 客户体验 如果导出的文件比较大,比如几十万条数据,同步导出页面就会卡主,用户无法进行其他操作. 服务性能 导出的时候,任务比较耗时就会阻塞主线程. 如果导出的服务是暴露给外部(前后端分离),这种大量的数据传输十分消耗性能. 解决方案 使用异常处理导出请求,后台 MQ 通知自己进

Java内存溢出java.lang.OutOfMemoryError: PermGen space

今天把以前的一个项目部署在tomcat,启动没问题.因为用到了webservice,当调用webservice中的方法时一直报内存溢出异常 Exception in thread "http-bio-8087-exec-3"  java.lang.OutOfMemoryError: PermGen space 网上介绍的该内存什么的都试了一遍,然而并没有什么用,首先我得代码没错,调用远程服务方法什么的都对 修改内存版: Xms128m -Xmx1024m -XX:MaxPermSize

Android学习 ——引用图片导致内存溢出java.lang.OutOfMemoryError

今天遇到这个问题就是从一个输入流里调用BitmapFactory.decodeFile(name)得到一个bitmap报的错.第一次调用都没问题,第二次再次调用就会报上面那个内存溢出的问题.而且有的手机报有的手机不报.研究了半天终于解决.首先分析了下原因,应该是图片占用的内存超过了系统虚拟机可分配的最大限制.不同手机可能分配的最大值不一样.后来找到解决办法主要是设置BitmapFactory.Options.  BitmapFactory.Options option = new BitmapF

java 导出 excel 最佳实践,大文件 excel 避免OOM(内存溢出) 框架-02-API

项目简介 IExcel 用于优雅地读取和写入 excel. 避免大 excel 出现 oom,简约而不简单.. 特性 OO 的方式操作 excel,编程更加方便优雅. sax 模式读取,SXSS 模式写入.避免 excel 大文件 OOM. 基于注解,编程更加灵活. 写入可以基于对象列表,也可以基于 Map,实际使用更加方便. 设计简单,注释完整.方便大家学习改造. 变更日志 变更日志 v0.0.4 主要变化 引入 ExcelBs 引导类,优化使用体验. 创作缘由 实际工作和学习中,apache

Tomcat内存溢出(java.lang.OutOfMemoryError: PermGen space)

Tomcat启动时报如下错误:     java.lang.OutOfMemoryError: PermGen space 解决办法:     配置相关内存大小.其中按照启动tomcat的不同方式,分如下三种情况     a):如果是eclipse的tomcat插件启动tomcat,在“window”菜单-“Preferences”-“Tomcat”-“JVM Settings”中添加JVM参数如下即可:         -Xms128M -Xmx512M -XX:PermSize=128M -

证件类接口java代码实例

常有遇到对接数据接口,其实这个体力活而已 1.支持的证件类型清单请求地址:http://v.juhe.cn/certificates/typeList.php?key=您申请的appkey 此接口可通过GET请求得到结果,java网络请求有HttpClient相关工具包及HttpURLConnection相关的包等,这里用的是HttpClient,需要先导包,如果用maven话会更方便直接把:1org.apache.httpcomponentshttpmime4.3.6org.apache.ht

多线程断点下载原理(java代码实例演示)

其实多线程断点下载原理,很简单的,那么我们就来先了解下,如何实现多线程的断点下载,首先:你必须明白第一点,那么就是,什么是多线程下载,该知识点可以查看本博客上一篇文章,Android之多线程下载原理,断点下载呢,其实就是在这个的基础之上添加了一些东西,那么添加了什么东西了,现在来做一个详细的了解. 1.在下载的过程中,边下载,变用一个文件来记录下载的位置,也就是下载了多少的数据 1.创建文件 2.记录下载多少数据 3.存储数据 2.第二次下载的时候,就去读取文件中是否存有数据,读取上次下载的位置