Java基本數據類型、關鍵字
一、Java基本數據類型
Java有8中基本數據類型:byte\char \short \int\float\double\long\boolean
在說明每種類型大小前需要明確下面兩個概念:
-
字節=byte,是由8位帶符號的二進制數表示的。
-
字符=char,是由Unicode編碼表示
下面是每種類型的大小
-
byte 1字節 取值範圍 -128至127
-
char 2字節
-
short 2字節
-
int 4字節
-
float 4字節
-
double 8字節
-
long 8字節
-
boolean 2字節
關於byte取值範圍補充下面文章:
詳解java中的byte類型 - 進擊的石頭—GO! - 博客園總結來說就是Java採用的是有符號數即區別正負數,每個類型的二級製表示的首位是符號位0表示整數,1表示負數。負數轉換爲正常的十進制數是由二進制數取反再加一得到。
因此我們在進行類型轉換(特別是高精度轉低精度)要注意因爲精度變化導致的截斷。
二、Java常用關鍵字
-
this
表示當前對象,需要注意的是靜態變量和方法並不適用 -
super
表示父類對象 不能與this同時使用 -
instanceof
判斷某個對象是否是某個特定類的對象 -
transient
被該關鍵字修飾的變量在進行序列化的時候不會被序列化 -
static
修飾屬性則該屬性是類共享的,即被該類所有對象共享,在內存中只有一個副本,當且僅當類初次加載時被初始化。
修飾方法則該方法是類共享的。要注意的是類的靜態方法不能調用非靜態方法,但是本類的非靜態方法可以訪問類的靜態方法。靜態代碼塊在類初次被加載的時候,會按照static塊的順序來執行每個static塊,並且只會執行一次。
類加載的過程,類本身也是保存在文件中(字節碼文件保存着類的信息)的,java會通過I/O流把類的文件讀入JVM(java虛擬機),這個過程稱爲類的加載。JVM會通過類路徑(CLASSPATH)來找字節碼文件。需要的時候纔會進行類加載,生成對象時是先加載後構造。類變量,會在加載時自動初始化,初始化規則和實例變量相同。類中的實例變量是在創建對象時被初始化的。
Static修飾的屬性,是在類加載時被創建並進行初始化,類加載的過程只進行一次,也就是類變量只會被創建一次。
初始代碼塊就叫做靜態初始代碼塊,這個代碼塊只在類加載時被執行一次。
動態初始代碼塊,寫在類體中的“{}”,這個代碼塊是在生成對象時運行,這種代碼塊叫動態初始代碼
- final
修飾變量,變量賦值後不可再改變此時即爲常量,常量可以在初始化時直接賦值,也可以在構造方法裏賦值,只能在這兩種方法裏二選一,不能不爲常量賦值。靜態常量只能在初始化時直接賦值
修飾方法將不能被其子類覆蓋,保持方法的穩定不被覆蓋
Final修飾的類將不能被繼承,final類中的方法也都是final的 - abstract
修飾變量即編譯時類型。
修飾類即抽象類不可實例化
抽象類就相當於一個類的半成品,需要子類繼承並覆蓋其中的抽象方法,這時子類才又創建實例的能力,如果子類沒有實現父類的抽象方法,那麼子類也要爲抽象類。
修飾方法變成抽象方法,也就是隻有聲明而沒有實現,實現部分以”;”代替,需要子類繼承實現。
有抽象方法的類一定是抽象類。但是抽象類中不一定都是抽象方法,也可以全是具體方法。