栈溢出异常(StackOverflowError)不知怎么搞才好,求高手

屌丝Java 2018-02-27 05:07:11
public class Chapter6_5{
public static void main(String[] args) {
Person p = new Person("萌萌",160);
System.out.println(p.toString());
}
}
class Person{
String name;
double height;
Person(){}
Person(String n,double h){
name = n;height = h;
}
public void showName(){
System.out.println("名字:"+name);
}
public void showHeight(){
System.out.println("身高:"+height);
}

//栈溢出异常(StackOverflowError)
public String toString(){
return toString();
}
}

可编译程序,但是运行的时候,耗内存出现
Exception in thread "main" java.lang.StackOverflowError
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
后面还有,上百行
...全文
908 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36585995 2018-03-02
  • 打赏
  • 举报
回复
不用看,坑定是递归死循环导致栈溢出
屌丝Java 2018-02-27
  • 打赏
  • 举报
回复
为什么前面两个方法不打印内容 //栈溢出异常(StackOverflowError) public String toString(){ return super.toString(); ---------- java运行 ---------- Person@757aef 输出完成 (耗时 0 秒) - 正常终止 这种返回结果又代表什么意思
屌丝Java 2018-02-27
  • 打赏
  • 举报
回复
课本的题目,还没有学到你说的东西,没有继承,递归,只学到声明类,定义结构,成员的知识,,那么应该return什么
maradona1984 2018-02-27
  • 打赏
  • 举报
回复
自己调用自己,当然会栈溢出,递归也得有跳出递归的条件
屌丝Java 2018-02-27
  • 打赏
  • 举报
回复
//栈溢出异常(StackOverflowError) public String toString(){ return super.toString(); ---------- java运行 ---------- Person@757aef 输出完成 (耗时 0 秒) - 正常终止
symjh 2018-02-27
  • 打赏
  • 举报
回复
引用 1 楼 symjh 的回复:
public String toString(){ return toString(); } } 死循环了
正确写法

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return super.toString();
	}
屌丝Java 2018-02-27
  • 打赏
  • 举报
回复
这里不是继承。那么就应该是return this.toString();
屌丝Java 2018-02-27
  • 打赏
  • 举报
回复
怎么解决啊,不是return toString();,那应该是什么,
symjh 2018-02-27
  • 打赏
  • 举报
回复
public String toString(){ return toString(); } } 死循环了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧