【263天】我愛刷題系列(22)

叨叨兩句

  1. 刷題的目的是爲了發現已知知識的薄弱點,不是爲了學新知識,學新知識應該系統的去刷書和視頻

牛客網——java專項練習002

  1. 假設利用 return 語句從 try 語句塊中退出。在方法返回前,finally子句的內容將被執行。若是 finally 子句中也有一個 return 語句,這個返回值將會覆蓋原始的返回值。
public static void main(String[] args) {
        int k = f_test();
        System.out.println(k);
    }
     
    public static int f_test(){
        int a = 0;
        try{
            a = 1;
            return a;
        }
        finally{
            System.out.println("It is in final chunk.");
            a = 2;
            return a;
        }
    }
輸出: 
It is in final chunk.
2

若是將 return a; 註釋掉,將輸出
It is in final chunk.
1
  1. 在Java中,對於再也不使用的內存資源,如調用完成的方法,「垃圾回收器」會自動將其釋放。(錯誤)
方法調用時,會建立棧幀在棧中,調用完是程序自動出棧釋放,而不是gc釋放
  1. 如下方法,哪一個不是對add方法的重載?
public class Test
{
    public void add( int x,int y,int z){}
}
正確答案: B   
A. public int add(int x,int y,float z){return 0;}
B. public int add(int x,int y,int z){return 0;}
C. public void add(int x,int y){}
D. 以上都不是

重載、重寫區別java

  1. 下列代碼片斷中,存在編譯錯誤的語句是(一、三、4)
byte b1=1,b2=2,b3,b6,b8;
final byte b4=4,b5=6,b7;
b3=(b1+b2);  /*語句1*/
b6=b4+b5;    /*語句2*/
b8=(b1+b4);  /*語句3*/
b7=(b2+b5);  /*語句4*/
System.out.println(b3+b6);

final知識點腦圖程序員

1、關於final的重要知識點;
一、final關鍵字能夠用於成員變量、本地變量、方法以及類。
二、 final成員變量必須在聲明的時候初始化或者在構造器中初始化,不然就會報編譯錯誤。
三、 你不可以對final變量再次賦值。
四、 本地變量必須在聲明時賦值。
五、 在匿名類中全部變量都必須是final變量。
六、 final方法不能被重寫。
七、 final類不能被繼承。
八、 沒有在聲明時初始化final變量的稱爲空白final變量(blank final variable),它們必須在構造器中初始化,或者調用this()初始化。不這麼作的話,編譯器會報錯「final變量(變量名)須要進行初始化」。

2、數據類型轉換
當使用 +、-、*、/、%、運算操做是,遵循以下規則:
只要兩個操做數中有一個是double類型的,另外一個將會被轉換成double類型,而且結果也是double類型,若是兩個操做數中有一個是float類型的,另外一個將會被轉換爲float類型,而且結果也是float類型,若是兩個操做數中有一個是long類型的,另外一個將會被轉換成long類型,而且結果也是long類型,不然(操做數爲:byte、short、int 、char),兩個數都會被轉換成int類型,而且結果也是int類型。

語句1錯誤:b3=(b1+b2);自動轉爲int,因此正確寫法爲b3=(byte)(b1+b2);或者將b3定義爲int;
語句2正確:b6=b4+b5;b四、b5爲final類型,不會自動提高,因此和的類型視左邊變量類型而定,即b6能夠是任意數值類型;
語句3錯誤:b8=(b1+b4);雖然b4不會自動提高,但b1仍會自動提高,因此結果須要強轉,b8=(byte)(b1+b4);
語句 4: (b2 + b5)  結果仍然轉換爲int , 因此語句4錯誤。
  1. Java 語言中,負責併發管理的機制是(D)
A. 垃圾回收
B. 虛擬機
C. 代碼安全
D. 多線程
選項A,Java語言中,垃圾回收機制對系統中不使用的內存進行回收,從而使程序員從繁忙的內存管理中解放出來。
選項B,Java編寫好的程序首先由編譯器轉換爲標準字節代碼,而後由虛擬機執行。虛擬機把字節代碼程序與各操做系統和硬件分開,使Java程序獨立於平臺。
選項C,Java的代碼安全檢測體如今多個層次上,在編譯層、解釋層、平臺層分別做不一樣的安全檢查。
選項D,多線程是Java程序的併發機制,它能同步共享數、處理不一樣的事件。
  1. 下列關於java 中的 wait()方法和 sleep()方法的區別描述錯誤的是?
A. wait()方法屬於Object類,sleep()屬於Thread類
B. 調用wait()方法的時候,線程會放棄對象鎖
C. 調用sleep()方法的過程當中,線程不會釋放對象鎖
D. sleep()方法致使了程序暫停執行指定的時間,讓出cpu給其餘線程

sleep與wait的區別安全

  1. public class contained in a Java program file must have the same name as the file, except for the extension ".java".(FALSE)
public class Test{
 
    public static class innerClass{
        public static void prin(){
            System.out.println("innerClass");
        }
    }
 
    public static void main(String[] args) {
        Test.innerClass.prin();
        System.out.println("HelloWorld");
    }
}

題目的意思是: 除去擴展名.java的部分,包含在java文件裏的Java裏的公共類必須與文件的名字相同。
可是公共的內部類是不須要和文件的名字相同的。
  1. 如下程序的輸出結果爲(編譯錯誤)
class Base{
    public Base(String s){
        System.out.print("B");
    }
}
public class Derived extends Base{
    public Derived (String s) {
        System.out.print("D");
    }
    public static void main(String[] args){
        new Derived("C");
    }
}
子類構造方法在調用時必須先調用父類的,因爲父類沒有無參構造,必須在子類中顯式調用,修改子類構造方法以下便可:
public Derived(String s){
        super("s");
        System.out.print("D");
    }
相關文章
相關標籤/搜索