常量 Constant
在程序進行中,其值不可以發生改變java中常量的分類有字面值常量與自定義常量字面值常量:字符串常量 用雙引號括起來的內容
如:System.out.println("你好,再見");
整數常量: 所有整數 如:System.out.println(123);
小數常量: 所有小數 如:System.out.println(12.3);
字符常量: 用單引號括起來的內容,里面只能放單個數字,字母或符號,空格也算 如:System.out.println('1');
布爾常量: 比較特殊,只有true和false,同時也是關鍵字空常量: null
進制
進制就是人們規定的一種進全方法,對於任何一種進制--x進制,就表示某一位置上的數運算時是逢X進一。如:二進制逢二進一,八進制逢八進一,十進制逢十進一,十六進制就是十六進一。
十進制的由來是因為人類有十個手指。
二進制由0,1組成。表示形式以0b開頭(b可大寫也可小寫,JDK1.7版本就可以直接表示二進制了)。如:0b100 運行輸出結果為:4
八進制由0,1到7組成,表示形式以0開頭。如:0100 運行輸出結果為:64
十進制由0,1到9組成,整數默認是十進制。如:100 運行輸出結果為:100
十六進制由0到9,a,b,c,d,e,f,組成,表示形式以0x開對,大小寫均可。如:0x100 運行輸出結果為:256
進制越大,表示形式越短
進制轉換公式
X進制轉換十進制
系數:就是每一位上的數據
基數:x進制,基數就是x
權:在右邊,從0開始編號,對應位上的編號 即為該位的權
結果:把系數x基數的權次冪相加
如:二進制的0b1001 * 2 ^ 2 + 0 * 2 ^ 1 + 0 * 2 ^ 0 = 4
十進制轉X進制(任意進制)除積倒取余數
如:十轉八 64
8 / 64
8 / 8 余0
8 / 1 余0
0
除不了最后 余 1
結果就是 100
字節
1 byte = 8 bit
1 k = 1024 b
1 m = 1024 k
1 G = 1024 m
1 T = 1024 G
如:我們的硬盤500g = 500 * 1000 * 1000 * 1000 / 1024 / 1024 /1024 約等於465g
原碼,反碼與補碼
原碼就是二進制定點表示法,即最高位為符號位,“0”表示正,“1"表示負,其余位表示數值的大小(最高位為第八位,從后往前數,超過八位砍掉前面的數)
通過一個字節,也就是8個二進制位表示+7和-7
0(符號位) 0000111
1(符號位) 0000111
反碼就是正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外(不變)!反碼就是為了求補碼的
補碼就是正數的補碼與其原碼相同;負數的補碼則是在其反碼的末尾加1(注意要求負數的補碼要先求負數的反碼)
如:反碼: 補碼:
0 0000111 +7的反碼 0 0000111 +7的補碼
1 0000111 -7的原碼 1 1111001 -7的補碼
1 1111000 -7的反碼
變量
變量就是在程序執行過程中,在某個范圍內其值可以發生改變的量
變量的定義格式為:
數據類型 變量名(合法的標識符) = 變量值(也就是常量)
數據類型
java的數據類型分類為基本數據類型和引用數據類型
其中基本數據類型有4類8種,可分為:
整數型: 取值范圍
byte 占一個字節 -128到127(一個字節由八個開關組成)
short 占兩個字節 -2^15~2^15-1
int 占四個字節 -2^31~2^31-1 整數默認的數據類型就是int類型
long 占八個字節 -2^63~2^63-1 如果要標識long類型后面最后用大寫的L就行,因為小l太像1了
浮點型:
float 占四個字節 -3.403E38~3.403E38 (單精度) 想要用float類型要在后面加個F的標識,同樣,大小寫都行
double 占八個字節 -1.798E308~1.798E308 (雙精度) 小數默認的數據類型是double
字符型:
char 占兩個字節 0~65535
布爾型:
boolean也即 true和false
boolean理論上是斬八分之一個字節,因為一個開關就可以決定是true或者false了,但是java中boolean類型沒有明確指定它的大小
作用域:在同一個區域內不能使用相同的變量名局部變量在使用之前必須賦值一條語句里可以定義多個變量 如:int a,b,c,d,...;a = 1;b = 2;c = 3;d = 4;...
Conversion 轉換
數據類型轉換之強制轉換
int x = 3;
byte b =4;
b = (想轉換成的數據類型) (x + b)
注:強轉超過范圍會缺失精度
如:byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;byte與byte(或short,char)進行運算的時候會提升為int類型,兩個int類型相加 結果也是int類型,b1和b2是兩個變量,變量存儲的值是變化的,在編譯的時候 無法判斷里面具體的值,
相加有可能會超出byte的取值范圍
(進行混合運算時,byte,short,char不會相互轉換,都會自動類型提升為int類型,其他類型進行混合運算的是小的數據類型提升為大的。
如:byte,short,char -- int -- long -- float -- double
long: 8個字節float:占4個字節,IEEE 754規定float為32個二進制位,1位代表是符號位,8位代表是指數位,就是幾次方,00000000 - 11111111,也就是0-255,0代表0,255代表無窮大,
拋去0和255得1 到 254減127得到的范圍是 -126 到 127。23位代表是尾數位)
總結:所以float比long類型要大
char數據類型
取值范圍在0-65535.char類型數據可以存儲一個中文漢字
字符對應ASCLL碼表,如b,ASCLL碼表中對應的是int類型的98
任何數據類型用字符串用+號相連接都 會產生新的字符串
運算符
運算符就是對常量和變量進行操作的符號
常用運算符有:+ ,-,*,/,%,++,--,=;
+加號在java中有三種作用,代表正號,做加法運算,字符串的連接符相同數據類型相除只能得到相同的類型,整數相除只能得到整數 ,如果想得到小數,必須把數據變化為浮點數類型
/號 取商,% 號取余
%運算符注意事項(當左邊的絕對值小於右邊的絕對值時,結果是左邊。當左邊的絕對值等於右邊或是右邊的倍數時,結果是0.
當左邊的絕對值大於右邊的絕對值時,結果是余數.
%運算符結果的符號 只和左邊有關系,與右邊無關。
任何一個正整數 %2結果不是就是可以用來當作 切換條件)
++運算符注意事項單獨使用如:a++和++a沒有區別
當參與運算使用:如果++在前,會先加1,再賦值如果++在后,會先賦值再加1
賦值運算符:= 把右邊的常量賦值給左邊的變量,左邊必須是變量
+=運算符:
a = 3;
a += 4;
a = 7;
關系運算符:==,!=,>,>=,<,<=;
關系運算符又稱比較運算符和條件運算符。
注意:無論你的操作是簡單還是復雜,結果都是boolean類型,得到只有true和false.
= 等號是賦值,==等等號是比較。