最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA中StackOverflowError錯誤的解決

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

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虛擬機(jī)棧,當(dāng)執(zhí)行java方法時會進(jìn)行壓棧彈棧的操作。在棧中會保存局部變量,操作數(shù)棧,方法出口等等。jvm規(guī)定了棧的最大深度,當(dāng)執(zhí)行時棧的深度大于了規(guī)定的深度,就會拋出StackOverflowError錯誤。

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

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

    這是當(dāng)時我的代碼

     發(fā)生的錯誤

     當(dāng)我把函數(shù)名字改一改就能正常運行。還有原來的一些設(shè)置圖書和學(xué)生類時,這兩個類中都覆寫了toString方法,這兩個類也可以互相調(diào)用,當(dāng)最后調(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 字符串的拼接詳解

    Java 字符串的拼接詳解

    本文主要介紹Java 字符串的拼接知識內(nèi)容,這里整理了相關(guān)資料,及簡單的示例代碼,有興趣的小伙伴可以參考下
    2016-08-08
  • Spring Boot報錯:No session repository could be auto-configured, check your configuration的解決方法

    Spring Boot報錯:No session repository could be auto-configured

    這篇文章主要給大家介紹了關(guān)于Spring Boot報錯:No session repository could be auto-configured, check your configuration的解決方法,文中給出了詳細(xì)的解決方法,對遇到這個問題的朋友們具有一定參考價值,需要的朋友下面來一起看看吧。
    2017-07-07
  • Jmeter對響應(yīng)數(shù)據(jù)實現(xiàn)斷言代碼實例

    Jmeter對響應(yīng)數(shù)據(jù)實現(xiàn)斷言代碼實例

    這篇文章主要介紹了Jmeter對響應(yīng)數(shù)據(jù)實現(xiàn)斷言代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Java多線程中的ReentrantLock可中斷鎖詳細(xì)解讀

    Java多線程中的ReentrantLock可中斷鎖詳細(xì)解讀

    這篇文章主要介紹了Java多線程中的ReentrantLock可中斷鎖詳細(xì)解讀,ReentrantLock中的lockInterruptibly()方法使得線程可以在被阻塞時響應(yīng)中斷,比如一個線程t1通過lockInterruptibly()方法獲取到一個可重入鎖,并執(zhí)行一個長時間的任務(wù),需要的朋友可以參考下
    2023-12-12
  • 解決springboot 實體類String轉(zhuǎn)Date類型的坑

    解決springboot 實體類String轉(zhuǎn)Date類型的坑

    這篇文章主要介紹了解決springboot 實體類String轉(zhuǎn)Date類型的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java中BEAN與EJB的區(qū)別淺析

    Java中BEAN與EJB的區(qū)別淺析

    這篇文章主要介紹了Java中BEAN與EJB的區(qū)別淺析,本文總結(jié)了它們之間的不同之處,需要的朋友可以參考下
    2015-03-03
  • 關(guān)于springmvc-servlet中的配置小知識詳解

    關(guān)于springmvc-servlet中的配置小知識詳解

    這篇文章主要介紹了關(guān)于springmvc-servlet中的配置小知識詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 關(guān)于線程池你不得不知道的一些設(shè)置

    關(guān)于線程池你不得不知道的一些設(shè)置

    這篇文章主要介紹了關(guān)于線程池你不得不知道的一些設(shè)置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2019-04-04
  • Spring異常捕獲且回滾事務(wù)解決方案

    Spring異常捕獲且回滾事務(wù)解決方案

    這篇文章主要介紹了Spring異常捕獲且回滾事務(wù)解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • C語言指針數(shù)組案例詳解

    C語言指針數(shù)組案例詳解

    這篇文章主要介紹了C語言指針數(shù)組案例詳解,本文通過案例詳細(xì)的解釋了指針與數(shù)組的初始化還有關(guān)系與應(yīng)用,需要的朋友可以參考下這篇文章
    2021-07-07

最新評論

兴化市| 江达县| 华安县| 乌恰县| 咸丰县| 沛县| 邻水| 美姑县| 江津市| 榆社县| 珲春市| 江西省| 紫金县| 武陟县| 始兴县| 闽清县| 无棣县| 沁阳市| 土默特右旗| 宝坻区| 枣强县| 墨脱县| 嘉黎县| 加查县| 应城市| 黄冈市| 龙胜| 淮滨县| 融水| 明光市| 汉中市| 常德市| 沙田区| 顺昌县| 碌曲县| 安福县| 敖汉旗| 临澧县| 醴陵市| 江津市| 株洲县|