標籤:賦值運算 沒有 強制類型轉換 開發工具 ima 聲明 搜尋 構造方法 格式
1. jdk,jre,jvm之間的關係
JVM是Java虛擬機器,是Java跨平台的重要保障,JVM實現Java跨平台的前提,可以針對不同的作業系統,有不同的JVM。
可以說Java語言是跨平台的,但JVM不是。
JRE是Java運行時環境,包含JVM+核心類庫。
JDK是Java開發套件,包含開發工具+JRE。
2. Java的分類 - JAVASE、JAVAEE、JAVAME
JavaSE為標準版,JavaEE為企業版,JavaME為微型版
3. Java中關鍵的保留字
Java中有兩個關鍵字目前沒有用,為goto和const,在Java中,所有的關鍵字為小寫。
4. 標識符
標識符規則:可以使用字母,數字,_ ,以及貨幣符號 $,在Java中可以使用中文命名,但建議不用使用,不能使用關鍵字,也不能以數組開頭,注意區分大小寫,要見名知意
5. 駝峰命名法
- 類名和介面名,如果有多個單片語成,那麼每個單詞的首字母要進行大寫,如
HelloWorld
- 變數名和方法名,如果有多個單片語成,那麼第一個單詞的首字母要小寫,其餘的單詞開頭的首字母要大寫,如
helloWorld
- 常量名,無論有多少個單片語成,所有字母都是大寫,強調一點的是每個單詞之間要以 _ 隔開,如
HELLO_WORLD
- 包名,無論有多少個單片語成,所有的字母都是小寫,強調一點的是每個單詞之間用以 . 隔開,如
cn.dashucoding.com
6. 註解
在Java中的註解是用來解釋說明代碼的作用,有何用途,作為一名合格的程式員,必須懂得給代碼添加註解。
單行注釋
// 注釋文字
多行注釋
/*注釋文字*/
文檔注釋
/**注釋文字*/
文檔注釋中的文字是可以提取出來形成文檔的
7. 字面量
字面量:指的是在電腦中不可變的值
1.整數常量(所有的整數)
2.小數常量(所有的小數)
3.字元常量(將一個字母、數字、符號,用 ‘’ 標識起來)
4.字串常量(將一個或者多個字元用 “” 標識起來)
5.布爾常量(true和false)
6.空常量(null)
8. 進位
二進位:以0b/0B作為開頭 (0~1,滿2進1)
八進位:以0作為開頭(0~7,滿8進1)
十進位:沒有特殊標識(0~9,滿10進1)
十六進位:以0X/0x作為開頭(0~9,a~f,滿16進1)
進位間的轉化
十進位轉二進位:不斷除以2,然後取餘數
二進位轉十進位:從最低位依次乘以2的位次次冪,然後求和
同理:
十進位轉其他進位:除以對應的進位數,然後取餘數
其他進位轉十進位:從最低位依次開始,按位次乘以進位的位次次冪,然後求和
二進位轉八進位,也是從低位開始,每三位二進位為一組,產生一個八位元字,最高位不足三位,就補0,湊齊三位即可。
口訣:三變一
八進位轉二進位,每一位八位元都會產生三位位元字,不足三位就補0即可。
口訣:一變三
同理
二進位轉十六位進位:口訣為四變一
十六位進位轉二進位:口訣為一變四
9. 變數
格式:
資料類型 變數名 = 資料;int i = 2;// 變數的聲明int i;// 變數的賦值i = 2;// 儲存bit為最小單位,8位為1位元組(byte,簡寫為B)
資料類型
資料類型:基礎資料型別 (Elementary Data Type) 和 引用資料類型
基礎資料型別 (Elementary Data Type)
byte-1 short-2 int-4 long-8
float-4 double-8 char-2 boolean
long---l float---f
引用資料類型
引用資料類型:數組,類,介面
10. 資料類型的轉換
資料類型的轉換:
- 自動類型轉換 / 隱式轉換
- 強制類型轉換 / 顯式轉換
自動類型轉換:小的類型可以自動轉為大的類型
char可以轉換為int,long可以轉換為float,其他往前轉換,可能產生精度損失
// short char // ok 可行 字面量如果在範圍內允許轉化short a = ‘b’;char c = 97;// not 不可行 可能超過範圍,所以不允許轉化char c = ‘a’;short b = c;
強制類型轉換:大類型強制轉化為小類型,會可能會導致資料丟失精度
// 強制類型轉換double d = 3.14int i = (int)d;
11. 運算子
+ - * / % ++ --
++ / -- 自增/自減
int j = i++; // j = i ; i++int j = ++i; // ++i ; j = ++i
賦值運算子
= += -= *= /= %= &= |= ^= <<= >>= >>>=
關係運算子
> < >= <= == !=
邏輯運算子
& 與Or 或Not 非^ 亦或&& 短路與|| 短路或短路 表示如果前面的運算式正確,後面的就不再運行&&:前邊的運算式結果為false,後面的就不再運行||:前面為true,後面就不再運行
位元運算
& | ^ << 左移 >> 右移 >>> 無符號右移 ~ 取反
&,將1看作true,將0看作false,0&任何數為0,1&奇數為1,1&偶數為0。
| ,有1為1。
三元運算子
格式:
邏輯值?運算式1:運算式2
運算子的優先順序
() ~ ++ -- ! * / % + - << >> >>> 關係 邏輯 & | ^ 三元 賦值
一元運算 > 二元運算 > 三元運算 > 賦值
12. 流程式控制制
if,if-else, if-else if
分支結構
if(邏輯值){代碼塊;}
if(邏輯值){代碼塊;} else {代碼塊;}
switch(邏輯值){case 值:代碼塊;break;case 值:代碼塊;break;...}
switch支援byte/short/char/int/String
while(邏輯值){代碼塊;}
do{代碼塊;} while(邏輯值);
while, do-while
for(定義迴圈變數; 控制條件; 改變迴圈變數){ 代碼塊;}
13. break和continue
break:表示終止當前的一層迴圈結構
continue:表示跳過當前一次迴圈繼續下一個迴圈
14. 數組
格式:
資料類型[] 數組名 = new 資料類型[長度];
資料類型[] 數組名 = new 資料類型[]{元素1, 元素2, 元素3...};
int[] arr = new int[]{2,3,4,5,6};
int[] arr = {2,5,7,8,9};
數組的應用
- 數組名[下標]
- 數組名.length
- 遍曆數組
- 擷取數組中最值
- 數組的排序
- 反轉數組
- 數組元素的尋找
for(int i = 0; i < arr.length; i++){System.out.println(arr[i]);}
for(int i : arr){System.out.println(i);}
// 冒泡排序for(int i = 1; i < arr.length; i++){for(int j = 1; j <= arr.length - i; j++){ if(arr[j - 1] > arr[j]){ int temp = arr[j - 1]; arr[j - 1] = arr[j]; arr[j] = temp; } }}
// 選擇排序for(int i = 1; i < arr.length ; i++){ for(int j = i; j < arr.length; j++){ if(arr[i - 1] > arr[j]){ int temp = arr[i - 1]; arr[i - 1] = arr[j]; arr[j] = temp; } }}
數組:Arrays.sort, Arrays.toString, System.arraycopy , Arrays.copyOf
15. 記憶體
Java記憶體:
棧記憶體、堆記憶體、方法區、本地方法棧、PC計數器(寄存器)
棧記憶體用來儲存的是變數
堆記憶體用來儲存的是對象
16. 方法
格式:
修飾符 傳回值類型 方法名(參數列表){方法體;return 傳回值;}
方法的重載
方法名相同但參數列表不同
方法的傳值
方法的傳值,基本類型傳實際值,參考型別傳地址
17. 快速鍵
Ctrl + x 剪下Alt + / 快捷提示鍵Ctrl + Shift + o 導包Ctrl + Shift + f 調整格式Ctrl + F 搜尋Ctrl + D 刪除一行
18. 成員變數和局部變數
- 成員變數在類中,局部變數在方法中
- 成員變數作用在整個類中,局部變數只能在它的方法中,或者語句中
- 成員變數儲存在堆記憶體中,並自動賦予預設值;
- 局部變數儲存在棧記憶體中,不自動賦予預設值
構造方法,與類名同名,沒有傳回值,構造方法可以重載
this關鍵字,代表本類中的對象的引用
可以用this調用本來中的對應形式的構造方法
物件導向的特徵為封裝,繼承,多態
結語
- 下面我將繼續對
Java、 Android中的其他知識 深入講解 ,有興趣可以繼續關注
- 小禮物走一走 or 點贊
Java面試集合(四)