1、 java變量
1.1 變量的含義
變量就是讓程式語言更好表達。
1.2 java中的變量
每一個變量都屬于一種資料類型
Java強類型語言,使用規則如下:
變量必須聲明,并且初始化以後才能使用;
變量必須有明确的類型;
變量不能重複的定義,即是同一個變量明不能重複的聲明類型;
變量初始化=聲明+指派;
聲明即使明确變量的資料類型;
未初始化使用變量,編譯報錯。
1.3 變量的作用域
在聲明的地方開始,到塊結束;離開變量的作用域,變量将會被收回。
一般一個{}表示一個塊,在塊之外調用就會報編譯錯誤,因為變量已經收回。
2、 進制轉換基礎
2.1 10進制
23678(10迚制) = 2*10000+3*1000+6*100+7*10+8*1 = 2*10^4 + 3*10^3 + 6*10^2 + 7*10^1 +8*10^0 = 23678 |
10稱做"基數",10^n(10的n次幂)被稱作"權" |
2.2 2進制
2進制是2作為基數,2^作為權;
0100 0001 = 2*2^6+2*2^0=65
2.3 補碼基礎
A、計算機中正數和負數之間的關系是取反加一:~3+1=-3(~3表示3取反),
0011 取反 1100 + 1 = 1101 第一個1是符号位表示負數,1101二進制對應十進制的-3;
B、補碼運算時封閉的:預算範圍包含在補碼範圍之内,超出範圍溢出如:
1111 + 1 = 0000
C、4位二進制補碼最多表示2^4(16)個數,數的範圍是-8~7;
8位二進制補碼最多表示2^8(256)個數,-128~127;
16位二進制補碼最多表示2^16(65536)個數,-32768~3276;
32位二進制補碼最多表示2^32個數,-2G~2G-1;
0000 1111 = 1*2^3+1*2^2+1*2^1+1*2^0=15; 正數
1111 1001 取反 0000 0110 +1 = 0000 0111 = 7 (-7)負數
計算機中二進制轉十進制:
以0開頭的直接将二進制轉換為十進制;
以1開頭,按位取反,末尾加1,轉換為10進制,取負号;
2.4 Java中的2進制規則
Java内部隻有二進制補碼,計算機内部資料以二進制補碼表示。
Java内部采用補碼運算,自動發送上溢出(乘法)和下溢出(除法)。
Java内部沒有十進制,但是java盡量按照人類的習慣輸入輸出。
補碼的負數,最高位為1,也叫符号位。
2.5 16進制
十六進制,16是基數,16^是權,十六進制是二進制的簡寫;
如11010010 = d2
以0開頭是八進制,以0x開頭的是十六進制。
3、 Java資料類型
Java中資料類型分為引用類型和資料基本類型,基本類型有8中。
3.1 8中基本資料類型
整型:byte、short、int、long
浮點型:float、double
字元型:char
Boolean型:boolean
3.2 整型
一個位元組8位補碼;
Byte 8位補碼,兩個位元組,表示範圍-2^7~2^7-1。
Short 16位補碼,4個位元組,表示範圍-2^15~2^15-1。
Int 32 位補碼,8個位元組,表示範圍-2G~2G-1。
Long 64位補碼,16個位元組,表示範圍-2^15~2^15-1。
數字字面量預設是int型,如果不超出聲明類型的範圍,可以給小類型直接指派。
Java底層byte、short按照32位計算,輸出的二進制擴充符号位為32為輸出。
Long型字面量要使用L字尾,字面量預設是int型,超出int數字範圍的的要加L結尾。
3.3 浮點數類型
浮點數原理:二進制科學計算法
10111=1.0111*(2^100) 100=4
Float 共32位(與int相同)其中1符号位,指數8位,位數32位,其精度是32位;小數以位數長度表示精度,故int的精度是31位比float的23位精度要高,但是int的範圍是-2^31~2^31-1,float的範圍是-2^128~2^128-1;
Int類型的資料表示的資料範圍比float的資料範圍小,但是精度比float的精度高。
Float的精度過低,是以一般很少用,一般用double類型。
Double類型占64位16個位元組,1符号位,11位指數,52位位數數。
Double的比int精準不如long,範圍卻遠遠大于long 浮點數的字面量預設是double
3.4 字元類型
字元型是16位無符号整型,是一個二進制數,這個數值是一個字元的Unicode編碼值;
Unicode是全球範圍内的編碼方法;
Java char的範圍是0~65535不能表示全部的Unicode,隻能表示Unicode的常用部分
程式中為一個字元指派,字元的字面量使用單引号,可以為char指派的有字元、數字、符号。
3.5 Boolean類型
4、 資料類型轉化
自動類型轉換
正方向,小類型到大類型的轉換會自動完成。自動類型轉換也叫"隐式類型轉換", 是自動發生的, 一般不需要處理。規則是:符号位會自動擴充, 負數補1, 正數補0, 保證補碼數值不變,注意:整數到浮點數轉換會損失精确度。
強制類型轉換
強制類型轉換,也叫顯示類型轉換, 是按照反方向迚行的轉換, 這種轉換會溢出, 或者損失精度,要注意資料的範圍。
5、 Java控制台輸出