java中jvm栈溢出和OOM程序演示和分析

news/2024/7/20 2:58:28 标签: java, jvm, 小程序

jvm_0">写一个程序让jvm栈溢出

根据jvm的原理,栈中存放的是方法,因此我们一直创建方法下去,栈内存会溢出。这里我想到的是递归不停止,栈空间肯定会溢出,我们用try-catch看递归调用几次。

package cn.itcast.test;

import org.junit.Test;

public class stackyichu {
    int a=0;
    private void add(){
       a++;
       add();
    }
    @Test
    public void test(){
        try {
            add();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            System.out.println("递归调用"+a);
        }
    }
}

程序运行结果

在这里插入图片描述

写一个程序让OOM

创建一个 ArrayList,while一直添加数字

package cn.itcast.test.lock;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

public class omm {
    @Test
    public void test(){
        List<Integer> list =new ArrayList<>();
        int i=0;
        int count=0;

        try {
            while (i<10){
                list.add(i);
                count++;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally {
            System.out.println("添加了"+count+"次");
        }
    }
}

运行结果

在这里插入图片描述


http://www.niftyadmin.cn/n/922721.html

相关文章

gradle 项目打包成多个jar包_【Android 修炼手册】Gradle 篇 -- Gradle 的基本使用

预备知识基本的 android 开发知识了解 Android Studio 基本使用看完本文可以达到什么程度掌握 gradle 的基本使用了解 gradle 及 android gradle plugin了解 gradle 构建阶段及生命周期回调掌握 Task&#xff0c;Transform 等概念学会自定义 task&#xff0c;自定义 gradle 插件…

java排序算法之快速排序

快速排序算法的原理就不多重复了&#xff0c;大家可以看一下别的博主的原理&#xff0c;我来说几个关键字&#xff1a;双指针&#xff0c;哨兵 代码 import org.junit.Test;import java.util.ArrayList; import java.util.Arrays;public class QuickSort {Testpublic void te…

access字段属性设置下拉列表_基础表单标签及属性

表单标签一.一个完整的表单包含三个基本组成部分&#xff1a;(表单标签、表单域、表单按钮) ​ 1.表单标签&#xff1a;form标签&#xff0c;用于设置服务器地址、请求方式等等 ​ 2.表单域&#xff1a;用户需要填写或选择的数据&#xff0c;输入框、单选框、复选框、下拉列表等…

java排序之堆排序

从大到小排&#xff1a;构造大顶堆&#xff0c;不交换根节点和末尾节点 package cn.itcast.test.sort;import org.junit.Test;import java.util.Arrays;public class HeapSort {public static void heapSort(int[] arr) {if (arr null || arr.length 0) {return;}int len a…

苹果系统 python闪退怎么解决_双击py文件闪退怎么办_py文件打开闪退的解决方法...

Python文件是以.py为后缀的文件&#xff0c;可以用Python直接运行&#xff0c;但是有的朋友会发现&#xff0c;Python文件打不开了&#xff0c;点击闪退。那么双击py文件闪退怎么办呢&#xff1f;别急&#xff0c;小编现在就为大家带来py文件打开闪退的解决方法。 py文件打开闪…

@Resource与@Autowired用法区别

这个链接讲的非常清楚&#xff0c;大家可以参考一下 https://blog.csdn.net/magi1201/article/details/82590106?utm_mediumdistribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_ideaccbb45-ead5-41f8-afec-7664d937bfcb&…

springboot controller访问不到_springboot学习笔记

Spring Boot 微框架(2020版)1. springboot的引言Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化Spring应用的 初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不 再需要定义样板化的配置。通过这种方式&#x…

! [rejected] master -> master (fetch first)问题的解决方案

今天在做git push时出现了一下问题 我感觉可能是版本不一致的原因&#xff0c;在这里给大家三种解决方案 方法一&#xff1a; 1、通过git pull 先将本地库更新到与远程库一致的版本&#xff0c;但要注意本地库后来做的修改可能被覆盖&#xff0c;最好使用git fetch(不会自动合…