Java這點事

來源:互聯網
上載者:User

標籤:

1--程式碼片段: 
12345 byte b1=1,b2=2,b3,b6; final byte b4=4,b5=6b6=b4+b5; b3=(b1+b2); System.out.println(b3+b6);
關於上面程式碼片段敘述正確的是()
  • 輸出結果:13
  • 語句:b6=b4+b5編譯出錯
  • 語句:b3=b1+b2編譯出錯
  • 運行期拋出異常

 

分析:

運算式的資料類型自動提升, 關於類型的自動提升,注意下面的規則。

①所有的byte,short,char型的值將被提升為int型;

②如果有一個運算元是long型,計算結果是long型;

③如果有一個運算元是float型,計算結果是float型;

④如果有一個運算元是double型,計算結果是double型;而聲明為final的變數會被JVM最佳化,第6行相當於 b6 = 10 沒有final修飾的變數相加後會被自動提升為int型,與目標類型byte不相容,需要強制轉換(向下轉型)。 C.被final修飾的變數是常量,這裡的b6=b4+b5可以看成是b6=10;在編譯時間就已經變為b6=10了而b1和b2是byte類型,java中進行計算時候將他們提升為int類型,再進行計算,b1+b2計算後已經是int類型,賦值給b3,b3是byte類型,類型不符,編譯不會通過,需要進行強制轉換。Java中的byte,short,char進行計算時都會提升為int類型。 1.需要強制轉換(向下轉型)。
2.沒有final修飾的變數相加後會被自動提升為int型,與目標類型byte不相容,要向下轉型。   2--下面代碼運行結果是()
123456789101112131415161718 public class Test{     public int add(int a,int b){            try {             return a+b;                       catch (Exception e) {              System.out.println("catch語句塊");         }         finally             System.out.println("finally語句塊");         }         return 0;         public static void main(String argv[]){          Test test =new Test();          System.out.println("和是:"+test.add(934));      }}

  • catch語句塊,和是:43
  • 編譯異常
  • finally語句塊,和是:43
  • 和是:43,finally語句塊

分析:

答案是C對於try塊中的return,先計算return 後面的運算式,緩衝結果跳到finally語句塊中執行,如果finally語句塊中有return語句,則不會再去執行try中的語句。如果finally中沒有return語句,則會再次去try語句塊中執行return  3--以下java程式碼,執行後的結果是()
1234 java.util.HashMap map=new java.util.HashMap(); map.put("name",null);      map.put("name","Jack");System.out.println(map.size());

  • 0
  • null
  • 1
  • 2
    分析:
C.HashMap是Map介面的實作類別,並且不保證元素的順序恒久不變,它的底層使用的是數組和鏈表,通過hashCode()方法和equals方法保證鍵的唯一性HashMap允許null鍵和null值使用put方法向HashMap中添加元素時,如果鍵不存在,則添加該元素,並返回null;如果鍵已經存在,則把該鍵對應的值進行覆蓋,返回原來的鍵,由於鍵都是"name",所以第二次添加的會把第一次的值覆蓋,並返回第一次的鍵,所以HashMap中還是只有一個元素 Map Set無重複,List按順序儲存。

Java這點事

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.