`

使JAVA堆栈溢出的方法

    博客分类:
  • Java
 
阅读更多

1. 使栈溢出

 

public class Test{
	public static void main(String[] args){
		System.out.println("OK");
		out(1);
	}
	
	private static void out(int i){
		System.out.println(i);
		out(++i);
	}
}

 

 

运行命令:

java -Xss1m Test

 

2. 使堆溢出

public class Test{
	public static void main(String[] args){
		byte[] b = new byte[1024 * 1024 * 1024 * 1];
		System.out.println("OK");
	}	
}

 

运行命令:

java -Xmx50m Test

 

其它命令

 

查看进程Id

jps

 

查看进程使用的堆大小:

jmap -heap [pid]

 

 

分享到:
评论

相关推荐

    linux 堆栈溢出的问题

    【Linux堆栈溢出问题详解】 堆栈溢出是一种常见的软件安全漏洞,尤其在Linux和Unix系统中。这种漏洞允许攻击者通过向程序的堆栈区域写入超出预期的数据量来破坏程序的正常运行,从而可能获取更高的权限,如root权限...

    java 堆栈的演示程序

    Java堆栈是一个重要的内存区域,它是Java虚拟机(JVM)的一部分,主要负责管理方法的执行。在这个"java 堆栈的演示程序"中,我们可能会深入理解堆栈的工作原理以及它在运行jsp程序时的角色。源代码设计将帮助我们...

    堆栈溢出异常解决办法.md

    堆栈溢出异常通常发生在程序中调用的函数或方法数量超过了系统分配的堆栈空间上限。Java环境中的堆栈溢出问题,可以通过优化递归、增加堆栈大小等方式进行解决。 首先,优化递归是解决堆栈溢出问题的常用方法。递归...

    堆栈溢出异常(解决方案).md

    在Java项目开发中,堆栈溢出是一种常见的运行时异常,通常是由深度递归调用或创建过多的对象导致的。堆栈溢出异常的解决方案分为两种主要思路,一是优化递归调用,二是减少对象创建数量或优化数据结构使用方式。 ...

    java堆栈详解 PDF 下载

    本文将深入探讨Java堆栈的概念、工作原理以及它们在程序执行中的角色。 1. 堆(Heap) - 堆是Java内存模型中的主要部分,主要用于存储对象实例。所有的类实例和数组都在堆中分配内存。 - 堆内存是动态分配的,...

    堆栈溢出异常如何解决.md

    在Java中,可以通过优化递归调用、使用迭代算法、调整算法复杂度等方法解决堆栈溢出问题。递归算法若递归深度过深,可尝试将其优化或转换为迭代算法。例如,将递归实现的斐波那契数列改为迭代方式,可以有效避免堆栈...

    JAVA内存溢出详解.doc

    Java内存溢出(Out Of Memory,OOM)是Java应用程序运行时常见的问题,它通常发生在程序对内存需求超过了Java虚拟机(JVM)所能提供的可用内存时。本文将深入探讨Java内存溢出的原因、表现以及如何解决。 1. **Java...

    JAVA内存溢出

    Java中的OutOfMemoryError(内存溢出)是一种常见的错误,本文将详细介绍OutOfMemoryError的三种情况及其解决方法。 首先,我们需要了解JVM(Java虚拟机)的内存管理机制。JVM管理的内存大致包括三种不同类型的内存...

    Java堆栈内存分析笔记

    Java堆栈内存分析是Java编程中的重要概念,它关乎程序的性能优化和内存泄漏的预防。堆和栈是Java内存管理的两个主要区域,它们各自承担着不同的职责。本笔记将深入探讨这两个区域的工作原理以及如何进行有效的分析。...

    堆栈溢出的解决方法

    堆栈溢出的解决方法 在计算机科学中,栈溢出是一种常见的编程错误,发生在程序的栈空间不足以存储所有的局部变量和函数调用信息时。如果栈溢出不被及时解决,可能会导致程序崩溃或出现未知的错误。因此,了解栈溢出...

    堆栈溢出1

    Java 堆栈溢出与 JVM 垃圾回收机制 Java 堆栈溢出是指 Java 应用程序在堆栈中存储的数据超过了堆栈的容量限制,从而导致程序崩溃的一种错误。这种错误通常是由于程序中的循环递归或死循环引起的。 在 Java 虚拟机...

    java堆栈的区别 -- 详解

    ### Java堆栈的区别详解 #### 一、预备知识—程序的内存分配 程序在运行时,根据不同的数据类型和用途,会被分配到不同的内存区域。这些区域包括: 1. **栈区(Stack)**:这部分内存由编译器自动管理,主要用于...

    java内存溢出原因

    本篇文章将详细解析三种常见的Java内存溢出类型:JVM PermGen space溢出、JVM heap space溢出以及Native Heap溢出,并提供相应的解决方案。 1. **JVM PermGen space溢出** - ** PermGen space** 是JVM内存模型中的...

    【IT十八掌徐培成】Java基础第04天-04.OOP-堆栈的溢出与设置-private关键字.zip

    本课程由IT十八掌徐培成讲解的"Java基础第04天-04.OOP-堆栈的溢出与设置-private关键字"深入探讨了两个关键主题:堆栈溢出和private关键字的使用。 首先,让我们来理解堆栈溢出。在计算机编程中,内存分为堆和栈两...

    stackoverflow-1134894:堆栈溢出问题“Maven2

    以下是关于Java和Maven2在处理堆栈溢出问题以及企业项目最佳实践的一些详细知识点: 1. **Maven配置**:Maven的`pom.xml`文件是项目的核心配置,其中可以设置堆栈大小。通过添加`-Xms`和`-Xmx`参数到`...

    jvm分析工具JProfiler,java应用内存溢出堆栈快照分析工具

    当Java应用出现内存溢出问题时,JProfiler可以生成堆栈快照,这有助于分析导致内存溢出的具体原因。通过堆栈快照,开发者可以看到对象的引用链,找出持有大对象的根源,以便进行针对性的优化。 **5. 线程监控** ...

Global site tag (gtag.js) - Google Analytics