牛客习题总结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,我们可以得出规律,走到当前格的方法为他相邻左边格子的数加他上面格子的数。

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