1.構造函數多線程
構造函數:首字母大寫;對象建立時,就會調用與之對應的構造函數,對對象進行初始化。 只調用一次。jvm
通常函數:對象建立後,須要函數功能時才調用。能夠屢次調用。首字母小寫。函數
構造函數--重載:方法名相同,參數不一樣。this
*構造函數能夠直接調用通常函數,通常函數不能調用構造函數,由於構造函數是用來初始化對象的。spa
2.this關鍵字線程
當成員變量和局部變量重名,用this區分。
對象
this表明當前對象;所在函數所屬對象的引用。
繼承
構造函數中調用構造函數:
生命週期
Person(String name){內存
this.name = name;
}
Person(String name,int age){
this(name);
this.age = age;
}
*this用於在構造函數中調用其餘構造函數,只能定義在構造函數的第一行,由於初始化動做要先執行。
3.static關鍵字修飾符
static特色:
1.static用於修飾成員(變量,函數)
2.static修飾的成員被全部的對象共享。
3.static優先於對象存在,由於static的成員隨着類的加載就已經存在了。
4.static修飾的成員,能夠直接被類名調用(格式:類名。靜態成員)
5.static修飾的數據是共享數據,對象中存在的是特有數據。
成員變量和靜態變量(static修飾的變量)的區別:
1. 生命週期不一樣
成員變量隨着對象的建立而存在,隨着對象的回收被釋放。
靜態變量隨着類的加載而存在, 隨着類的消失而消失。
2.調用方式不一樣
成員變量只能被對象調用。
靜態變量能夠被對象調用,還能夠被類名調用。
3.別名不一樣
成員變量也稱爲實例變量。
靜態變量稱爲類變量。
4.數據存儲位置不一樣。
成員變量數據存儲在堆內存的對象中,因此也叫對象的特有數據。
靜態變量數據存儲在方法區(共享數據區)的靜態區中,因此也叫對象的共享數據。
static使用注意事項:
1.靜態方法只能訪問靜態成員(變量,函數)。
2.靜態方法中不能夠使用this或者super關鍵字。
3.主函數是靜態的。
static靜態代碼塊
隨着類的加載而執行,並且只執行一次。
做用:用於給類進行初始化。
static{
system.out.pringln("static--------執行!");
}
4.構造代碼塊
能夠給全部對象進行初始化。
{
system.out.println("----------------執行!");
}
執行順序: 靜態代碼塊先執行,有對象, 構造代碼塊執行, 最後構造函數執行。
5.多線程
好處:解決了大部分應用同時運行的問題。
弊端:線程多, 效率低。
jvm啓動時, 就啓動了多個線程。
1.執行main函數的線程
2.負責垃圾回收的線程
建立線程:一:繼承Thread
1. 繼承Thread類
2. 覆蓋Run方法。
3. 直接廠家Thread的子類對象建立線程
4. 調用start方法開啓線程並調用線程的run方法執行
能夠經過Thread的getName()獲取線程的名稱 Thread-編號(從0開始)