JAVA程式設計基礎內容回顧
阿新 • • 發佈:2018-12-17
JAVA程式設計基礎回顧
1.非訪問修飾符:
- static修飾符,用來修飾類方法和類變數
- 靜態變數,即類變數;區域性變數不能被宣告為靜態變數
- 靜態方法:靜態變數必須用靜態方法來訪問
public class InstanceCounter{
private static int numInstance=0;
protected static int getCount(){
return numInstance;
}
private static void addInstance(){
numInstance++;
}
public void InstanceCounter(){
InstanceCounter.addInstance();
}
public void static main(String []args){
for (int i=0;i<500;++i){
new InstanceCounterS();}
}
}
- final修飾符,用來修飾類、方法和變數,修飾的類不能被繼承,修飾的方法不能被繼承類重新定義、修飾的變數為常量不能被修改
- final變數能被顯式的初始化切只能被顯式的初始化一次。final物件的引用不可以改變,但裡面的值可以改變
public final score{
final int score=0;
public void changeScore(int a){
score=a;//這裡將會報錯
}
}
- final方法的價值在於防止該方法的內容被修改
- final類:不能被繼承,沒有類能夠繼承final類的任何特性,缺乏實際使用價值
public final class Test{//類體}
- abstract修飾符,用來建立抽象類和抽象方法:
- 抽象類不能用來例項化物件
- 抽象類的目的式便於將來對類的擴充
- 抽象類可以包含非抽象方法和抽象方法(沒有給出具體實現的方法)
1.抽象方法是一種沒有給出具體實現的方法,具體實現由子類提供
2.抽象方法不能被宣告成final和static
3.任何繼承抽象類的子類都必須實現父類的所有抽象方法,除非子類也是抽象類。
4.包含抽象方法的類必須宣告為抽象類。抽象類不一定包含抽象方法。
public abstract class Superclass
- synchronized和volatile修飾符,主要用於執行緒的程式設計
- synchronized關鍵字宣告的方法同一時間只能被一個執行緒訪問,synchronized可用於static,final,abstract,synchronized四個訪問修飾符
public synchronized void showDetail(){
//函式體
}
-transient修飾符 序列化的物件包含背transient修飾的例項變數時,java虛擬機器跳過該特定的變數,用來處理類和變數的資料型別
public transient int limit=55;//不會持久化
public int b;//持久化
- volatile 修飾符
- volatile修飾的成員變數每次被執行緒訪問時,強制從記憶體變數中讀取該成員變數的值,當變數的值發生變化時,會強制執行緒將變數值會寫到共享記憶體,因此不論在任何時刻,兩個執行緒總是看到成員變數的同一個值。volatile物件引用可能是null。
- 說白了就是兩個執行緒均能實時完成對同一個成員變數的修改。