新手初入Java(二)數據類型、變量和常量以及拆包和

數據類型、變量和常量以及拆包和裝包

一、數據類型

Java數據類型分爲基本類型(primitive types)和引用類型(reference type),其中基本類型又分爲數值型、字符型、布爾型。引用類型又分爲類類型、接口類型、數組類型、null類型。這兩種大的類型包含了int,double,char,等許多。其關係如下圖:
數據類型
其中:

  • byte字節型1字節 8bit 最大存儲數據量是255,存放的數據範圍是-128~127之間。
  • short短整型2字節 16bit最大數據存儲量是65536,數據範圍是-32768~32767之間。
  • int整型4字節 32bit最大數據存儲容量是2的32次方減1,數據範圍是負的2的31次方到正的2的31次方減1。
  • long長整型8字節 64bit最大數據存儲容量是2的64次方減1,數據範圍爲負的2的63次方到正的2的63次方減1 。
  • 浮點型float單精度4字節 32bit數據範圍在3.4e-45~1.4e38,直接賦值時必須在數字後加上f或F。 如float=2.5f;
  • double雙精度8字節 64bit數據範圍在4.9e-324~1.8e308,賦值時可以加d或D也可以不加 。
  • char字符型用單引號 。
  • 布爾類型 boolean 布爾型true/false(只有真假兩種結果)。

簡單類型一般適合存儲少量數據,可以實現高效率處理。

引用類型的變量在堆棧(Stack)中存儲對數據(對象)的引用(地址),數據(對象)存儲在堆(Heap)中。對於引用類型,兩個變量可以引用同一個對象,因此對一個變量的操作可能影響另一個變量所引用的對象。
Java基本數據類型的相互轉化:

  • 自動類型轉換:容量小的數據類型可以自動轉化爲容量大的數據類型
    數據類型轉換

int–>float,long–>float,long–>double在轉換時可能會出現精度的損失,而箭頭方向表示無數據丟失的自動類型轉換。

二、變量和常量

變量: 變量表示存儲位置,每個變量必須具有一個類型。
變量的聲明和賦值: 在方法內部聲明的變量,稱爲"局部變量"。在類內部(但不在該類內部的任何方法中)聲明的變量,稱爲"成員變量",即類的字段。
局部變量的聲明和賦值格式如下:
(1)聲明變量:
數據類型 變量名[,變量名…];
數據類型 變量名=初值[, 變量名=初值…];
(2)變量賦值:
變量=要賦的值;
注: 一行代碼可以同時聲明多個同類型的變量,以半角符號(,)分隔。在聲明變量的同時,可以賦初值。
Java局部變量被訪問之前必須初始化,否則編譯時會報錯。因爲,不可能訪問一個未初始化的變量。
例如:
代碼如下:

public static void main(String[] args) {
    int i1;
    i1=123;
    int i2=456;
    double d1=12.3,d2,d3=45.6;
    System.out.println("i1="+i1);           //輸出i1;
    System.out.println("i2="+i2);           //輸出i2;
    System.out.println("d1="+d1);	    //輸出d1;
    //System.out.println("d2="+d2);         //編譯錯誤:變量d2被訪問之前沒有賦值
    System.out.println("d3="+d3);           //輸出d3;
}

運行結果如下:

運行結果

變量的作用域:
變量聲明的位置不同,其可被訪問的範圍也不同。變量的可被訪問範圍稱爲變量的作用域。Java語言中的變量按其作用域大致可以分爲類型成員變量、方法體局部變量(包括方法參數)、語句塊局部變量。

  • 類型成員變量:類型成員變量實在類類型中聲明的變量,包括靜態變量和實例變量,其有效範圍(作用域)爲類類型定義體內
  • 方法體局部變量:方法體局部變量是方法中聲明的變量,其有效範圍(作用域)爲方法體內。方法所帶的參數也屬於過程級局部變量,其有效範圍(作用域)爲方法體內
  • 語句塊局部變量:語句塊局部變量實在控制結構塊中聲明的變量。例如,if、for等語句中定義的變量,其有效範圍(作用域)爲控制結構塊內

常量:
(1)文本常量: 代碼中出現的文本形式常數,即文本常量,通常用來表示簡單類型、String類型和null類型的值
(2)整型常量: 整型字符串通常解釋爲int類型。如果加後綴L(大寫字母L,也可使用小寫字母l,但小寫字母l容易與數字1混淆,故不建議使用),則解釋爲long類型。例如:

int  int1 = 123;      //整型變量123爲int型
long  long1=123L;     //整型變量123L爲long型

編譯器通常將整數解釋爲十進制(基數爲10)數制,可以用前綴0x(或0X)將整數強制爲十六進制(基數爲16)數制,或使用前綴0(數字0)將整數強制爲八進制(基數爲8),如圖表2-3所示。注意,跟在前綴後面的數字必須符合數制。


數制 前綴 有效數值 示例
十進制(以10爲基數) 0~9 0、1、2、7、8、10、11
十六進制(基數爲16) 0x(或0X) 0 ~9、A ~F或0 ~9和a ~f 0x0、0x1、0x2、0x7
八進制(基數爲8) 0 0 ~7 00、01、02、03、010

(3)浮點數類型常量: 浮點數只能表示十進制數。浮點數有兩種表示方法,即標準表示法和科學記數法。浮點數又分爲單精度數和雙精度數。
(4)布爾類型常量: 布爾類型常量分別爲true和false。布爾類型常量可以賦值給布爾類型變量。例如:

boolean  b1 = true;

(5)字符類型常量: Java字符常量在單引號內包含所需的字符,例如’a’、‘A’。
(6)字符串類型常量: Java的字符串常量是用雙引號(" “)括起來的一串字符。如"Hello,World”

String str1="程序設計";
String str2="Hello World";

(7)用戶聲明常量: 在方法內部聲明的常量,稱爲"局部常量";在類(但不在該類內部的任何方法中)中聲明的常量,稱爲"成員變量",“常量字段”。

局部變量的聲明和賦值格式如下:
final 類型 局部變量名[=初值];
注意: 指定其值後,不能再對其進行賦值修改,否則會產生編譯錯誤。

三、拆包和裝包

(1)裝包: 即簡單類型=》包裝類
(2)拆包:即包裝類=》簡單類型
以下爲類型的轉換:

簡單類型 包裝類
int Integer
byte Byte
char Character
short Short
boolean Boolean
float Float
double Double
long Long

通過裝包和拆包操作機制,可以實現簡單類型和引用類型之間的轉換。

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