2 wuwei2541 wuwei2541 于 2016.02.01 14:04 提问

求高手帮帮忙,不知道该怎样解决

Exception in thread "main" java.lang.StackOverflowError

at java.text.DecimalFormat.subformat(DecimalFormat.java:903)

at java.text.DecimalFormat.format(DecimalFormat.java:692)

at java.text.DecimalFormat.format(DecimalFormat.java:626)

at java.text.SimpleDateFormat.zeroPaddingNumber(SimpleDateFormat.java:1335)

at java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1274)

at java.text.SimpleDateFormat.format(SimpleDateFormat.java:978)

at java.text.SimpleDateFormat.format(SimpleDateFormat.java:948)

at java.text.DateFormat.format(DateFormat.java:336)

at org.apache.log4j.helpers.PatternParser$DatePatternConverter.convert(PatternParser.java:443)

at org.apache.log4j.helpers.PatternConverter.format(PatternConverter.java:65)

at org.apache.log4j.PatternLayout.format(PatternLayout.java:506)

at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:310)

at org.apache.log4j.WriterAppender.append(WriterAppender.java:162)

at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)

at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)

at org.apache.log4j.Category.callAppenders(Category.java:206)

at org.apache.log4j.Category.forcedLog(Category.java:391)

at org.apache.log4j.Category.log(Category.java:856)

at org.slf4j.impl.Log4jLoggerAdapter.error(Log4jLoggerAdapter.java:498)

7个回答

kingsonyoung
kingsonyoung   2016.02.01 15:16
已采纳

StackOverflow 这个问题一般是你的程序里头可能是有死循环或递归调用所产生的;可以查看一下你的程序,也可以增大你JVM的内存~~~
在Eclipse中JDK的配置中加上 -XX:MaxDirectMemorySize=128 这代码,就行了,默认是64M,增大一倍,我估计行了,还不行的话,就用256吧,还不行的话,估计就是你程序里头有死循环,或递归调用没写好了。。。

wuwei2541
wuwei2541 额,我调试了,内存还有剩余的,就是报错
接近 2 年之前 回复
rui888
rui888   Ds   Rxr 2016.02.01 14:12

log 贴全了? DecimalFormat

应该是你格式化的时候出错了。

wuwei2541
wuwei2541 是在运行代码后的十分钟左右报出的异常
接近 2 年之前 回复
wuwei2541
wuwei2541 是在运行代码后的十分钟左右报出的异常
接近 2 年之前 回复
wuwei2541
wuwei2541   2016.02.01 14:19

log贴全了,图片说明,这是代码,求大神细细指点

fk002008
fk002008   2016.02.01 14:47

启动线程为什么是这个
new RecvThread().run();

不是这个 start()方法吗???

wuwei2541
wuwei2541 我在下面用继承重写了线程,所有直接run()就行
接近 2 年之前 回复
rui888
rui888   Ds   Rxr 2016.02.01 14:57

java.lang.StackOverflowError
栈溢出,肯定哪里循环引用或者嵌套要么无限循环等,代码哪里写错了建议调试看看。

wuwei2541
wuwei2541 好,就是没提示错误,但是报的是数值转换异常
接近 2 年之前 回复
sudaxhh
sudaxhh   2016.02.01 15:21

栈溢出,代码有错,估计是死循环了,调试下

wuwei2541
wuwei2541 我用jprofiler调试了,内存有剩余,线程最多两个。。。。
接近 2 年之前 回复
wuwei2541
wuwei2541 没有死循环
接近 2 年之前 回复
wuwei2541
wuwei2541   2016.02.01 17:30

找出来了,谢谢大家,是死循环

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!