Java 數據類型

數據類型在java 語言中包括兩種:java

  第一種:基本數據類型,能夠劃分紅4大類8小種ide

      整數型:byte,short,int,long byte:1 個字節,short :2 個字節  ;int :4個字節 ;long :8個字節 編碼

      浮點型 :float,double  float 4 個字節,double 8 個字節spa

      布爾型:boolean  佔用 1 個字節   code

      字符型:char,佔用 2 個字節blog

  第二種:引用數據類型 ,字符串屬於引用數據類型unicode

4個類型的取值範圍字符串

  byte: [-128 ~127]編譯器

  short:  [-32768 ~ 32767]字符編碼

  int    :  [-2147483648 ~ 2147483647]

  char :  [0 ~ 65535]

字符編碼:人爲規定的一套轉換表,規定了一系列的文字對應的二進制

使用 \ 轉義: \n 轉行  \t 製表符  \' 單引號

\u 表明後面的是一個字符的 unicode 編碼 , unicode 編碼 是 16 位。 char x =   '\u4e2d'   表明 中

整數型:

  八進制 :  010 ,0開頭    十六進制:0x10      0x開頭

數據類型轉換: 

  從小容量 到 大容量 能夠 自動轉換 

    在任何狀況下,整數型的「字面量/數據」默認被當作int類型處理。(記住就行)
    若是但願該「整數型字面量」被當作long類型來處理,須要在「字面量」後面添加L/l

      // 錯誤: 整數太大
      //long e = 2147483648;

      // 怎麼解決這個問題呢?
      long e = 2147483648L;

  從大容量 到小容量必須強制轉換,可是可能會損失精度。

    當整數型字幕量 沒有超出範圍的時候,能夠直接賦值

      byte  i = 1 ;

    轉換的時候,去扣除前面的字節

           byte b = (byte)300;
      System.out.println(b); // 44

 1 public class TypeTransferTest{
 2     public static void main(String[] args){
 3         // 編譯報錯,由於1000已經超出範圍了。
 4         //byte b1 = 1000;
 5         // 能夠
 6         byte b2 = 20;
 7         // 能夠
 8         short s = 1000;
 9         // 能夠
10         int c = 1000;
11         // 能夠
12         long d = c;
13         // 編譯報錯
14         //int e = d;
15         // 能夠
16         int f = 10 / 3;
17         // 能夠
18         long g = 10;
19         // 編譯報錯
20         //int h = g / 3;
21         // 能夠
22         long m = g / 3;
23         // 編譯報錯
24         //byte x = (byte)g / 3;
25         // 能夠
26         short y = (short)(g / 3);
27         // 能夠
28         short i = 10;
29         // 能夠
30         byte j = 5;
31         // 編譯報錯
32         //short k = i + j;
33         // 能夠
34         int n = i + j;
35         // 能夠
36         char cc = 'a';
37         System.out.println(cc); // a
38         System.out.println((byte)cc); // 97
39         // cc 會先自動轉換成int類型,再作運算
40         int o = cc + 100;
41         System.out.println(o); // 197
42     }
43 }
View Code

 

整數類型

  一、當一個整數賦值給 char 類型變量的時候,會轉換自動轉換成字符型

  二、當一個整數沒有超出byte,short,char取值範圍,能夠直接賦值

byte ,short ,char  的混合運算

  結論:byte、char、short作混合運算的時候,各自先轉換成int再作運算。

  編譯器只能檢測到語法,不肯定具體的存儲的什麼值,由於若是查過範圍,是須要強制轉換的

    short i = 10;
    byte j = 5;
    // 編譯報錯
    //short k = i + j;

    short k = (short)(i+j);

 1 public class IntTest06{
 2     public static void main(String[] args){
 3 
 4         char c1 = 'a';
 5         byte b = 1;
 6 
 7         // 注意:這裏的"+"是負責求和的
 8         System.out.println(c1 + b); // 98
 9 
10         // 錯誤: 不兼容的類型: 從int轉換到short可能會有損失
11         //short s = c1 + b; // 編譯器不知道這個加法最後的結果是多少。只知道是int類型。
12 
13         // 這樣修改行嗎?
14         //錯誤: 不兼容的類型: 從int轉換到short可能會有損失
15         //short s = (short)c1 + b;
16 
17         short s = (short)(c1 + b);
18 
19         //short k = 98;
20 
21         int a = 1;
22         //錯誤: 不兼容的類型: 從int轉換到short可能會有損失
23         // short x = 1; 能夠
24         short x = a; // 不能夠,編譯器只知道a是int類型,不知道a中存儲的是哪一個值。
25         System.out.println(x);
26     }
27 }
View Code

 

多種數據類型混合運算,最終結果是最大容量的對應的類型 

  char+short+byte 這個除外。
  由於char + short + byte混合運算的時候,會各自先轉換成int再作運算。

浮點型

  任何一個浮點型數據默認是當作 double 來處理,若是想用 float 類型, 添加 F或者f. 或者強制轉換

boolean 

  true  flase

相關文章
相關標籤/搜索