一 Java語言基礎(chǔ)
1 進制的了解及轉(zhuǎn)換
進制就是進位制,是人們規(guī)定的一種進位方法。幾進制就是表示某位置的數(shù)到幾時就進一位,二進制就是逢2進1,八進制就是逢8進1,十進制就是逢10進1,十六進制就是逢16進1。
二級制的數(shù)據(jù)表現(xiàn)形式 由0和1組成 ,八進制是由0~7組成,十進制就是0-9組成,十六進制是由0·9,a·f組成,我們?yōu)榱朔奖銋^(qū)分它們 再數(shù)據(jù)前加上特殊的符號來區(qū)分 ,0b用來表示二進制 ,0 用來表現(xiàn)八進制 ,0x用來表現(xiàn)十六進制,整數(shù)默認(rèn)是十進制。
進制的轉(zhuǎn)換
任意進制到十進制的轉(zhuǎn)換
我們一般使用位權(quán)展開法來換算任意進制到十進制的轉(zhuǎn)換 就是用每一位的數(shù) 乘以他的進制和后面數(shù)值的次方 最后相加 得到的數(shù)值 就是十進制的數(shù)值
十進制到任意進制的轉(zhuǎn)換
除基取余法 除到商為0 然后余數(shù)反轉(zhuǎn)得到的數(shù)就是我們需要的轉(zhuǎn)化為該進制的數(shù) 轉(zhuǎn)化成什么進制 就除以什么 這個數(shù)就成為基
當(dāng)然人們?yōu)榱撕啽?也發(fā)明出了一種快速轉(zhuǎn)換法 這就是8421碼 在這種編碼方式中每一位二值代碼的1都是代表一個固定數(shù)值,把每一位的1代表的十進制數(shù)加起來,得到的結(jié)果就是它所代表的十進制數(shù)碼。
2 原碼補碼反碼
計算機所有數(shù)據(jù)的運算都是采用補碼進行的
原碼:就是二進制定點表示法,即最高位為符號位,“0”表示正,“1”表示負(fù),其余位表示數(shù)值的大小。
反碼:正數(shù)的反碼與其原碼相同;負(fù)數(shù)的反碼是對其原碼逐位取反,但符號位除外。
補碼:正數(shù)的補碼與其原碼相同;負(fù)數(shù)的補碼是在其反碼的末位加1。
3變量的概述及格式
變量是在程序執(zhí)行的過程中,在某個范圍內(nèi)其值可以發(fā)生改變的量,他在內(nèi)存中是一小塊區(qū) 域。定義變量的原因是用來不斷地存放同一類型的常量,并可以重復(fù)使用。
變量的定義格式
數(shù)據(jù)類型 變量名=變量值;
4 數(shù)據(jù)類型的概述及分類
變量是內(nèi)存中的一小塊區(qū)域,定義一個變量就是開辟一個內(nèi)存空間,我們?yōu)榱碎_辟一個合適的 內(nèi)存空間,所以就需要不同的數(shù)據(jù)類型來給內(nèi)存分配不同大小的內(nèi)存空間。
java中數(shù)據(jù)類型的分類分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型(類 接口 ),
基本數(shù)據(jù)類型分為數(shù)值型,字符型,布爾型。
數(shù)值型
整數(shù)型 字節(jié)數(shù) 范圍
byte 1(8bit) -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
浮點數(shù)
float 4(32bit) -3.40310^38 ~ 3.40310^38
double 8(64bit) -1.79810^308 ~ 1.79810^308
字符型 char 2(16bit) 0 ~ 2^16 - 1 = 65535
布爾型 boolean 1
整數(shù)默認(rèn)是int類型,浮點數(shù)默認(rèn)是double類型
數(shù)據(jù)類型轉(zhuǎn)換之隱式轉(zhuǎn)換
在數(shù)據(jù)相加的過程中數(shù)據(jù)類型會默認(rèn)轉(zhuǎn)換為更高級的類型
轉(zhuǎn)換規(guī)則
(1): boolean類型不能轉(zhuǎn)換為其他的數(shù)據(jù)類型
(2): byte,short,char—int—long—float—double
(3): byte,short,char之間不轉(zhuǎn)換,他們參與運算首先轉(zhuǎn)換為int類型
數(shù)據(jù)類型轉(zhuǎn)換之強制轉(zhuǎn)換
當(dāng)然有時候我們想要的運算結(jié)果再該類型的范圍內(nèi),但是計算機會自動轉(zhuǎn)換為更高級的類型,從而輸出報錯,這時候,我們就可以對他進行強制轉(zhuǎn)換。強制轉(zhuǎn)換的格式 在目標(biāo)數(shù)類型 變量名 = (目標(biāo)數(shù)據(jù)類型)(被轉(zhuǎn)換的數(shù)據(jù)),但是強制轉(zhuǎn)換會可能存在精度損失的問題,所以不建議經(jīng)常使用。
5 Java字符和字符串的運算
在ASCII碼表中對鍵盤上沒一個字符都有一個規(guī)定的值,我們在進行字符運算的時候,得到的運算結(jié)果就是這些值相加,在進行字符串和字符混合運算的時候需要注意,如果是字符先運算,那么他會相加成數(shù)值再合字符串組合到一起,如果是字符串在前,那他就會和字符直接拼接在一起,字符不做加法運算。
6 Java算數(shù)運算符的基本用法
運算符就是對常量和變量進行操作的符號,分為 算術(shù)運算符、賦值運算符、比較運算符、邏輯運算符、位運算符、三目運算符。
算數(shù)運算符分為
+,-1*,/,%,++,- -
我們運算時需要注意的是 整數(shù)相除只會得到整數(shù) 如果想要得到小數(shù) 需要使用浮點數(shù)
/獲取的是除法操作的商,%獲取的是除法造作的余數(shù),%運算結(jié)果的符號,取決于參與運算時左邊的符號
++和- -的用法
自加(++)自減(–)運算
++:自加。對原有的數(shù)據(jù)進行+1
–:自減。對原有的數(shù)據(jù)進行-1
在單獨使用時 放在操作數(shù)前面和后面的效果一樣
而當(dāng)參與運算時使用 放在操作數(shù)前面的時候 會先自增或自減,然后再參與運算,當(dāng)放在操作數(shù)后面的時候,先參與運算,然后再自增或者自減。
7 Java賦值運算符的基本用法
賦值運算符分為
= += -= *= /= %=
最基本的賦值符號= 是把右邊的數(shù)據(jù)賦值給左邊 +=是把左邊和右邊做加法,然后賦值給左邊
需要注意的是 賦值運算符要求左邊的數(shù)據(jù)必須是一個變量才可以
8 Java關(guān)系運算符的基本用法
關(guān)系運算符分為
== != < > <= >= instanceof
注意事項 無論你的操作是簡單還是復(fù)雜 結(jié)果都是boolean型(true或false)
9 Java邏輯運算符的基本用法
邏輯運算符分為
&(并且) | (或者) !(非) ^(異或) &&(短路與) ||(短路或)
需要注意的是 邏輯運算符一般用于連接boolean類型的表達式或值,在java中我們要表示一個數(shù)大于3并且小于6,不可以寫成3<6<x,應(yīng)該寫成 x>3 & x<6 。
表達式就是把運算符常量或者變量結(jié)合起來符合Java語法的式子。
邏輯運算符的特點
&邏輯與:有false則false。
|邏輯或:有true則true。
^邏輯異或:相同為false,不同為true。
!邏輯非:非false則true,非true則false。
特點:偶數(shù)個不改變本身。
邏輯運算符&&和&的區(qū)別
最終結(jié)果都是一樣的 而&&具有短路效果 如果左邊是false右邊就不執(zhí)行了 而&會兩邊都執(zhí)行再輸出結(jié)果 所以&&會速度快很多 || 同理 所以我們開發(fā)的時候常用&&和||
10 Java位運算符的基本用法
位運算符分為
&(與),|(或),^(異或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(無符號右移)
位運算符是直接對二進制補碼進行運算
&,|,^,~ 的用法
&:有0則0
|:有1則1
^:相同則0,不同則1
~:按位取反 0變1 1變0
位異或運算符的特點
^的特點:一個數(shù)據(jù)被另一個數(shù)據(jù)位異或兩次,該數(shù)本身不變。
<<:左移 空位補0,被移除的高位丟棄。
>>:右移 被移位的二進制最高位是0,右移后,空缺位補0;最高位是1,高位補1。
>>>:無符號右移 被移位二進制最高位無論是0或者是1,空缺位都用0補。
我們可以得到結(jié)論
<< : 把<<左邊的數(shù)據(jù)乘以2的移動次冪
>> : 把>>左邊的數(shù)據(jù)除以2的移動次冪
11 Java三元運算符的基本用法
三元運算符的格式
(關(guān)系表達式) ? 表達式1 : 表達式2;
int a=(10>20)?30:50; a=50
意思就是 如果關(guān)系表達式成立 則取第一個值 如果不成立 則取第二個值
三元運算符的執(zhí)行流程
計算關(guān)系表達式的值,如果為true, 運算后的結(jié)果是表達式1;
如果為false,運算后的結(jié)果是表達式2;
————————————————