当前位置: 首页 > news >正文

潍坊网站推广排名邯郸专业做网站地方

潍坊网站推广排名,邯郸专业做网站地方,seo包年优化平台,网络管理软件appStackOverflowError在程序栈空间耗尽时抛出#xff0c;通常是深度递归导致。StackOverflowError继承了VirtualMachineError类#xff0c;后者表示JVM已被破坏或资源耗尽。更进一步#xff0c;VirtualMachineError继承自Error类#xff0c;应用程序不应该捕获这种严重的错误…StackOverflowError在程序栈空间耗尽时抛出通常是深度递归导致。StackOverflowError继承了VirtualMachineError类后者表示JVM已被破坏或资源耗尽。更进一步VirtualMachineError继承自Error类应用程序不应该捕获这种严重的错误。不要再throw语句里面抛出这样的错误因为这些错误是不应该发生的异常条件。StackOverflowError从Java 1.0版本就已存在。StackOverflowError构造函数StackOverflowError()和StackOverflowError(String s)后者的String参数指明了抛出错误的类名。The StackOverflowError in Java当一个函数被Java程序调用的时候就会在调用栈上分配栈帧。栈帧包含被调用函数的参数、局部变量和返回地址。返回地址指示了当函数执行完毕之后下一步该执行哪里。如果创建栈帧时没有内存空间JVM就会抛出StackOverflowError。最常见的耗尽Java栈的案例是递归。在递归操作中函数执行时会调用自己。使用递归要小心以免抛出StackOverflowError错误。如下的例子演示了递归如何抛出StackOverflowErrorpublic class StackOverflowErrorExample {public static void recursivePrint(int num) {System.out.println(Number: num);if(num 0)return;elserecursivePrint(num);}public static void main(String[] args) {StackOverflowErrorExample.recursivePrint(1);}}如果num为0递归就会终止但是这里一开始传入1每次递归都自增1递归永远不会终止。使用-Xss1M参数指定线程栈空间大小为1M这个例子的执行结果如下Number: 1Number: 2Number: 3...Number: 6262Number: 6263Number: 6264Number: 6265Number: 6266Exception in thread main java.lang.StackOverflowErrorat java.io.PrintStream.write(PrintStream.java:480)at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291)at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104)at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:185)at java.io.PrintStream.write(PrintStream.java:527)at java.io.PrintStream.print(PrintStream.java:669)at java.io.PrintStream.println(PrintStream.java:806)at StackOverflowErrorExample.recursivePrint(StackOverflowErrorExample.java:4)at StackOverflowErrorExample.recursivePrint(StackOverflowErrorExample.java:9)at StackOverflowErrorExample.recursivePrint(StackOverflowErrorExample.java:9)at StackOverflowErrorExample.recursivePrint(StackOverflowErrorExample.java:9)...More about the StackOverflowError in Java下面的例子演示了类之间有循环关系时的风险。class A {private int aValue;private B bInstance null;public A() {aValue 0;bInstance new B();}Overridepublic String toString() {return ;}}class B {private int bValue;private A aInstance null;public B() {bValue 10;aInstance new A();}Overridepublic String toString() {return ;}}public class StackOverflowErrorToStringExample {public static void main(String[] args) {A obj new A();System.out.println(obj.toString());}}当创建A对象的时候需要创建B对象创建B对象的时候又要创建A对象在两个类之间形成了循环依赖最终导致StackOverflowError。输出结果Exception in thread main java.lang.StackOverflowErrorat main.java.B.(StackOverflowErrorToStringExample.java:24)at main.java.A.(StackOverflowErrorToStringExample.java:9)at main.java.B.(StackOverflowErrorToStringExample.java:24)at main.java.A.(StackOverflowErrorToStringExample.java:9)at main.java.B.(StackOverflowErrorToStringExample.java:24)at main.java.A.(StackOverflowErrorToStringExample.java:9)...如何处理StackOverflowError最简单的方法就是细致的检查stack trace找出行号的重复模式。这些重复的行号代表了被递归调用的代码。仔细审查代码理解为何递归不终止。如果你确认递归实现没有问题你可以通过-Xss参数增加栈的大小这个参数可以在项目配置或命令行指定。
http://wiki.neutronadmin.com/news/49837/

相关文章:

  • 网站开发需要哪些职位网站建设预算明细表
  • 网站建设的基本流程可分为签证中心网站建设
  • 银川网站建设广告公司wordpress 安装ssl
  • 打造自己的网站南川区 网站集约化建设方案
  • 学校网站空间建设情况wordpress直播购物插件
  • 深圳做网站(信科网络)网站友情链接模板
  • 如何设置中国建设银行网站外贸平台有哪些国际
  • 商业网站建设设计郑州网站设计收费
  • 合肥公司网站建设价格上海做网站哪家公司好
  • 学校网站建设文字规范问题工商注册地址有什么要求
  • 网站权重分为几个等级网站建设的组织机构
  • 手机网站自适应分辨率福州seo顾问
  • 云主机建设网站网站开发简单
  • 站长工具seo综合查询是什么意思网站开发定制案例展示
  • 衡阳做网站的公司网站做轮播图的意义
  • 网站设计手机闵行区属于浦东还是浦西
  • 网站建设管理工作简述wordpress常常被用来做什么网站
  • 企业网站建设太原网站建设wordpress做菜鸟教程
  • 专业建站公司的业务内容有哪些泉州网站建设公司首选公司
  • 网站现状如何分析平台推广怎么写
  • 上蔡做网站毕设做网站什么主题比较好
  • 财经网站源码 织梦网站开发 鲁山
  • 牛杂网这类网站怎么做的数商云网络科技有限公司
  • 张家界简单的网站建设二级医院做网站
  • 网站的动画广告横幅怎么做的优化网站
  • 帮忙做任务网站分销商城系统有哪些
  • 网站建设项目报价单赣州91人才网赣州招聘
  • 第一次做网站选多大空间长沙建网站培训
  • 博达网站建设教程分销商管理系统
  • 济宁网站建设推荐广州哪里能看海