char與byte的區別


很多初學者(包括我,已經學了一年多java了)肯會對char和byte這兩種數據類型有所疑惑,相互混淆,今天特地查了好多資料,對byte和char兩種數據類型進行了總結和比較,先將結果與大家分享:

 

 

        byte 是字節數據類型 ,是有符號型的,占1 個字節;大小范圍為-128—127 。char 是字符數據類型 ,是無符號型的,占2字節(Unicode碼 );大小范圍 是0—65535 ;char是一個16位二進制的Unicode字符,JAVA用char來表示一個字符 。

 

        下面用實例來比較一下二者的區別:

 

1、Char是無符號型的,可以表示一個整數,不能表示負數;而byte是有符號型的,可以表示-128—127 的數;如:

[html]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. char c = (char) -3; // char不能識別負數,必須強制轉換否則報錯,即使強制轉換之后,也無法識別  
  2. System.out.println(c);  
  3. byte d1 = 1;  
  4. byte d2 = -1;  
  5. byte d3 = 127; // 如果是byte d3 = 128;會報錯  
  6. byte d4 = -128; // 如果是byte d4 = -129;會報錯  
  7. System.out.println(d1);  
  8. System.out.println(d2);  
  9. System.out.println(d3);  
  10. System.out.println(d4);  

結果為:

?
1
-1
127
-128

 

2、char可以表中文字符,byte不可以,如:

 

[html]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. char e1 = '中', e2 = '國';  
  2. byte f= (byte) '中'; //必須強制轉換否則報錯  
  3. System.out.println(e1);  
  4. System.out.println(e2);  
  5. System.out.println(f);  

結果為:



45

 

3、char、byte、int對於英文字符,可以相互轉化,如:

 

 

[html]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. byte g = 'b';   //b對應ASCII是98  
  2. char h = (char) g;  
  3. char i = 85;    //U對應ASCII是85  
  4. int j = 'h';    //h對應ASCII是104  
  5. System.out.println(g);  
  6. System.out.println(h);  
  7. System.out.println(i);  
  8. System.out.println(j);  

結果為:
98
b
U
104

 

 

 

歡迎加入"Java夢之隊" 學習群:226159645


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM