沒有黑眼圈的小浣熊初學Java基礎的筆記(一)
標題@沒有黑眼圈的小浣熊初學Java基礎的筆記(一)
註釋、識別符號、關鍵字
註釋
·單行註釋 //
·多行註釋 /* */
·文件註釋 /** */
資料型別
**java是強型別語言:**要求變數的使用要嚴格符合規定,所有變數都必須先定義後才能使用
java的資料型別分為2大類
基本型別(primitive type)
Byte
short
char
int
long
float
double
boolean
引用型別 : 類 、 介面、陣列
型別轉換
由於Java是強型別語言,所以要進行有些運算的時候,需要用到型別轉換
低---------------------------------------------------------------->高
byte,short,char->int->long->float->double (低到高,自動轉換)
高到低,強制轉換
int a = 3;
double b = 13.88;
int a = (double)b;
但是如果是以下方式運算時,不改變變數型別,仍然可以計算
short i = 3;
i = i + 3; //(編譯不通過),此時i+3應該為int型,如需編寫,應當改為i = (short)i+3
i += 3; //編譯正確,此方法計算時不會改變變數型別,仍為short型別
byte\char short三者之間做運算,結果應該為int型數
變數、常量
變數就是可變化的量!
Java變數時程式中最基本的儲存單元,其要素包括變數名,變數型別,和作用域。
type varName [=value] [,varName{=value}];
//資料型別 變數名 = 值;可以使用都考隔開來宣告多個同型別變數。
常量
變數的命名與規範
所有變數、方法、類名:見名知意
類成員變數:首字母小寫和駝峰原則:moneySalary ,除了第一個單詞小寫以外,後面的單詞首字母大寫 例:lastName;
區域性變數:首字母小寫和駝峰原則;
常量:大寫字母和下換線:MAX_VALUE;
類名:首字母大寫和駝峰原則:Man,GoodMan;
方法名:首字母小寫和駝峰原則:run(),runRun();
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-ouLhQtYb-1605917989758)(C:\Users\Wyy1998\Desktop\命名規範.png)]
運算子
Java語言支援如下運算子
算數運算子
表1
運 算 符 | 名 稱 | 說 明 | 例 子 |
---|---|---|---|
- | 取反符號 | 取反運算 | b=-a |
++ | 自加一 | a++:先取值再加一,或++a:先加一再取值 | a++ 或 ++a |
– | 自減一 | a–:先取值再減一,或–a:先減一再取值 | a-- 或 --a |
+ | 加 | 求 a 加 b 的和,還可用於 String 型別,進行字串連線操作 | a + b |
- | 減 | 求 a 減 b 的差 | a - b |
* | 乘 | 求 a 乘以 b 的積 | a * b |
/ | 除 | 求 a 除以 b 的商 | a / b |
% | 取餘(取模) | 求 a 除以 b 的餘數 a % b | a % b |
表 1 中,-a 是對 a 取反運算,a++ 或 a-- 是在表示式運算完後,再給 a 加一或減一。而 ++a 或 --a 是先給 a 加一或減一,然後再進行表示式運算。
int a = 12;
System.out.println(-a);
int b = a++;
System.out.println(b);
b = ++a;
System.out.println(b);
上述程式碼第 2 行是 -a,是把 a 變數取反,結果輸出是 -12。第 4 行程式碼是先把 a 賦值給 b 變數再加一,即先賦值後 ++,因此輸出結果是 12。第 6 行程式碼是把 a 加一,然後把 a 賦值給 b 變數,即先 ++ 後賦值,因此輸出結果是 14。
賦值運算子
賦值運算子是指為變數或常量指定數值的符號。賦值運算子的符號為“=”,它是雙目運算子,左邊的運算元必須是變數,不能是常量或表示式。
擴充套件賦值運算子
運算子 | 含義 | 例項 | 結果 |
---|---|---|---|
+= | 將該運算子左邊的數值加上右邊的數值, 其結果賦值給左邊變數本身 | int a=5; a+=2; | a=7 |
-= | 將該運算子左邊的數值減去右邊的數值, 其結果賦值給左邊變數本身 | int a=5; a-=2; | a=3 |
*= | 將該運算子左邊的數值乘以右邊的數值, 其結果賦值給左邊變數本身 | int a=5; a*=2; | a=10 |
/= | 將該運算子左邊的數值整除右邊的數值, 其結果賦值給左邊變數本身 | int a=5; a/=2; | a=2 |
%= | 將該運算子左邊的數值除以右邊的數值後取餘,其結果賦值給左邊變數本身 | int a=5; a%=2; | a=1 |
example:
int x, y, z; // 定義3個整型的變數
x = y = z = 5; // 為變數賦初值為5
x += 10; // 等價於x=x+10,結果x=15
y -= 3; // 等價於y=y-3,結果y=2
z *= 5; // 等價於z=z*5,結果z=25
x /= 4; // 等價於x=x/4,結果x=3
z %= x; // 等價於z=z%x,結果z=1
關係運算子
關係運算子(relational operators)也可以稱為“比較運算子”,用於用來比較判斷兩個變數或常量的大小。關係運算子是二元運算子,運算結果是 boolean 型。當運算子對應的關係成立時,運算結果是 true,否則是 false。
運算子 | 含義 | 說明 | 例項 | 結果 |
---|---|---|---|---|
> | 大於運算子 | 只支援左右兩邊運算元是數值型別。如果前面變數的值大於後面變數的值, 則返回 true。 | 2>3 | false |
>= | 大於或等於運算子 | 只支援左右兩邊運算元是數值型別。如果前面變數的值大於等於後面變數的值, 則返回 true。 | 4>=2 | true |
< | 小於運算子 | 只支援左右兩邊運算元是數值型別。如果前面變數的值小於後面變數的值,則返回 true。 | 2<3 | true |
<= | 小於或等於運算子 | 只支援左右兩邊運算元是數值型別。如果前面變數的值小於等於後面變數的值, 則返回 true。 | 4<=2 | false |
== | 相等運算子 | 如果進行比較的兩個運算元都是數值型別,無論它們的資料型別是否相同,只要它們的值相等,也都將返回 true。 如果兩個運算元都是引用型別,只有當兩個引用變數的型別具有父子關係時才可以比較,只要兩個引用指向的不是同一個物件就會返回 true。 Java 也支援兩個 boolean 型別的值進行比較。 | 44 97’a’ 5.05 truefalse | true true true false |
!= | 不相等運算子 | 如果進行比較的兩個運算元都是數值型別,無論它們的資料型別是否相同,只要它們的值不相等,也都將返回 true。 如果兩個運算元都是引用型別,只有當兩個引用變數的型別具有父子關係時才可以比較,只要兩個引用指向的不是同一個物件就會返回 true。 | 4!=2 | true |
邏輯運算子
邏輯運算子把各個運算的關係表示式連線起來組成一個複雜的邏輯表示式,以判斷程式中的表示式是否成立,判斷的結果是 true 或 false。
邏輯運算子的用法、含義及例項
運算子 | 用法 | 含義 | 說明 | 例項 | 結果 |
---|---|---|---|---|---|
&& | a&&b | 短路與 | ab 全為 true 時,計算結果為 true,否則為 false。 | 2>1&&3<4 | true |
|| | a||b | 短路或 | ab 全為 false 時,計算結果為 false,否則為 true。 | 2<1||3>4 | false |
! | !a | 邏輯非 | a 為 true 時,值為 false,a 為 false 時,值為 true | !(2>4) | true |
| | a|b | 邏輯或 | ab 全為 false 時,計算結果為 false,否則為 true | 1>2|3>5 | false |
& | a&b | 邏輯與 | ab 全為 true 時,計算結果為 true,否則為 false | 1<2&3<5 | true |
^ | a^b | 異或 | ab相同時為false,ab不同時為true |
-
&& 與 & 區別:
&&運算:如果 a 為 false,則不計算 b(因為不論 b 為何值,結果都為 false)
-
|| 與 | 區別:
||運算:如果 a 為 true,則不計算 b(因為不論 b 為何值,結果都為 true)
位運算子
位運算子主要用來對運算元二進位制的位進行運算。按位運算表示按每個二進位制位(bit)進行計算,其運算元和運算結果都是整型值。
首先了解一下二進位制的原碼、反碼和補碼
反碼:
-
正數的反碼還是等於原碼
-
負數的反碼就是他的原碼除符號位外,按位取反。
補碼:
- 正數的補碼等於他的原碼
- 負數的補碼等於反碼+1。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-vurWSzwA-1605917989762)(C:\Users\Wyy1998\Desktop\二進位制補碼.png)]
位邏輯運算子
運算子 | 含義 | 例項 | 結果 |
---|---|---|---|
& | 按位進行與運算(AND) | 4 & 5 | 4 |
| | 按位進行或運算(OR) | 4 | 5 | 5 |
^ | 按位進行異或運算(XOR) | 4 ^ 5 | 1 |
~ | 按位進行取反運算(NOT) 正數取反:各二進位制碼按補碼各位取反 負數取反:各二進位制碼按補碼各位取反 | ~ 4 | -5 |
» | 右移位運算子 | 8»1 | 4 |
« | 左移位運算子 | 9«2 | 36 |
>>> | 無符號右移 | 3>>>1 | 1 |
<<< | 無符號左移 |
example:
int i=10;
System.out.printf("%x \n",~i);
System.out.printf("%d \n",~i);
可以看到輸出結果為 fff5和-11,前者將它轉換為二進位制是 1111111111110101。這個二進位制數的最高位為 1,表示這個數為負數。除最高位外,按位取反再加 1,即得到二進位制原碼 1000000000001011,用十進位制數表示即為 -11。
左位移運算子
左移位運算子為«
,其運算規則是:按二進位制形式把所有的數字向左移動對應的位數,高位移出(捨棄),低位的空位補零。
例如,將整數 11 向左位移 1 位的過程如圖 6 所示。
圖 6 對11左移1位運算過程
從圖 6 中可以看到,原來數的所有二進位制位都向左移動 1 位。原來位於左邊的最高位 0 被移出捨棄,再向尾部追加 0 補位。最終到的結果是 22,相當於原來數的 2 倍。(左移n位,相當於*2的n次冪)
右位移運算子
右位移運算子為»
,其運算規則是:按二進位制形式把所有的數字向右移動對應的位數,低位移出(捨棄),高位的空位補零。
例如,將整數 11 向右位移 1 位的過程如圖 7 所示
從圖 7 中可以看到,原來數的所有二進位制位都向右移動 1 位。原來位於右邊的最低位 1 被移出捨棄,再向最高位追加 0 補位。最終到的結果是 5,相當於原數整除 2 的結果。(右移n位,相當於*(1/2)的n次冪)
複合位賦值運算子
運算子 | 含義 | 例項 | 結果 |
---|---|---|---|
&= | 按位與賦值 | num1 &= num2 | 等價於 num 1=num 1 & num2 |
|= | 按位或賦值 | num1 |= num2 | 等價於 num 1=num 1 | num2 |
^= | 按位異或賦值 | num1 ^= num2 | 等價於 num 1=num 1 ^ num2 |
-= | 按位取反賦值 | num1 ~= num2 | 等價於 num 1=num 1 ~ num2 |
«= | 按位左移賦值 | num1 «= num2 | 等價於 num 1=num 1 « num2 |
»= | 按位右移賦值 | num1 |
List item
»= num2 | 等價於 num 1=num 1 » num2 |
條件運算子
Java 提供了一個特別的三元運算子(也叫三目運算子)經常用於取代某個型別的 if-then-else 語句。條件運算子的符號表示為“?:”,使用該運算子時需要有三個運算元,因此稱其為三目運算子。使用條件運算子的一般語法結構為:
result = <expression> ? <statement1> : <statement3>;`
其中,expression 是一個布林表示式。當 expression 為真時,執行 statement1, 否則就執行 statement3。此三元運算子要求返回一個結果,因此要實現簡單的二分支程式,即可使用該條件運算子。
運算子優先順序
優先順序 | 運算子 | 結合性 |
---|---|---|
1 | ()、[]、{} | 從左向右 |
2 | !、+、-、~、++、– | 從右向左 |
3 | *、/、% | 從左向右 |
4 | +、- | 從左向右 |
5 | «、»、>>> | 從左向右 |
6 | <、<=、>、>=、instanceof | 從左向右 |
7 | ==、!= | 從左向右 |
8 | & | 從左向右 |
9 | ^ | 從左向右 |
10 | | | 從左向右 |
11 | && | 從左向右 |
12 | || | 從左向右 |
13 | ?: | 從右向左 |
14 | =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= | 從右向左 |
ex:
--y || ++x && ++z;
這個表示式中包含了算術運算子和邏輯運算子。根據表 1 中列出的優先順序,可以確定它的執行順序如下:
① 先計算 y 的自減運算子,即 --y。
② 再計算 x 的自增運算子,即 ++x。
③ 接著計算 z 的自增運算子,即 ++z。
④ 由於邏輯與比邏輯或的優先順序高,這裡將 ② 和 ③ 的結果進行邏輯與運算,即 ++x && ++z。
⑤ 最後將 ④ 的結果與 ① 進行邏輯或運算,即 --y||++x&&++z。
作業:
1、在java中將60轉換為二進位制、8進位制、16進位制數
包機制、java DOS
package pkg1[·pkg2[·pkg3…]];
一般利用公司域名倒置作為包名:com.baidu.www
為了能夠使用某一個包的成員,我們需要在Java程式中明確匯入該包,使用“import”語句即可完成此功能
import package1[.package2…].(classname|*);
相關文章
- 【Java】留下沒有基礎眼淚的面試題,java初級面試筆試題Java面試題筆試
- 安卓初學基礎學習筆記安卓筆記
- Java基礎學習筆記Java筆記
- Java 初學者做的第一個微信小程式--關於Java基礎Java微信小程式
- Java基礎-學習筆記17Java筆記
- Java基礎-學習筆記07Java筆記
- Java基礎-學習筆記06Java筆記
- Java基礎-學習筆記05Java筆記
- Java基礎-學習筆記04Java筆記
- [今日白記]Vue基礎的學習筆記(一)Vue筆記
- Java基礎學習筆記 第一章Java筆記
- Java學習筆記01 - JavaSE基礎Java筆記
- python基礎學習筆記(一)Python筆記
- Java IO學習筆記四:Socket基礎Java筆記
- java基礎 -反射筆記Java反射筆記
- 初學Golang的筆記Golang筆記
- 沒有基礎也能學好Python的方法?Python
- 零基礎學Java?給初學者的建議Java
- 黑馬java基礎學習筆記第一天Java筆記
- 【Java】留下沒有基礎眼淚的面試題Java面試題
- 初學Java時沒有理解的一些概念Java
- 有沒有一起學 Laravel 教程的小夥伴!!!Laravel
- Java基礎 語法筆記Java筆記
- Java基礎語法筆記Java筆記
- 初學linux的fork筆記Linux筆記
- 基於docker 初學 MongoDb 學習筆記DockerMongoDB筆記
- java基礎 韓順平老師的 物件導向(基礎) 自己記的部分筆記Java物件筆記
- JAVA基礎學習筆記 一 計算機基礎、JAVA開發環境、開發注意事項Java筆記計算機開發環境
- 沒有Linux基礎的是如何學習Linux運維的?Linux運維
- Jquery基礎筆記一jQuery筆記
- 給Java初學者福利——Java語法基礎Java
- 適合零基礎初學者學習的Java順序Java
- CSS 基礎學習筆記CSS筆記
- node基礎學習筆記筆記
- Python基礎學習筆記Python筆記
- Web基礎學習筆記Web筆記
- Java 基礎程式設計筆記Java程式設計筆記
- (Java筆記)物件導向基礎Java筆記物件