## final 關鍵字java
**final關鍵字主要用在三個地方:變量、方法、類。**性能
1. **對於一個final變量,若是是基本數據類型的變量,則其數值一旦在初始化以後便不能更改;若是是引用類型的變量,則在對其初始化以後便不能再讓其指向另外一個對象。**優化
2. **當用final修飾一個類時,代表這個類不能被繼承。final類中的全部成員方法都會被隱式地指定爲final方法。**this
3. 使用final方法的緣由有兩個。第一個緣由是把方法鎖定,以防任何繼承類修改它的含義;第二個緣由是效率。在早期的Java實現版本中,會將final方法轉爲內嵌調用。可是若是方法過於龐大,可能看不到內嵌調用帶來的任何性能提高(如今的Java版本已經不須要使用final方法進行這些優化了)。類中全部的private方法都隱式地指定爲final。.net
## static 關鍵字code
**static 關鍵字主要有如下四種使用場景:**對象
1. **修飾成員變量和成員方法:** 被 static 修飾的成員屬於類,不屬於單個這個類的某個對象,被類中全部對象共享,能夠而且建議經過類名調用。被static 聲明的成員變量屬於靜態成員變量,靜態變量 存放在 Java 內存區域的方法區。調用格式:`類名.靜態變量名` `類名.靜態方法名()`
2. **靜態代碼塊:** 靜態代碼塊定義在類中方法外, 靜態代碼塊在非靜態代碼塊以前執行(靜態代碼塊—>非靜態代碼塊—>構造方法)。 該類無論建立多少對象,靜態代碼塊只執行一次.
3. **靜態內部類(static修飾類的話只能修飾內部類):** 靜態內部類與非靜態內部類之間存在一個最大的區別: 非靜態內部類在編譯完成以後會隱含地保存着一個引用,該引用是指向建立它的外圍類,可是靜態內部類卻沒有。沒有這個引用就意味着:1. 它的建立是不須要依賴外圍類的建立。2. 它不能使用任何外圍類的非static成員變量和方法。
4. **靜態導包(用來導入類中的靜態資源,1.5以後的新特性):** 格式爲:`import static` 這兩個關鍵字連用能夠指定導入某個類中的指定靜態資源,而且不須要使用類名調用類中靜態成員,能夠直接使用類中靜態成員變量和成員方法。blog
## this 關鍵字繼承
this關鍵字用於引用類的當前實例。 例如:內存
```java
class Manager {
Employees[] employees;
void manageEmployees() {
int totalEmp = this.employees.length;
System.out.println("Total employees: " + totalEmp);
this.report();
}
void report() { }
}
```
在上面的示例中,this關鍵字用於兩個地方:
- this.employees.length:訪問類Manager的當前實例的變量。
- this.report():調用類Manager的當前實例的方法。
此關鍵字是可選的,這意味着若是上面的示例在不使用此關鍵字的狀況下表現相同。 可是,使用此關鍵字可能會使代碼更易讀或易懂。
## super 關鍵字
super關鍵字用於從子類訪問父類的變量和方法。 例如:
```java
public class Super {
protected int number;
protected showNumber() {
System.out.println("number = " + number);
}
}
public class Sub extends Super {
void bar() {
super.number = 10;
super.showNumber();
}
}
```
在上面的例子中,Sub 類訪問父類成員變量 number 並調用其其父類 Super 的 `showNumber()` 方法。
**使用 this 和 super 要注意的問題:**
- super 調用父類中的其餘構造方法時,調用時要放在構造方法的首行!this 調用本類中的其餘構造方法時,也要放在首行。
- this、super不能用在static方法中。
**簡單解釋一下:**
被 static 修飾的成員屬於類,不屬於單個這個類的某個對象,被類中全部對象共享。而 this 表明對本類對象的引用,指向本類對象;而 super 表明對父類對象的引用,指向父類對象;因此, **this和super是屬於對象範疇的東西,而靜態方法是屬於類範疇的東西**。
## 參考
- https://www.codejava.net/java-core/the-java-language/java-keywords- https://blog.csdn.net/u013393958/article/details/79881037