Java的八種基本類型、隱式轉換、強制轉換以及特殊轉換

轉載至互聯網IT信息的博客http://dy.163.com/v2/article/detail/CVR84HUC0511N7OA.html

 

  (1)常用基本類型彙總

  八種基本類型彙總

  

  八種基本類型的字節空間和應用場景

  

  (2)byte類型

  基本介紹:

  byte數據類型是8位、有符號的,以二進制補碼錶示的整數;

  最小值是-128(-2^7);

  最大值是127(2^7-1);

  默認值是0;

  例如:byte bt = 120;

  (3)short類型

  基本介紹:

  short數據類型是16位、有符號的以二進制補碼錶示的整數

  最小值是-32768(-2^15);

  最大值是32767(2^15 - 1);

  默認值是0;

  例如: short st = 32700;

  (4)Int類型

  基本介紹:

  Int是最常用的整數類型。一個int類型的變量佔用4個字節(32位),最大表示範圍爲:-2^31~2^31-1,即-2147483648~2147483647。

  默認值是0;

  整型變量的注意事項:

  整數的直接量的類型默認爲int類型,如果直接寫出的整數超過了int的表達範圍,編譯報錯;

  int one = 80000000000000000000000;//超出範圍,編譯錯誤

  除了通常的十進制書寫形式,整數的直接量也經常寫16進制的相識(0X或0x開頭)或者8進制形式(O開頭);

  int two=529; //10進制

  int three=0x347a; //16進制

  int four=030; //8進制

  兩個整數相除,會捨棄小數的部分(不是四捨五入),結果也是整數;

  int data1 = 49;

  int data2 = 79;

  int dataT = data1/data2;//dataT結果爲0,因爲49除以79的整數部分爲0

  整數運算的溢出:兩個整數進行運算時,其結果可能會超過整數的範圍而溢出。正數過大而產生的溢出,結果爲負值;負整數過大而產生的溢出,結果爲正數

  int number=2147483647;

  int score=-2147483648;

  number= number+1;//結果爲-2147483648

  score = score -1; //結果爲2147483647

  (5)Long類型

  基本介紹:

  一般如果int類型的範圍不夠,可以使用long類型,一個long類型的變量佔用8個字節(64位),最大表示範圍爲:-2^63~2^63-1,即-9223372036854775808~223372036854775807

  默認值是0L;

  注意:如果用long類型,則需要以L或l結尾

  long gg = 44;//錯誤

  long gg = 44L;//正確

  long類型變量的典型應用場景:

  超過int類型範圍的數據,可以用long類型;

  比如:long yy = 3147483647L;

  (6)浮點數類型

  基本介紹:

  浮點數,就是小數,包括float和double;

  float默認值是0.0f;

  double默認值是0.0d;

  double類型的精度值是float類型的兩倍,一般場合使用double類型。

  例如:double tt = 4.7;

  浮點數的寫法:

  通常寫法,如:3.68、.3

  科學計數法,如:2.17E2

  默認的浮點爲double類型,如果需要表示float類型的直接量,需要加”f”或”F”後綴。例如:

  float ff=6.29; //編譯錯誤,應該寫成6.29f

  (7)char類型

  基本介紹:

  char類型事實上是一個16位無符號整數,這個值是對應字符的編碼;

  Java字符串類型採用Unicode字符集編碼。Unicode是世界通用的長度字符集,所有的字符串都是16位;

  Char類型變量賦值,可以採用如下三種形式:

  字符:形如’A’,變量中實際存儲的是該字符的Unicode編碼(無符號整數值),一個char型變量只能存儲一個字符。

  整型數據:範圍在0~65535之間的整數,變量中實際存儲的即該整數值,但表示的是該整數值所對應的Unicode字符。

  Unicode形式:形如’\u0041’,Unicode字符的16進制形式。

  例如:char cr1= 705;

  char cr2=’N’;

  char cr3=’\u0031’;

  特殊的字符:轉義字符

  

  (8)boolean類型

  基本介紹:

  boolean類型適用於邏輯運算,表示某個條件是否成立。一般用於程序的流程控制;

  boolean類型只允許取值true或false,true表示條件成立而false表示條件不成立。

  boolean默認值是false;

  例如:int a = 9;

  int b = 10;

  Boolean isBig = b>a;//輸出爲true

  (9)類型之間的轉換

  基本介紹:

  不同的基本類型直接可以相互轉換

  自動類型轉換(隱式類型轉換):從小類型到大類型可以自動完成。類型的大小關係如下:

  

  強制轉換:從大類型到小類型需要強制轉換符,但這樣轉換有可能會造成精度損失或溢出。

  int onef=654;

  int twof=957;

  long threef= onef + twof; //自動將int轉換爲long

  long numberf=9967L;

  int af=(int) numberf; //需要強制轉換符,由於9967在int範圍內,沒有產生溢出

  long scoref=5147483647L;

  int bf=(int) scoref; //會產生溢出,結果爲0

  double ttf=7.55684954444444444;

  float rrf=(float) ttf;//會造成精度的損失,結果爲7.5568495

  幾種特殊轉換:

  多種基本類型參與的表達式運算中,運算結果會自動的向較大的類型進行轉換;比如:

  int a = 4;

  double c = a/b;//結果爲0.4,自動轉換爲double類型

  byte、char、short三種類型實際存儲的數據都是整數,在實際使用中遵循如下規則:

  Int直接量可以直接賦值給byte、char和short,只要不超過其表示範圍。

  byte、char、short三種類型參與運算時,先一律轉換成int類型再進行運算。

  (10)代碼實例

  package com.example.var;

  public class DataType {

  public static void main(String[] args) {

  byte bt = 120;

  System.out.println(bt);

  short st = 32700;

  System.out.println(st);

  System.out.println(two);

  System.out.println(three);

  System.out.println(four);

  int dataT = data1/data2;

  System.out.println(dataT);

  System.out.println(number);

  System.out.println(score);

  long gg= 44L;//正確

  long yy = 3147483647L;

  System.out.println(yy);

  double tt = 4.7;

  System.out.println(tt);

  char cr1= 705;

  char cr2='N';

  char cr3='\u0031';

  System.out.println(cr3);

  int a = 9;

  Boolean isBig = b>a;

  System.out.println(isBig);

  long scoref = 5147483647L;

  System.out.println(scoref);

  float rrf=(float) ttf; //會造成精度的損失,結果爲7.5568495

  System.out.println(rrf);

  }

  }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章