JAVA基礎--JAVA語言組成01
2. 標識符
2.1. 定義:
就是用來起到 標識作用的符號;
(就是程序員對自己定義的東西起的名字)
2.2. 命名規則(語法規定的,必須遵守的):
1、可以由大小寫字母、數字、下劃線(_)、美元符號($)組成;
2、數字不能開頭;
3、關鍵字不能使用;
4、嚴格區分大小寫
合法的標識符:name; _Abc; a, A;;clasz;
非法的標識符:0nae;1name; class ;
2.3. 書寫規範:
駝峰法:
1、類名:首字母大寫;多個單詞,每個單詞首字母大寫; 如:Demo; XxxxYyyyZzzz;
2、方法名(函數名):首字母小寫,多個單詞,從第二個單詞開始,每個單詞首字母大寫; 如:xxxxYyyyZzzz
3. 註釋
3.1. 定義:
生活中的註釋:文言文;英語單詞;
Java中的註釋,就是對代碼起到解釋說明的文字;
(給開發者看得;JVM不會看,所以編譯的時候,不會編譯註釋的內容)
3.2. 寫法:
單行註釋://被註釋的內容,直到這一行結束
多行註釋:/* 被註釋的內容 */
文檔註釋:/** 被註釋的內容 */
作用是,可以讓被註釋的內容,被javadoc工具提取出來,生成一個幫助文檔;
3.3. 作用:
1、解釋代碼,提高代碼的可讀性;降低開發和維護的難度;
2、被註釋的內容不會被編譯,可以在排查錯誤使用,或者調整功能;
對於新手來說,
1、將思路和分析的過程用註釋寫出來,有助於理清思路;
2、養成良好的註釋的習慣,在面試的時候有用;
4. 常量
4.1. 定義:
就是定義之後不會改變的數據;
4.2. java中常量的分類:
數值型:
整數型:正數、負數、0;
浮點型(帶小數點的數):-3.4,0.0,7.8;
文本型:
字符型:用英文的單引號括起來的單個的字符;’2’;’a’;
字符串型:用英文的雙引號括起來的零個或多個的字符;”” ; “ ”; “a”;”123” ;“嗨!美女!”;
布爾型:只有兩個值:true(表示真,對) , false(表示假, 錯);
空值常量:null;
4.3. 計算機數值的表示(知道):
計算機只認識二進制的數據;
4.3.1. 進制介紹
生活中一般使用十進制計數,逢十進一,一個數字位上,最大是9;
進制,就是數字進位的規則;
x進制,就是逢x進一,一個數字為上,最大的數字就是x-1;
4.3.2. 二進制的由來
計算機中使用電信號工作,能夠準確表示的只有高電位和低電位;相當於開關的開和關;
一個數字位只能表示兩個數字,在計算機中,這個數據量叫做1bit;
一般使用8個數據位表示一個數字,稱為一個字節:
8bit = 1byte;(B)
1024 byte = 1kb;
1024kb = 1mb;
1024mb = 1Gb;
1024Gb = 1Tb;
1024Tb = 1 Pb;
4.3.3. 八進制和十六進制
八進制和十六進制,解決了二進制數字書寫太長的問題;
100:
二進制:加前綴:0b; 0b100;
八進制:加前綴:0; 0100;
十進制:默認沒有前綴;
十六進制:加前綴:0x; 0x100;
4.3.4. 進制轉換
任意進制轉換為十進制:位權展開法;
十進制轉換為任意進制:短除法;
快速轉換法:
4.3.5. 負數的二進制表示
4.4. 計算機字符的表示(編碼表):
計算機中只能識別二進制的數字;
A |
0 |
B |
1 |
C |
2 |
D |
3 |
BBC: 112
ABCD:0123
在要表示的字符和數字之間建立一個一一對應的關系,在底層還是通過數字表示;
保存這個對應關系的表格,就是編碼表;
常見的編碼表:ASCII;Unicode;GB2312;BGK
……
5. 變量
5.1. 變量的概念
可以改變的數據;
在Java中,變量指的是內存中的一塊空間,可以存放常量數據的;
5.2. java的數據類型
基本數據類型:
數值型:
整數型:
byte:一個字節;-128 ~ 127;
short:兩個字節:-2^15 ~ 2^15-1;
int:四個字節:-2^31 ~ 2^31-1;
long:八個字節:-2^63 ~ 2^63-1;
在Java中,整數默認都是int型的;
浮點型:
float:四個字節; -2^127 ~ 2^127;
double:八個字節; -2^1023 ~ 2^1023;
在Java中,浮點數默認都是double型的;
字符型(char):兩個字節; 0 ~65535;
布爾型(boolean):true false;
引用數據類型:後面數組的時候講; String 不是基本數據類型;
5.3. 變量的書寫格式
數據類型 變量名;
變量名 = 數值;
數據類型 變量名 = 數值;
使用變量,是通過變量名來使用的;
5.4. 變量的命名
變量名,是標識符;命名規則,和標識符的命名規則是一樣的;
書寫規範,在駝峰法中,和函數名的書寫規範一樣:
第一個單詞的首字母小寫;多個單詞從第二個單詞開始,首字母大寫;
一般標識符的命名最好都有意義;
5.5. 變量的使用註意事項
5.5.1. 變量都有使用範圍
5.5.2. 變量使用前,都要賦值
5.5.3. 給變量賦值,需要和變量的數據類型一致
5.6. 數據類型轉換
5.6.1. 自動類型轉換:
將取值範圍小的類型的數據,往取值範圍大的類型的變量中放,可以直接放進去,不會損失精度;
這種情況叫做Java的自動類型轉換;
byte --> short --> int --> long --> float --> double;
char -->int
5.6.2. 強制類型轉換:
將取值範圍大的類型的數據,往取值範圍小的類型的變量中放,有可能放不進去,會出現精度損失;
如果必須往裏面放,就需要使用一種方法:
小的範圍的數據類型 變量名=(小的範圍的數據類型)變量名;
這種情況叫做Java的強制類型轉換;
原因:
一個面試題:
Java中整數默認都是int的,要聲明一個long類型的常量,需要在數字後面加上字母:L(大小寫都可以,推薦大寫,方便識別)
Java中浮點數默認都是double的,要聲明一個float類型的常量,需要在數字後面加上字母:F(大小寫都可以)
6. 運算符
6.1. 算術運算符
就是用來對數據進行算術運算的符號;
+(加);-(減);*(乘);/(除);%(模運算:相當於取余運算);
參與運算的兩個數據,如果數據類型不一致,結果是取值範圍大的類型;
++:自增運算符;一元運算符,就是只有一個數據參與運算;
int a = 100;
運算符在運算的數據左邊,叫做左自增:++a;
左自增,就是在參與運算的數據的自身上進行加一運算;
運算符在運算的數據右邊,叫做右自增:a++;
- -:自減運算符;
自減運算符,原理和自增運算符一樣,不同之處是,進行的是減一運算;
自增自減運算符練習:
+ :當運算符兩邊任意一邊存在字符串時,它就是一個字符串連接符,作用就是將兩邊的數據連接成一個大的字符串;
練習:
總結:字符+字符是對應的ASCII上的數字 字符+字符串 字符串拼接
6.2. 賦值運算符
=: 表示將符號右邊的值賦值給符號左邊的 變量;
+=:-=;*=;/=;%=;
復合賦值運算符,其實是一種簡寫的形式;
a += b <=> a = a+b;
可以自動進行強制類型轉換:
6.3. 比較運算符
運算結果都是布爾型常量;
>;
>=;
<;
<=;
==:
!=;
所有的基本類型的數據,都可以通過 == 符號進行相等性驗證;
註意:區間判斷,不能連接著寫;
1.1. 邏輯運算符
&:與,相當於並且的意思,表示運算符兩邊的數據都為真,結果才是真;
&&:短路與,運算結果和&是一樣的;
|:或,系那個當與 或者的意思,表示運算符兩邊的數據,有一個為真,結果就是真;
||:短路或,運算結果和|是一樣的;
^:異或,表示運算符兩邊的數據不一樣,結果才為真,否則就是假;
上面的運算符都是二元運算符,而且參與運算的兩個數據和運算的結果都是布爾型的數據;
!:非;表示相反的意思;是一個一元運算符;
邏輯運算符練習:
邏輯運算表:!true = false; !false = true;
運算符左邊 |
運算符右邊 |
&(&&) |
|(||) |
^ |
true |
true |
true |
true |
false |
true |
false |
false |
true |
true |
false |
true |
false |
true |
true |
false |
false |
false |
false |
false |
&和&&的異同:
相同點:運算結果都一樣;表示的邏輯運算關系也是一樣的;
不同點:
&:不管符號左右兩邊的值是多少,兩邊都要進行運算;
&&:如果符號左邊為false,就不計算右邊;否則,右邊也要計算;
|和||的異同:
相同點:運算規則也是一樣的;運算結果也是一樣的;
不同點:
|:不管左右兩邊如何,兩邊都要計算;
||:如果左邊為真,結果一定為真,就不去計算右邊;否則,就要計算右邊;
問題:什麽時候使用&和|?
如果右邊一定要計算,就要使用& 和 |;
1.2. 三元運算符
格式:
變量名 = 布爾表達式 ? 表達式一 : 表達式二;
運算過程:
需要註意:三元運算符,必須有一個變量接收運算結果;
1.3 流程控制語句
<<:左移運算符:
>>:有符號右移(算術右移),運算前後,數字的正負號不改變;
總結:有符號右移運算,左邊空出來的都是用原來的符號位的數字補齊;
>>>:無符號右移(邏輯右移),右移後,左邊空出來的全部用0補齊;
&:按位與;
^:按位異或
按位^的應用
總結
上面代碼首先ab異或獲取到c的值,然後當c與a異或 獲取b 然後把b的值賦給a 然後 c與b異或獲取a 然後把a的值賦值給b 這樣就能獲取兩個數值的調換。
然後這樣有個缺點是必須要給c進行初始化,那麽為了節省內存空間 直接在ab兩個值之間進行計算,少去c的運算步驟
1. a與b異或獲取一個c 把c 賦給 a 2. a與b異或把酒相當於 c與b異或 獲取到a的值 然後把a的值賦值給b 3.a與b異或就相當與 c與a異或獲取b然後把值賦給a
~:按位取反:
JAVA基礎--JAVA語言組成01