標籤:變數 三目運算子 系統 double 符號位 大資料 空間 兩種 邏輯運算
一、在java中資料類型整體上分為兩大類:
1、基礎資料型別 (Elementary Data Type)/原生的資料類型(共八個)
整數型:byte(佔1位元組),short(佔2位元組),int(佔4位元組),long(佔8位元組)。【byte,shuort,int,long 唯一不同就是儲存空間容量大小不一樣,根據具體需求儲存的資料去選擇合適的資料類型,一般選用int即可】
浮點型:float(佔4位元組),double(佔8位元組)
字元型:char(佔2位元組)
布爾型:boolean(佔1位)
2、引用資料類型/對象資料類型
類、介面、數組
整數類型(byte,short,int,long)
整型常量的四種表示形式:
① 二進位整數:0B或0b開頭(Java7的新特性),如:int a = 0B10100;
② 八進位整數:要求以0開頭,如 int a = 0157;
③ 十進位整數:如:int a = 100;
④ 十六進位整數:要求0X或0x開頭,如int a = 0xFFFFF123;
Java語言的整型常量預設是int型,聲明long型變數後加上‘l’或‘L,因小寫l容易和數字1相混淆,建議使用大寫L。
預設情況下,一個整型的字面量預設是int類型.
小數類型(float,double):
表示小數類型又稱為浮點類型,其中float表示單精確度類型,double表示雙精確度類型,但是二者都不能表示精確的小數。
Java的浮點類型常量有兩種表現形式:
a,十進位形式: 例如:3.14 ,168.0, .618
b,科學計數法形式: 例如:3.14e2, 3.14E2, 1000E-2
科學計數法運算式返回的結果是double類型。
預設情況下,一個浮點類型的字面量預設是double類型.若要聲明一個常量為float型,則需在常量後加上f 或 F,double常量後面的D或d可省略。
注意:Java裡只有浮點型的變數才可以接受科學計算式結果.
字元類型(char):
字元,字母和符號.
char類型:表示16位的不帶正負號的整數或者Unicode字元,Java對字元採用Unicode字元編碼。
Unicode收集了世界上所有語言文字中的符號,是一種跨平台的編碼方式,Java的字元佔兩個位元組,可以表示一個漢字。
char常量2中表示方法
1.直接把需要的字元賦值給變數,如: char a=‘A‘;
2.用十進位或者十六進位作為賦值,如 char a=65;得到的值為 ‘A‘。
十六進位,如:char a=‘\u0041‘;
基礎資料型別 (Elementary Data Type)轉換
在8大基礎資料型別 (Elementary Data Type)中,boolean不屬於數實值型別,不參與轉換.
一般的,byte,short,char不參與轉換操作.我們直接把byte,short,char直接付給int類型.
自動類型轉換,也稱為“隱式類型轉換”:
當把小資料範圍類型的數值或變數賦給另一個大資料範圍類型變數,系統可以完成自動類型轉型
byte b= 1;short s=b;//小轉大int i= s;long l=i;float f = l;double d= f;System.out.println(d); //1.0
強制類型轉換,也稱為“顯示類型轉換”:
當把大範圍類型的數值或變數賦給另一個小範圍類型變數時,此時系統不能自動完成轉換,需要加上強制轉換符,但這樣的操作可能造成資料精度的降低或溢出,所以使用時要格外注意。
double d = 1.23d;int i =(int)d;System.out.println("result="+i); //result=1
運算式類型的自動提升當一個算術運算式中包含多個基礎資料型別 (Elementary Data Type)(boolean除外)的值時,整個算術運算式的資料類型將在資料運算時出現類型自動提升,其規則是:
所有的byte、short、char類型被自動提升到int類型;
二、算數運算
這裡主要討論下 ++和--
++和--詳解: 都只能操作變數,不能操作常量.
++: 表示當前操作變數自己累加1.
--: 表示當前操作變數自己減去1.
--------------------------------------------------------------------
自增:++,遞增操作符,使變數值增加1,有前置和後置之分,只能操作變數。
自減: -- ,遞減操作符,使變數值減去1,有前置和後置之分,只能操作變數。
自增和自減具體操作是一樣的,僅僅是一個是加1,一個是減1而已,現在單講++:
代碼 result ++和 ++result,都將使result變數的值加1。
唯一的區別是:
前置(++result): 表示對result加1之後的結果進行運算,
後置(result++): 表示對result變數加1之前的值(原始值)進行運算。
如果僅僅執行簡單的遞增操作(唯寫result++或++result),那麼選用任意一個都可以。
比較子:
用於比較兩個變數或常量之間的關係,比較子的結果是boolean類型,其操作格式為:
boolean result = 運算式A 比較子 運算式B;
三元運算子:
文法格式:X ? Y :Z;
其中x為boolean類型運算式,先計算X的值,若X結果為true則整個三目運算運算式的結果是Y,否則就是Z。三目運算子結果的類型由Y和Z決定。
邏輯運算子:
&:表示並且,當運算元A和B都為true結果才為true,否則結果result 是false。
&&:和&結果相同,具有短路效果,如果左邊運算元A是false,result 一定為false,且不運行B的運算。
|:表示或者,A和B都為false結果result為false,只要有A或B是true,結果就是true。
||:和|結果相同,具有短路效果,如果左邊運算元A是true,result一定為true,且不運行B的運算。
^:判斷A和B是否不同,不同則為true,相同則為false。
!:取反,!true結果是false,!fasle結果是true。
位元運算符:
<<:將運算元的二進位碼整體左移指定位元,左移之後的空使用“0”來補充。
>>:將運算元的二進位碼整體右移指定位元,右移之後的空使用“符號位”來補充:
若是正數使用“0”補充;
若是負數使用“1”補充;(操作負數:取反,求補,操作,取反,求補)
>>>:將運算元的二進位碼整體右移指定位元,右移之後的空位使用“0”來補充。
運算子操作的優先順序:
java資料類型和運算