java自己写的一个小程序
来源:互联网 发布:易语言盗号源码 编辑:程序博客网 时间:2024/06/10 12:46
今天在书上看到一个作者提出一个问题"怎样通过编写Java代码让Jvm崩溃",我看了之后也不懂。带着问题查了一下,百度知道里面有这样一个答案:
1 package jvm;
2
3 public class Crash {
4 public static void main(String[] args) {
5
6 //Object[] o = {"abc"};初始值赋值,不会有影响。
7 Object[] o = null;
8
9 while (true) {
10 o = new Object[] { o };
11 //输出的话,jvm就不会崩溃。
12 //System.out.println(o);
13 }
14 }
15 }
程序运行十几秒之后,控制台会出现这样的错误:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at jvm.Crash.main(Crash.java:10)
很明显,超出内存空间错误。
我将原程序随意改了一下,如赋初始值等,对程序无影响。
可是我将死循环中的o输出在控制台的时候,jvm居然一直都不崩,为什么输出的话,就不会超出内存空间呢?
我看来,原程序能够使Jvm崩溃,是因为死循环中,通过旧对象,不断创建出新的对象,即创造的对象是互相引用的,所以GC是不会回收它们的,造成堆栈溢出。
0 0
- java自己写的一个小程序
- 自己写的一个Android小程序
- 自己写的一个除法小程序
- 自己学习JSP写的一个小程序
- 自己写的小程序
- 自己写的java学生成绩评定小程序
- 自己写的一个洗扑克牌的java程序
- 黑马程序员--写一个自己和自己聊天的小程序
- 自己瞎写的小程序
- 第一个自己写的小程序
- java线程写的一个小程序,全过程
- 用java写的一个斗地主发牌小程序
- 用java写一个小的记事本程序
- java写一个Swing小程序:《我的时钟》
- 仿照Flappy bird写的一个Java小程序
- 自己写一个hibernate的小demo
- 自己N年前写的一个查看十六进制的位的小程序
- 自己写的一个 struct中operator ()重载 和 模版编程 混合的小程序
- 让图片与按钮居中心对齐
- 奇异值分解及几何意义
- iOS开发系列课程(05) --- 导航视图控制器
- 【codevs2039/USACO】 骑马修栅栏 图论算法之欧拉(回)路
- 面向对象和面向过程
- java自己写的一个小程序
- OpenGL教程翻译 第十五课 相机控制(二)
- C 语言编程 #if 0 #endif和:#if 1 #endif
- 新手简单下载Android中的SDK
- jquery 遍历
- oracle 各种常用函数讲解
- ioS开发之网络--网络基础概况
- mysql中文进行全文索引支持问题
- 用Java来实现一些简单的程序