Java有8中基本數據類型:byte\char \short \int\float\double\long\boolean
在說明每種類型大小前須要明確下面兩個概念:html
字節=byte,是由8位帶符號的二進制數表示的。java
字符=char,是由Unicode編碼表示this
下面是每種類型的大小編碼
byte 1字節 取值範圍 -128至127code
char 2字節htm
short 2字節對象
int 4字節blog
float 4字節繼承
double 8字節內存
long 8字節
boolean 2字節
關於byte取值範圍補充下面文章:
詳解java中的byte類型 - 進擊的石頭—GO! - 博客園
總結來講就是Java採用的是有符號數即區別正負數,每一個類型的二級製表示的首位是符號位0表示整數,1表示負數。負數轉換爲正常的十進制數是由二進制數取反再加一獲得。
所以咱們在進行類型轉換(特別是高精度轉低精度)要注意由於精度變化致使的截斷。
this
表示當前對象,須要注意的是靜態變量和方法並不適用
super
表示父類對象 不能與this同時使用
instanceof
判斷某個對象是不是某個特定類的對象
transient
被該關鍵字修飾的變量在進行序列化的時候不會被序列化
static
修飾屬性則該屬性是類共享的,即被該類全部對象共享,在內存中只有一個副本,當且僅當類初次加載時被初始化。
修飾方法則該方法是類共享的。要注意的是類的靜態方法不能調用非靜態方法,可是本類的非靜態方法能夠訪問類的靜態方法。
靜態代碼塊在類初次被加載的時候,會按照static塊的順序來執行每一個static塊,而且只會執行一次。
類加載的過程,類自己也是保存在文件中(字節碼文件保存着類的信息)的,java會經過I/O流把類的文件讀入JVM(java虛擬機),這個過程稱爲類的加載。JVM會經過類路徑(CLASSPATH)來找字節碼文件。須要的時候纔會進行類加載,生成對象時是先加載後構造。類變量,會在加載時自動初始化,初始化規則和實例變量相同。類中的實例變量是在建立對象時被初始化的。
Static修飾的屬性,是在類加載時被建立並進行初始化,類加載的過程只進行一次,也就是類變量只會被建立一次。
初始代碼塊就叫作靜態初始代碼塊,這個代碼塊只在類加載時被執行一次。
動態初始代碼塊,寫在類體中的「{}」,這個代碼塊是在生成對象時運行,這種代碼塊叫動態初始代碼