牛客習題總結10

在這裏插入圖片描述
在這裏插入圖片描述
a屬於類所以在堆中。bc屬於方法,b c爲局部變量,局部變量不屬於任何類或者實例,因此它總是保存在其所在方法的棧內存中!
在這裏插入圖片描述

A:變量不能被defalut修飾

B:native修飾方法,native修飾的方法簡單來說就是:一個Java方法調用了一個非Java代碼的接口。
定義navtive方法時,並不提供實現體,因爲其實現體是用非Java語言在外面實現的。native可以和任何修飾符連用,abstract除外。因爲native暗示這個方法時有實現體的,而abstract卻顯式指明瞭這個方法沒有實現體。

C:abstract修飾方法和類

D:final修飾的方法不能被重寫。而abstract定義的方法沒有實現,必須被子類重寫,明顯不能一起使用。

因爲被final修飾的方法不可以被重寫,意味着子類不可以重寫該方法,如果abstract和final共同修飾父類中的方法,子類要實現抽象方法(abstract的作用),而final又不讓該方法重寫,這相互矛盾。如果private和abstract共同修飾父類中的方法,private修飾則該方法不可以被子類訪問,但是abstract修飾需要子類去實現,兩者產生矛盾。如果static和abstract共同修飾父類中的方法,static表示是靜態的方法,隨着類的加載而加載,則該方法不需要在子類中去實現,這與abstract關鍵字矛盾。
在這裏插入圖片描述
還是需要理解Try…catch…finally與直接throw的區別:try catch是直接處理,處理完成之後程序繼續往下執行,throw則是將異常拋給它的上一級處理,程序便不往下執行了。本題的catch語句塊裏面,打印完1之後,又拋出了一個RuntimeException,程序並沒有處理它,而是直接拋出,因此執行完finally語句塊之後,程序終止了
在這裏插入圖片描述
會自動發生向上轉型
在這裏插入圖片描述

public class Main2 {
    public static int countWays(int x, int y) {
        int dp[][] = new int[x][y];
        for(int i = 0; i < x; i++){
            dp[i][0] = 1;
        }
        for(int j =0; j< y; j++){
            dp[0][j] = 1;
        }
        for(int i = 1; i< x;i++){
            for(int j =1;j<y;j++){
                dp[i][j] = dp[i-1][j] + dp[i][j-1];
            }
        }

        return dp[x-1][y-1];

    }

由於只能向下或者向右走,要從左上角走到右下角,我們把最左邊的一列和最上面的一行的格子裏都設置爲1,我們可以得出規律,走到當前格的方法爲他相鄰左邊格子的數加他上面格子的數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章