Java資料類型——面試題

來源:互聯網
上載者:User

標籤:處理   unicode編碼   java編譯   code   cas   轉換   應用   原始類型   浮點型   

1、short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 +=1;有什麼錯?

答:對於short s1=1;s1=s1+1來說,在s1+1運算時會自動提升運算式的類型為int,那麼將int賦予給short類型的變數s1會出現類型轉換錯誤。

對於short s1=1;s1+=1來說 +=是java語言規定的運算子,java編譯器會對它進行特殊處理,因此可以正確編譯。

 

2、char類型變數能不能儲存一個中文的漢子,為什嗎?

char類型變數是用來儲存Unicode編碼的字元的,unicode字元集包含了漢字,所以char類型當然可以儲存漢字的,還有一種特殊情況就是某個生僻字沒有包含在

unicode編碼字元集中,那麼就char類型就不能儲存該生僻字。

 

3、Integer和int的區別

int是java的8種內建的未經處理資料類型。Java為每個原始類型都提供了一個封裝類,Integer就是int的封裝類。

int變數的預設值為0,Integer變數的預設值為null,這一點說明Integer可以區分出未賦值和值為0的區別,比如說一名學生沒來參加考試,另一名學生參加考

試全答錯了,那麼第一名考生的成績應該是null,第二名考生的成績應該是0分。關於這一點Integer應用很大的。

Integer類內提供了一些關於整數操作的一些方法,例如上文用到的表示整數的最大值和最小值。

 

4、switch語句能否作用在byte上,能否作用在long上,能否作用在string上?

byte的儲存範圍小於int,可以向int類型進行隱式轉換,所以switch可以作用在byte上

long的儲存範圍大於int,不能向int進行隱式轉換,只能強制轉換,所以switch不可以作用在long上

string在1.7版本之前不可以,1.7版本之後switch就可以作用在string上了。

 

5、能否在不進行強制轉換的情況下將一個 double 值賦值給 long 類型的變數?

答:不行,我們不能在沒有強制類型轉換的前提下將一個 double 值賦值給 long 類型的變數,因為 double 類型的範圍比 long 類型更廣,所以必須要進行強制轉換。

 

6、java 中 3*0.1 == 0.3 將會返回什嗎?true 還是 false?

答:false,因為浮點數不能完全精確的表示出來,一般都會損失精度。

 

 

7、java 中 float f = 3.4; 是否正確?

答:不正確,3.4 是雙精確度數,將雙精確度型(double)賦值給浮點型(float)屬於向下轉型(down-casting,也稱為窄化)會造成精度損失,因此需要強制類型轉換 float f = (float)3.4; 或者寫成 float f = 3.4F; 才可以。

 

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.