class Sample 
{
public static void main( String args[] )
{
try
{
A a1 = new A();
a1.a();
System.out.println( "main" );

}
catch( Exception e )
{
System.out.println( e );
}
}
}class A
{
int i = 0; void a()
{
try
{
this.i++;
System.out.println( i );
if( this.i < 6900 )
{
this.a();
}
}
catch( Exception e )
{
System.out.println( e );
}
}
}实际上这段代码有错误,我却不知道错在哪?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【blackempire】截止到2008-08-01 17:17:41的历史汇总数据(不包括此帖):
    发帖的总数量:0                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:2                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:---------------------结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

    取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=blackempire
      

  2.   

    是不是this.a()自己调用自己导致溢出了?
      

  3.   

    而且main方法里的trycatch是没有意义的。
      

  4.   

    class Sample 
    public class Sample ?
      

  5.   

    "class Sample Java codepublic class Sample ?"
    我加上public了,执行次数少的话没有问题,执行次数太大就出问题了
     
      

  6.   

    最好的方法是自己调试下,看调用了多少次函数。
    不要没事就用try catch和递归。
    每个函数都需要压栈一次的,即你递归都是压栈的,并且必须给这些函数分配内存。
    目前java没时间为每个函数建立一个索引。