欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA中StackOverflowError錯誤的解決

 更新時間:2021年04月21日 09:28:40   作者:奕銘呀  
這篇文章主要介紹了JAVA中StackOverflowError錯誤的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧

StackOverflowError   

原因

    根據(jù)名字的意思可以大致知道它是跟函數(shù)棧有關(guān)的錯誤,就是函數(shù)棧調(diào)用太深了,可能是代碼中有了循環(huán)調(diào)用方法而無法退出的情況。而像while這樣的死循環(huán),不會報錯,程序會一直執(zhí)行下去,占用內(nèi)存。

原理

    StackOverflowError 是一個java中常出現(xiàn)的錯誤:在jvm運行時的數(shù)據(jù)區(qū)域中有一個java虛擬機棧,當執(zhí)行java方法時會進行壓棧彈棧的操作。在棧中會保存局部變量,操作數(shù)棧,方法出口等等。jvm規(guī)定了棧的最大深度,當執(zhí)行時棧的深度大于了規(guī)定的深度,就會拋出StackOverflowError錯誤。

    所以當你在一個函數(shù)再調(diào)用此函數(shù)時,而忘記設(shè)置出口就會出現(xiàn)這個錯誤。

    今天我遇到的問題就是我想覆寫hash函數(shù),想要在此函數(shù)調(diào)用的結(jié)果是原來的hash函數(shù)調(diào)用的結(jié)果再隨便加一個字符串,結(jié)果就忽視了函數(shù)會一直調(diào)用下去,相當于沒有設(shè)置遞歸函數(shù)的出口,所以導(dǎo)致了StackOverflowError錯誤。

    這是當時我的代碼

     發(fā)生的錯誤

     當我把函數(shù)名字改一改就能正常運行。還有原來的一些設(shè)置圖書和學(xué)生類時,這兩個類中都覆寫了toString方法,這兩個類也可以互相調(diào)用,當最后調(diào)用tostring時也會發(fā)生錯誤。

下面是我在網(wǎng)上找的一段代碼

//book和student相互循環(huán)引用
public class StackOverFlowDemo {
 
    static class Student{
        String name;
        Book book;
 
        public Student(String name) {
            this.name = name;
        }
        //循環(huán)調(diào)用toString方法
        @Override
        public String toString() {
            return "Student{" +
                    "name='" + name + '\'' +
                    ", book=" + book +
                    '}';
        }
    }
 
    static class Book {
        String isbn;
        Student student;
 
        public Book(String isbn, Student student) {
            this.isbn = isbn;
            this.student = student;
        }
 
        @Override
        public String toString() {
            return "Book{" +
                    "isbn='" + isbn + '\'' +
                    ", student=" + student +
                    '}';
        }
    }
 
    public static void main(String[] args) {
        Student student=new Student("zhang3");
        Book book=new Book("1111",student);
        student.book=book;
        System.out.println(book.toString());
    }
 
}

發(fā)生了如下錯誤

到此這篇關(guān)于JAVA中StackOverflowError錯誤的解決的文章就介紹到這了,更多相關(guān)JAVA StackOverflowError錯誤內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java使用動態(tài)規(guī)劃算法思想解決背包問題

    Java使用動態(tài)規(guī)劃算法思想解決背包問題

    背包問題(Knapsack problem)是一種組合優(yōu)化的NP完全問題。問題可以描述為:給定一組物品,每種物品都有自己的重量和價格,在限定的總重量內(nèi),我們?nèi)绾芜x擇,才能使得物品的總價格最高
    2022-04-04
  • Java中Object類的理解和使用

    Java中Object類的理解和使用

    Object類是java.lang包下的核心類,Object類是所有類的父類,何一個類時候如果沒有明確的繼承一個父類的話,那么它就是Object的子類,本文將通過代碼示例詳細介紹一下Java中Object類的理解和使用,需要的朋友可以參考下
    2023-06-06
  • 完美解決MybatisPlus插件分頁查詢不起作用總是查詢?nèi)繑?shù)據(jù)問題

    完美解決MybatisPlus插件分頁查詢不起作用總是查詢?nèi)繑?shù)據(jù)問題

    這篇文章主要介紹了解決MybatisPlus插件分頁查詢不起作用總是查詢?nèi)繑?shù)據(jù)問題,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Mybatis主配置文件的properties標簽詳解

    Mybatis主配置文件的properties標簽詳解

    這篇文章主要介紹了Mybatis主配置文件的properties標簽,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 詳解context root修改無效web修改項目路徑(eclipse)

    詳解context root修改無效web修改項目路徑(eclipse)

    這篇文章主要介紹了詳解context root修改無效web修改項目路徑(eclipse)的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • SpringCloud基于RestTemplate微服務(wù)項目案例解析

    SpringCloud基于RestTemplate微服務(wù)項目案例解析

    這篇文章主要介紹了SpringCloud基于RestTemplate微服務(wù)項目案例,在寫SpringCloud搭建微服務(wù)之前,先搭建一個不通過springcloud只通過SpringBoot和Mybatis進行模塊之間通訊,通過一個案例給大家詳細說明,需要的朋友可以參考下
    2022-05-05
  • Spring計劃任務(wù)用法實例詳解

    Spring計劃任務(wù)用法實例詳解

    這篇文章主要介紹了Spring計劃任務(wù)用法,結(jié)合實例形式詳細分析了spring計劃任務(wù)相關(guān)原理、配置、使用方法及操作注意事項,需要的朋友可以參考下
    2019-11-11
  • java 讀取網(wǎng)頁內(nèi)容的實例詳解

    java 讀取網(wǎng)頁內(nèi)容的實例詳解

    這篇文章主要介紹了java 讀取網(wǎng)頁內(nèi)容的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家學(xué)習理解這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • Java 之類型轉(zhuǎn)換與多態(tài)詳情

    Java 之類型轉(zhuǎn)換與多態(tài)詳情

    Java使用類創(chuàng)造新的類型(type),并使用繼承來便利我們創(chuàng)建類。再深一層講類型,并是多態(tài)(polymorphism)的概念。本文將給大家介紹Java 的類型轉(zhuǎn)換與多態(tài),需要的小伙伴可以參考下面文章的具體內(nèi)容
    2021-09-09
  • mybatis spring配置SqlSessionTemplate的使用方式

    mybatis spring配置SqlSessionTemplate的使用方式

    這篇文章主要介紹了mybatis spring配置SqlSessionTemplate的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論