1. 程式人生 > >JAVA基礎----變數,常量,運算子

JAVA基礎----變數,常量,運算子

一:資料型別
java資料型別分為簡單型別和引用型別。
以下為資料型別分類:
在這裡插入圖片描述
二:裝箱和拆箱
1.byte:初始值:0 包裝類:Byte; char:初始值:\u0000 包裝類:Character
short:初始值:0 包裝類:Character int:初始值:0 包裝類:Integer
long:初始值:0L 包裝類:Long float:初始值:0.0f 包裝類:Float
doubie:初始值:0.0d 包裝類:Double boolean:初始值:false 包裝類:Boolean
2.通過裝箱和拆箱操作,可以實現簡單型別與引用型別之間的轉換。
裝箱即將一個簡單型別轉換成對應的包裝型別。把一個簡單型別的值裝箱,就是建立一個對應的包裝類的例項,我們可以稱之為“箱子”,並將這個值複製給這個物件,裝箱後對應的包裝類的例項物件儲存在堆中。
拆箱即將一個包裝類的例項物件型別轉換成一個簡單型別,拆箱過程一般分成兩步,首先檢查這個物件例項是否為給定的值型別的裝箱值,然後把這個物件例項的值複製給值型別的變數。
裝箱轉換吧簡單型別轉為引用型別後,可以方便地呼叫相應物件實現的方法。值得注意的是,裝箱和開箱操作會導致額外的系統開銷
裝箱拆箱示例

public class TestBoxing{
public static void main{String[] args {
int i = 123;
Integer obj1 = i;//隱式裝箱
Integer obj2 = (Integer)i;//顯式裝箱
int j = obj1;//隱式拆箱
int k = (int)obj2;//顯式拆箱
System.out.println("The value-type value(j)="+j);
System.out.println("The value-type value(k)="+k);
System.out.printlin(The object-type value(obj1)="+ obj1.toString());
System.out.println(The object-type value(obj2)="+ obj2.toString());
}
}

在通過valueOf方法建立Integer物件的時候,如果數值在**[-128,127]**之間,便返回指向IntegerCache.cache中已經存在的物件的引用,即放入快取陣列;否則建立一個新的Integer物件。
三:變數和常量
1.變數分為例項變數:儲存在堆; 靜態變數static:儲存在方法區,不屬於物件,只屬於類本
身; 區域性變數:儲存在虛擬機器棧。其中區域性變數使用必須初始化,否則會報錯
示例:int a; //例項變數;
static double b;//靜態變數;
if(i==0){ int c = 1; } //區域性變數;
變數定義:變數名稱由字母、數字、下劃線(_)、美元符($)組成即識別符號(識別符號是嚴格定義大小寫的),但是不包括@、%、空格等,但是不能以數字、美元符號、下劃線開頭。
2.定義常量 大寫.final int A=10 第一次賦值後不能改變 在編譯時統一進行處理 ;
常量分類:數值型常量(整形或浮點型)、字元型常量(以‘’引起來的單個字元)、轉義字元常量(以‘\’開頭)、字串常量(以“”引起來的單個字元或多個字元)、布林型常量(true和false)、null常量(表示空,並非不存在)、使用者宣告常量。
注意:
(1)常量名一般大寫;
(2)第一次初始化賦值後不可改變其值;
(3)編譯時統一進行處理;而變數是在執行時才能知道它的值;
(4)關鍵字定義:語法: final 常量名 =值; //關鍵字:關鍵字是指Java中具有特殊功能的詞,變數、類和方法等在命名時應該避免去使用這些關鍵字。常用的關鍵字:Abstract、break、case、catch、char、continue、do、double、else、final、finally、float、for、if、import、instanceof、int、class、long、private、protected、public、return、short、static、this、throw、throws、transient、try、void、volatile、while等。
示例:
int int1 = 123;//整型常量;
double d1 = 12.3; //雙精度浮點型;
boolean b1 = true; //布林型;
三:運算子
在這裡插入圖片描述


運算子優先順序
示例:11: 0000 1011 左移<< 乘法112 0001 0110 右移>> 前面補0或1 0000 0101 無符號右移 >>> 只補0
按位異或 ~ 同為0 異為1
注意自增自減運算子在資料元前後 輸出不同

int a = 10;
a=a++;
System.out.println(a);//10
int b = ++a;
System.out.println(b);//11

OVER歡迎指正!