• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
酒醒梦断
博客园    首页    新随笔    联系   管理    订阅  订阅

怎样使JAVA栈内存快速溢出?

 

 

 

 

方法区和堆所有线程共享。虚拟机栈和本地方法栈和程序计数器每个线程独享。   每个线程的栈大小可以通过   参数 : -Xss512k  来决定每新启动一个线程分配的栈大小。

 

如果方法迭代度过深就会出现栈内存溢出。  每一个方法在执行的同时会创建一个栈帧(用来存储局部变量,操作数栈,动态链接,动态出口等信息。)从调用到执行完成的过程就对应着

一个栈帧在虚拟机中入栈到出栈的过程。(方法执行完成后会释放所有的局部变量)

 

堆内存则是绝大部分用来存储生成的对象。 创建对象过多或强引用使GC无法回收则会报堆内存不足的异常。 (GC主要关注区域)

 

方法区\元空间\永久代   :  用来存储被虚拟机加载的类信息,常量,静态变量。(jdk8取消了这部分内存区域,一部分放入heap中)

运行时常量池: 用来存储编译器生成的各种字面量和符号引用。   字面量(new String("你好")  你好就是字面量

 

posted @ 2017-12-28 11:02  酒醒梦断  阅读(568)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3