Java 基礎(第二季)

2021-08-23 14:05:08 字數 2756 閱讀 5672

public class helloworld 

}

public class helloworld 

int num1;

int num2;

//初始化塊

static

public static void main(string args)

}

結果如下:

通過靜態初始化塊為靜態變數num3賦值

通過初始化塊為變數num2賦值

通過構造方法為變數num1賦值

num1:91

num2:74

num3:83

通過初始化塊為變數num2賦值

通過構造方法為變數num1賦值

通過結果,可以看到,程式執行時,靜態初始化塊最先被執行,然後執行普通初始化塊,最好才執行構造方法。由於靜態初始化塊只在類載入時執行一次,所以當再次建立 hello2 時並未執行靜態初始化塊。

封裝:將類的某些資訊隱藏在類的內部,不允許外部程式直接訪問,而是通過該類提供的方法來實現隱藏資訊的操作和訪問。

封轉物件的屬性時,經常會使用 this 關鍵字(this.age = age;)

內部類:就是定義在另外乙個類裡面的類,與之對應,包含內部類的類被稱為外部類。

​helloworld hello = new helloworld();

inner i= hello.new inner(); //inner是內部類的類名

注意:

外部類時不能直接使用內部類的成員和方法滴,可先建立內部類的物件,然後通過內部類的物件來訪問其成員變數和方法

如果外部類和內部類具有相同的成員變數或方法,內部類預設訪問自己的成員變數或方法,如果要訪問外部類的成員變數,可以使用 this 關鍵字,如:

靜態內部類是指用 static 修飾的內部類

這種內部類的特點是:

定義:方法內部類就是內部類定義在外部類的方法中,方法內部類只在該方法的內部可見,即只在該方法內可以使用。

注意:由於方法內部類不能在外部類的方法以外的地方使用,因此方法內部類不能使用訪問控制符和 static 修飾符。

繼承的好處:子類擁有所有父類的屬性和方法,可以實現**復用

方法的重寫:如果子類對繼承父類的方法不滿意,是可以重寫父類父類繼承的方法的,當呼叫方法時會優先呼叫子類的方法。

重寫需要滿足得條件:

以上三項都與父類相同,才叫重寫

繼承的初始化順序:

使用 final 關鍵字做識別符號有「最終的」含義,final 可以修飾類、方法、屬性和變數

在物件的內部使用,可以代表父類物件如:

super 的應用:

子類的構造的過程中必須呼叫父類的構造方法

如果子類的構造方法中沒有顯示呼叫父類的構造方法,則系統預設呼叫父類無參的構造方法

如果顯式的呼叫父類的構造方法,則必須在子類的構造方法的第一行

如果子類構造方法中既沒有顯式的呼叫父類構造方法,而父類又沒有無參的構造方法,則編譯出錯。

object 類是所有類的父類,如果乙個類沒有使用 extends 關鍵字明確標識繼承另外乙個類,那麼這個類預設繼承 object 類,object 類中的方法,適合所有的子類。

tostring() 方法

equals() 方法

比較的是物件的引用是否指向同一塊記憶體位址

向上型別轉換(隱式/自動型別轉換),是小型別到大型別的轉換

向下型別轉換(強制型別轉換),是大型別到小型別的轉換

instanceof 運算子,用來解決引用物件的型別,避免型別轉換的安全性問題,**示例如下:

dog dog = new dog();

animal animal = dog;

if(animal instanceof dog)else

抽象:包含抽象方法的類一定是抽象類,抽象類和抽象方法都需要新增關鍵字 abstract,且順序為 abstract class

介面:類是一種具體實現體,而介面定義了某一批所需要遵守的規範,介面不關心這些類的內部資料,也不關心這些類裡方法的實現細節,它只規定這些類裡提供某些方法。

介面的使用:介面在使用過程當中,還經常與匿名內部類配合使用(匿名內部類也是只關注類的實現,而不關注這個類的名稱)

介面中方法不能有方法體,同時方法的訪問修飾符不能是 private 和 protected

uml 概念:unified modeling language,又稱統一建模語言或標準建模語言,是乙個支援模型化和軟體系統開發的圖形化語言,為軟體開發的所有階段提供模型化和視覺化支援。

uml 圖示:uml2.2 中一共定義了 14 種圖示(diagrams)

常用uml圖:

**uml 建模工具:**visio、rational rose、powerdesign

X A B (第二季水)

description give you two numbers a and b,if a is equal to b,you should print yes or print no input each test case contains two numbers a and b.output ...

遷移填坑第二季

之前說到,配置了遷移環境碰到了各種坑,然後終於解決掉了,終於能夠nova live migration kobe compute5了。然後就開始批量生產遷移環境,然後。之前是只用了compute3和compute5,然後把compute6和compute7也配置好nfs和libvirt,然後嘗試把k...

Spark效能優化第二季

一 task效能優化 1,慢任務 資料傾斜或機器故障 的效能優化 可以考慮減少每個partition處理的資料量,同時建議開啟spark.speculation 2,儘量減少shuffle,例如我們要減少groupbykey的操作,因為groupbykey會要求通過網路拷貝 shuffle 所有的資...