国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java 互相關聯的實體無限遞歸問題的解決

Java 互相關聯的實體無限遞歸問題的解決

2022-02-21 00:42我是蟻人 Java教程

這篇文章主要介紹了Java 互相關聯的實體無限遞歸問題的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java 互相關聯的實體無限遞歸

今天在測試的時候出現了一個bug,在把關聯實體序列化返回的過程中報錯了,提示

Caused by: java.lang.StackOverflowError: null

這個是堆棧溢出錯誤,根據錯誤線索查找,最后發現Column和Table實體互相關聯,也就是說

Column實體中有Table屬性,Table實體中也有Column屬性,導致了在序列化的過程中出現了死循環,無限遞歸,以至堆棧溢出報錯。

在Jackson2.0以前的解決辦法是

在關聯的屬性上添加

?
1
@JsonBackReference

或者

?
1
@JsonIgnore

注解中的一個即可。但是從Jackson2.0以后的版本開始,提供@JsonIdentityInfo注解實現這個問題的解決,在實體類前加注解

?
1
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")

好好理解Java中的遞歸

遞歸的思想

把規模大的問題轉化為規模小的相似的子問題來解決。在函數實現時,因為解決大問題的方法和解決小問題的方法往往是同一個方法,所以就產生了函數調用它自身的情況。另外這個解決問題的函數必須有明顯的結束條件,這樣就不會產生無限遞歸的情況了。

一句話總結:遞歸就是自己調用自己。

遞歸的條件要素

1、遞歸有兩個重要條件

  • 可以通過遞歸調用來縮小問題規模,且新問題與原問題有著相同的形式。(自身調用)
  • 存在一種簡單情境,可以使遞歸在簡單情境下退出。(遞歸出口)

2、遞歸的三要素

  • 嘗試將一個問題化簡到更小的規模
  • 父問題與子問題不能有重疊的部分
  • 一定有一種可以退出程序的情況

遞歸的算法結構

遞歸的常用算法偽代碼如下:

?
1
2
3
4
5
6
7
func( mode){
    if(endCondition){      //遞歸出口
          end;
    }else{
         func(mode_small)  //調用本身,遞歸
    }
}

遞歸實戰舉例

遞歸講起來還是有點小抽象,我們直接來看代碼

1、斐波那契數的遞歸實現

斐波那契數列的遞推公式:Fib(n)=Fib(n-1)+Fib(n-2),生成數列(1、1、2、3、5、8...)。

?
1
2
3
4
5
6
7
8
9
public static int fib(int n) throws Exception {
    if (n < 0){
        throw new Exception("請輸入正確的參數");
   } else if (n == 0 || n == 1){
        return n;
   } else {
        return fib(n - 1) + fib(n - 2); // 調用自己
   }
}

2、99乘法表的遞歸實現

?
1
2
3
4
5
6
7
8
9
10
public static void mul(int n){
        if(n==1){
            System.out.println("1*1=1");
        }else {
            mul(n -1);
            for(int i=1;i<=n;i++){
                System.out.println(i + "*" + n + "=" + i*n + " ");
            }
        }
    }

小結一下吧

遞歸算法是一種直接或間接地調用自身的算法。如果一個問題可以解可以分解為幾個子問題的解; 這個問題與分解之后的子問題,除了數據規模不同,求解思路完全一樣;并且存在明顯的遞歸終止條件;那么遞歸將是一種不錯的選擇。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://kangkang.blog.csdn.net/article/details/53393467

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲自拍偷拍综合 | 深夜av在线 | 一区二区视频免费 | 国产精品福利视频 | 黄色在线观看 | 日韩国产 | 日韩欧美一区二区视频 | 欧美一级免费看 | 中文字幕精品视频 | 精品视频免费观看 | 国产一区二区三区免费观看 | av入口| 亚洲日本va在线观看 | 成av在线| 国产亚洲一区二区三区 | 91精品久久久久久久久久 | 欧美国产精品一区 | 亚洲国产精品一区二区第一页 | 久久不卡 | 中国一级毛片 | 久久精品亚洲 | 国产精品片aa在线观看 | 亚洲a网| 亚洲国产精品久久久久秋霞不卡 | 日韩精品久久久久久 | 精品久久在线 | 3344视频| 日本韩国欧美一区 | 二区中文字幕 | 欧美一区高清 | 黄色网址视频大全 | 精品国产乱码久久久久久影片 | 中文字幕国产日韩 | 国产中文在线 | 欧美综合视频 | 亚洲国产精品激情在线观看 | 色老头综合网 | 免费一级毛片观看 | 精品国产乱码久久久久久牛牛 | 欧美精品在线一区二区 | 日韩精品在线视频 |