java中常用的关键字_java中的常用的关键字
在java編程過程中,會經常寫到一些關鍵字,但是對于他們應用的方式其實一直是模仿狀態,并沒有很實質的去了解,為什么要這么用,導致程序不能優化,或者出現了bug不明所以,因而再詳細的去重溫了一下各種了解的少的或是易混淆的關鍵字,就像,通過一只象腳,慢慢的接觸,認識到了象的各個部分,然后再從整只大象的角度去理解,系統的歸納總結,達到對全局的把握。
part A:易混淆關鍵字
明白這些后就可以很簡單的使用某一對象的屬性,最開始我在所有類的屬性中都用的private關鍵字,之后需要調用這個類中的該屬性時,均采用形參的方式,既在實例化對象時將該屬性以形參的方式傳遞給要調用的對象,但是,若是直接使用public修飾符,則可直接在需調用的類中調用,例:
//Data類中
public String string;
public int weight;//將Data類中的屬性設為public
//manager類中
Node node=new Node();
node.data.weight++;//直接在其類中調用和修改Data類實例化的對象的屬性值
類中的方法大多使用public修飾也是同樣的道理。修飾符決定的是能在什么范圍內直接調用該屬性或方法。private修飾符有其特別的用處,比如在定義權限時,不希望外界修改的屬性可以考慮使用private修飾符。
part B:少用但有些場合不得不用的關鍵字
synchronized:在單線程程序中,這個關鍵字幾乎沒什么存在的價值,但是對于多線程程序,當一個變量在多個線程中可能存在同時被使用的情況時,這個關鍵字就必不可少了,否則程序將報異常。
該關鍵字就是一把鎖,當它修飾某一個變量時則表示,該變量一次只能被一個線程使用,若還有另外一個線程需要使用該變量必須等待前一個線程使用完畢后方可。這樣就能防止一個變量被同時使用導致報錯。該關鍵字還能應用于一段代碼,我在這里例舉的為該關鍵字應用于變量的案例:
public volatile int p;
//線程1
while(true){
p--;//
}
//線程2
while(true){
p=p+3;//
}
此時程序可能拋出異常,可加上這樣一句
synchronized (p){};
static:static是一個經常用到但是不容易理解的關鍵字,從計算機存儲來說,既從他的物理地址來說,static修飾的屬性或方法等是放在棧中的,如下圖所示,計算機內存分為堆與棧,一般來說,對于一個變量,他的首地址存放于棧中,內容放置于堆中,通過棧中的地址來尋找,但是對于static修飾的變量來說,內容是直接存放于棧中的,并不需要去尋址。
static修飾的函數或變量使用不需要實例化,java中最常見的且必須使用static的是主函數main,我最開始一直不明白為什么main函數一調用就必須使用static,否則報錯,這是因為main函數在未實例化前就必須使用,而static剛好具備這個功能,static修飾的代碼在編譯前就能執行。
總結
以上是生活随笔為你收集整理的java中常用的关键字_java中的常用的关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: json里面的list数据取不出来_sq
- 下一篇: python git切换分支_git命令