以前咱們提到過Java是強類型語言,也就是說咱們必須爲每個變量聲明一種類型。Java的數據類型可分爲兩種:基本數據類型和引用數據類型。在Java中有8中基本數據類型(primitive type):java
a、整數型: byte 佔 1個字節(8個bit) 範圍-128——127 short 佔 2個字節(16bit) 範圍-2^15——2^15-1 int(默認) 佔 4個字節(32bit) 範圍-2^31——2^31-1 long 佔 8個字節(64bit) 範圍-2^63——2^63-1(超int範圍時在後面加l,最好寫大L,小l與1太像容易混淆) b、浮點型:(小數) float單精度 佔 4個字節(32bit) 3.4E-38——3.4E+38(書寫時在後面加f,如1.2f) 最多精確表示7位小數 float的數據範圍比long大,二者底層存儲結構不一樣 IEEE 754 規定 float:從左往右 第1位表明符號位, 第2-9位表明指數位,0-255,0表明0,255表明無窮大,1-254都減去127, 變爲 -126——127 第9-32位表明尾數位 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM(signl是符號位,f是23bit的小數部分,exponent是指數部分) 最後結果:(-1)^(sign)*1.f*2^(exponent) double雙精度(默認) 佔 8個字節(64bit) 範圍 最多精確表示15位小數 long double 佔16個字節(128bit) c、字符型: char 佔 2個字節(16bit) 範圍 d、布爾型: boolean 沒有明確指定的大小(理論上佔八分之一個字節),由於一個開關就能夠決定true和false(書寫時也可在後面加,但通常不加)
在Java中,每個變量屬於一種類型(type。在聲明變量時要指定類型),示例:函數
byte a = 12; short b = 12; int x=(int)(9.99L);//強制類型轉換 int c, w, r = 12;//一條語句能夠定義多個變量 long d = 2123453553345345445l; float e = -9.0f; double f = 12.2; char g = 'w'; boolean h = true;
int var; var=1;//初始化
Java中常量可分爲兩種:字面值常量和自定義常量code
字符串常量 用""括起來的內容 整數常量 全部整數 小數常量 全部小數,操做小數有必定的弊端,小數位不夠精確(float和double的特殊數據存儲結構) 字符常量 用單引號括起來的內容,只能放單個數字,字母或符號(單個漢字也能夠) 布爾常量 只有true和flase 枚舉常量 enum 枚舉類型名{常量1,常量2,常量3,.......}; 空常量 null 枚舉類型的使用: enum Size{SMALL,MEDIUM,LARGE}; Size s=Size.MEDIUM;
final int A=1;
final表示這個變量只能被賦值一次,且被賦值以後就不能更改了,通常來講常量名使用大寫(注意const是Java的保留字,可是目前並無被使用)對象
運算符:對常量和變量進行操做的符號。Java的運算符與C基本一致(運算符的優先級別也和C一致,在此再也不贅述):字符串
運算符:對常量和變量進行操做的符號 a、算術運算符:一元運算符、二元運算符 + ,- ,*,/,%,++, -- ++、--:都是單獨使用 整數相除只能獲得整數,若是想獲得小數,能夠把數據(至少其中一個)變成浮點型 %:任何正整數%2結果不是0就是1,能夠用來切換條件 b、 賦值運算符 基本賦值運算符:= 擴展的賦=值運算符:+=,-=,/=,%=(自動類型轉換) c、關係運算符 ==,<=,<,>,>=,!=(結果爲布爾類型) d、邏輯運算符 &,|,^,! &&、||具有短路的效果(左邊爲false右邊就不執行了;左邊爲true右邊就不執行了) e、位運算符 &、|、^、~(按位取反)、>>>(左補齊0)、>>(保留符號位)、<<(右補齊0) a^b^b =a; f、三元運算符 (關係表達式)?表達式1:表達式2
運算符示例,你能夠運行一下:虛擬機
System.out.println(-13%5);//結果-3 System.out.println(b1++);//結果2 System.out.println(++b2);//結果4 int x=5,y=6,z=8; x=x++ + ++x + x+12;// ++、--:放在操做數前面時,先自增自減再參與運算;在操做數後面時,先運算再自增或自減 System.out.println(x); System.out.println(!true); System.out.println(x>2&x<32); System.out.println(x>2|x<12); System.out.println(x>2^x<30);//異或,相異爲真 System.out.println(2>3?1:2); //不使用第三方變量交換變量值 x=x+y; y=x-y; x=x-y;//有可能會超出數據範圍,損失精度 x=x^y; y=x^y; x=x^y;// //其實仍是使用第三個變量的最好。。。
Math類包含了各類各樣的數學函數,例如:數學
double x=Math.sqrt(4);//4^2
若是你須要在程序中頻繁使用Math這個類,可能會對在方法前加上Math感到厭煩,此時你能夠這樣作:it
import static java.lang.Math.*; 此時在程序中,你能夠直接調用: System.out.println("4^2"+sqrt(4));