javaSE基礎知識總結

1:變量的命名規則

標識符
就是用來給類、接口、變量、方法起名字用的
組成規則:
英文大小寫字母、數字、$、_
硬性要求:
數字不能開頭
不能使用關鍵字
軟性要求:
給類、接口起名字:如果是一個單詞、那麼首字母大寫。如果是多個單詞,每個單詞的首字母都要大寫  HelloWorld
給變量、方法起名字:如果是一個單詞、那麼首字母小寫。(例如:年齡age)
如果是多個單詞、第一個單詞首字母小寫、從第二個單詞開始,每個首字母都大寫(例如:getAge)

2:三元運算符

定義格式:
數據類型 變量名 = 比較表達式 ? 表達式A : 表達式B;
執行流程:
先判斷比較表達式,如果是true。那麼將表達式A進行賦值
如果是false。那麼將表達式B進行賦值

3:++和--

++:將變量進行自增
--:將變量進行自減
第一種情況:單獨使用。++或者--放在變量的前面或者是後面。沒有區別,都是將原值進行自增或者自減
第二種情況:參與運算使用
A:如果++或者--放在變量的前面,先將變量進行自增或者自減。然後再參與運算
B:如果++或者--放在變量的後面,先將變量原值拿出來使用。然後再自增或者自減


4:字符串的方法
    1.構造方法:
        String();               創建一個內容爲空的字符串對象
        String(char[] arr);     根據字符數組創建一個字符串對象
        String(byte[] arr);     根據字節數組創建一個字符串對象
        String(String s);       根據傳入的字符串來創建一個字符串對象
    2.判斷功能:
        boolean equals(String s);           比較兩個字符串內容是否相同,區分大小寫
        boolean equalsIgnoreCase(String s);     比較兩個字符串內容是否相同,忽略大小寫
        boolean startsWith(String s);           判斷當前字符串是否以傳入的字符串爲開頭
        boolean endsWtih(String s);         判斷當前字符串是否以傳入的字符串爲結尾
        boolean contains(String s);         判斷當前字符串是否包含傳入的字符串
        boolean isEmpty();                  判斷字符串是否爲空
    3.獲取功能:
        int length();                       獲取字符串的長度
        char charAt(int index);             獲取指定索引處的字符
        int indexOf(String s);              獲取傳入的字符串在當前字符串中第一次出現的索引位置
        int lastIndexOf(String s);              獲取傳入的字符串在當前字符串中最後一次出現的索引位置
        String concat(String s);                拼接字符串
        String substring(int index);            獲取字符串中的某一部分,從指定索引處開始,默認到字符串結尾
        String substring(int start,int end);        獲取字符串中的某一部分,從開始索引處到結束索引-1處(不包含end)
    4.轉換功能:
        char[] toCharArray();               將字符串轉成一個字符數組
        byte[] getBytes();                  將字符串轉成一個字節數組
        String toUpperCase();               將字符串轉成大寫
        String toLowerCase();               將字符串轉成小寫
    5.其他功能:
        String[] split(String regex);           將字符串按照指定規則進行切割
        String trim();                      去除字符串兩端的空白

字符串的內容不可以改變的舉例:
String str = “abc”;
str.substring(0 , 1);
打印  -- >  “abc”     輸出後的str還是原來的”abc”,並不是截取後的字符串,這就是因爲字符串的內容是不可以改變的,除非創建一個新的字符串對它進行接收,總之內容不可變(這也使得字符串可以共享使用),沒用的會被java中的垃圾回收機制所回收。 ArrayList集合,還有數組,就不一樣了,對數組或者集合進行刪除、排序等操作也不需要返回它也會受到改變
5:數組的特點,定義數組的格式.數組的初始化方式,

定義格式
動態初始化:
數據類型[] 數組名 = new 數據類型[長度];
實例:
int[] arr = new int[5];
int arr[] = new int[5];
注意兩種格式都可以!
靜態初始化:
完整格式:
數據類型[] 數組名 = new 數據類型[]{元素1,元素2,元素3,....};
實例:
int[] arr = new int[]{5,10,15,20};

錯誤的寫法:
Int a [] = new int[3]{1 , 2 , 3};

A:無論是動態初始化數組也好、或者是靜態初始化數組也好。都是有長度的
B:靜態初始化完整格式和動態初始化數組可以先聲明、然後再創建的
簡化格式:
數據類型[] 數組名 = {元素1,元素2,元素3,...};


6:數組的很多的方法

Arrays常用的方法
String toString(int[] arr);                         將數組內容轉成一個字符串
Example:
Int a[] = { 1 , 2 , 3};
Arrays.toString(arr);   打印-- >  [1 , 2 , 3]  (這是一個字符串)
void sort(int[] arr);                           對數組進行升序排序
Boolean equals(int[] a, int[] a2);                  如果兩個指定的 int 型數組彼此相等,則返回 true。
Int[] copyOfRange(int[] original, int from, int to);    將指定數組的指定範圍複製到一個新數組。
Int binarySearch(byte[] a, byte key);               使用二分搜索法來搜索指定的 byte 型數組,以獲得指定的值。
補充:
在做數組的某些題目的時候要善於運用標記(定義一個boolean flag)思想,和return的巧妙應用,例如:
Int a[] = {5 , 4 ,7 , 8 ,1 , 7 ,1 ,8 };判斷這個數組有沒有1這個數字,用這兩種方法處理起來就變的尤其簡單,此類型的題目還有我推薦幾個:
A.  判斷1- 100區間內的素數(可以用標記思想)
B.7期升級考試中的第二題可以用標思想和return 來解決(當然還有其他的辦法)
...
7:集合的遍歷,集合刪除的注意點
集合的遍歷:
public class Demo04ArrayListEach {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("迪麗熱巴");
list.add("古力娜扎");
list.add("瑪爾扎哈");

// 遍歷集合
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
集合的刪除注意事項:
刪除集合中所有的def字符串
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
//如果當前s這個字符串要是def的話。就刪除
if(s.equals("def")) {
list.remove(i--);
}
}

//輸出
System.out.println(list);
}
}
注意只有i--才能將集合裏的相關內容全部刪除
8:集合的很多的方法.
add(E e);               向集合中添加數據
get(int index);             獲取集合中指定索引上的元素
remove(int index);          刪除指定索引上的元素
set(int index,E e);             修改指定索引上的元素
size();                     獲取集合的長度

9:權限修飾符
public > protected > (default) > private
備註:(default)不是關鍵字default,而是什麼都不寫,留空。

10:瞭解類,抽象類,接口的特點
抽象類和接口的區別:
成員特點:
成員變量:
抽象類:既可以有變量也可以有常量(不可改變的量,一般大寫,final關鍵字修飾)
接口:只有常量(所以接口中默認給你加上public final ...)

成員方法:
抽象類:既可以有抽象方法、也可以有普通方法
接口:即可以有抽象方法 、還可以有默認方法 、 靜態方法(java 8+) 、私有方法(java 9+)

構造方法:
抽象類:有構造方法(因爲抽象類是可以創建對象的,而且有變量)
接口:沒有構造方法

關係區別:
類與類:繼承關係。java只支持單繼承、不能多繼承。但是可以多層繼承
類與接口:實現關係。可以單實現、也可以多實現。還可以繼承一個類的同時再去實現多個接口
接口與接口:繼承關係。可以單繼承、也可以多繼承

個人總結:
實現接口你必須重寫(@override)接口裏面的每個類,有時候接口裏面類非常多的時候你只需要用其中的某幾個類的時候那麼你就沒必要都去重寫接口裏面的每個類,那麼這個時候你就可以去創建一箇中間的類(此類必須是抽象類,因爲抽象類中的方法也可以被子類去重寫,而且不用全部重寫),所以這樣的話就可以讓繼承這個中間抽象類的子類去重寫他自己所需要的類。這樣就形成了一種設計模式     ----- >   適配器設計模式    AdapterDesignPattern

設計初衷:
抽象類完成的是一些共性的功能,但是抽取出的共性功能沒有具體的實現
接口完成的是一些特性的功能。

11:關於重載的定義,怎麼判斷方法重載
方法的重載
什麼是方法的重載
方法名相同
參數列表不同:
參數的個數不同
參數的類型不同
參數的順序不同
與返回值類型無關
與方法參數的名稱無關

12:關於java的註解
上課只提到了這一種註解:
@Override:寫在方法前面,用來檢測是不是有效的正確覆蓋重寫。
這個註解就算不寫,只要滿足要求,也是正確的方法覆蓋重寫。

註釋
註釋的作用:對程序進行解釋說明,註釋不會被運行的
註釋的分類:
單行註釋: // 註釋的內容
多行註釋: /* 註釋的內容 */
文檔註釋: /** 文檔註釋 */
註釋注意事項:
單行註釋可以進行嵌套
多行註釋不可以嵌套

13:接口和抽象類中的方法有什麼特點
接口中的方法:
一.在任何版本的Java中,接口都能定義抽象方法。
注意事項:
1. 接口當中的抽象方法,修飾符必須是兩個固定的關鍵字:public abstract
2. 這兩個關鍵字修飾符,可以選擇性地省略。
3. 方法的三要素,可以隨意定義。

二.從Java 8開始,接口當中允許定義靜態方法。

三.從Java 9開始,接口當中允許定義私有方法。
我們需要抽取一個共有方法,用來解決兩個默認方法之間重複代碼的問題。
但是這個共有方法不應該讓實現類使用,應該是私有化的。
解決方案:
1. 普通私有方法,解決多個默認方法之間重複代碼問題
格式:
private 返回值類型 方法名稱(參數列表) {
方法體
}
2. 靜態私有方法,解決多個靜態方法之間重複代碼問題
格式:
private static 返回值類型 方法名稱(參數列表) {
方法體
}



抽象類中的方法:
抽象類中可以沒有抽象方法。
有抽象方法的類一定是抽象類。
繼承一個抽象類,必須重寫它的抽象方法。除非子類也是一個抽象類。

14:面向對象
按照博哥出的題目難度,並且博哥說他出的題比考試題要難一點,完全掌握這一題應該就夠了
1.定義動物類:
        屬性:
        年齡
        行爲:
        喝水,吃東西(吃什麼不確定)
        2.定義游泳接口:
        行爲:
        游泳方法
        3.定義狗類:
        行爲:
        吃飯(啃骨頭)和 游泳(狗刨)
        4.定義羊類:
        行爲:
        吃飯(羊啃草)
        5.定義青蛙類:
        行爲:
        吃飯(吃蟲子)和 游泳(蛙泳)
        6.定義飼養員類:
        行爲:
        飼養動物:包括吃飯和喝水
        7.定義測試類:

        創建飼養員對象,飼養員調用三次飼養方法:飼養狗,飼養羊,飼養青蛙

        要求:
        1.子類重寫父類中的吃東西方法
        2.要求給狗和青蛙添加游泳的方法(實現游泳接口)
        3.飼養員類中定義一個方法,傳入動物類對象(父類),
        調用吃飯方法,如果有游泳方法也需進行測試

        4.打印如下格式的結果:

        喝水
        狗啃骨頭
        狗會狗刨游泳

        喝水
        青蛙吃小蟲
        青蛙會蛙泳

        喝水
        羊啃草
發佈了97 篇原創文章 · 獲贊 23 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章