(一)類的修飾符
PUBLIC | PROTECTED | PRIVATE |ABSTRACT |STATIC | FINAL |STRICT;
(1)public 公有的,abstract抽象的,final最終的這幾個修飾詞是很好理解的。
public:在一個Java文件中,必須有一個public類(或者接口),它用於控制訪問權限;
abstract:抽象類則說明這個類是抽象的,它可能具有抽象方法(需要由子類來實現);
final:用於表示這個類是最終的,也就是無法被繼承了。這是一種犧牲擴展性來換取安全的手段。
(2)protected保護的,private私有的,static靜態的 這幾個似乎只能用於內部類,如下描述:
class Dianxin{
private class Cookies{
}
protected class Snack{
}
static class Sandwitch{
}
}
(3)STRICT代表strictfp 用於描述精度
總結大概如下:
訪問控制 | 抽象 | 靜態 | 浮點 | 類 |
public | abstract | static | strictfp | class |
protected | final | |||
private | ||||
無 | 無 | 無 | 無 |
(二)接口的修飾符
PUBLIC | PROTECTED | PRIVATE | ABSTRACT | STATIC | STRICT;
可以與類做對比,缺少一個final,因爲接口總是abstract的。
(三)構造器的修飾符
PUBLIC | PROTECTED | PRIVATE
構造器只有訪問限定修飾。
(四)屬性的修飾符
PUBLIC | PROTECTED | PRIVATE | STATIC | FINAL | TRANSIENT | VOLATILE;
其他屬性修飾符沒有太多可說的
transient: 用於標識一個變量在持久化過程中,它不需要保存。(也就是類似於一些temp之類的數據)
volatile:防止編譯器優化;其修飾的成員變量在每次被線程訪問時,都強迫從共享內存中重讀該成員變量的值。而且,當成員變量發生變化時,強迫線程將變化值回寫到共享內存。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值。
(五)方法的修飾符
PUBLIC | PROTECTED | PRIVATE |ABSTRACT |STATIC | FINAL | SYNCHRONIZED
| NATIVE | STRICT;
與“類”的修飾作比較,發現方法的修飾多了兩個限定詞SYNCHRONIZED | NATIVE
其中synchronized用於表示方法是線程同步的,
而native表示這個方法是用C/C++編寫的本地方法。