Java學習筆記,適用於零基礎的小夥伴
1. 成員變量與局部變量的區別
1.作用域:
成員變量的作用域是整個類中都可以訪問;
局部變量是的作用域是定義它的{}內, {}中的語句執行完它就被回收;
2.初始值:
局部變量使用前必須手動賦值, 係統不會賦默認值;成員變量係統會賦默認初始值.
3.所在內存區域:
局部變量在方法運行的棧內存裏,在棧裏,會自動釋放;
成員變量在對象裏,對象在堆裏,成員變量也在堆裏,不使用的對象會被垃圾回收機製在不確定的時候回收.
2. 匿名對象的使用
(1)當對對象中的功能隻執行一次的時候使用。
(2)用於作為實際參數進行傳遞。
(3)可以用匿名對象調用屬性, 沒意義.
3. 封裝
(1)封裝的好處:便於重複使用,安全性高。
(2)private(私有的)權限修飾符。
4. private(私有)
private修飾成員變量和成員不能在其他類中直接訪問.
注意:私有僅僅是封裝的一種體現形式, 封裝是一種思想, 就是將具體實現隱藏,僅對外暴露訪問方式.
5. 構造方法
(1)用途:用於給對象中屬性進行初始化。
A:格式 類名(){code}Person(){}
B:Person(){}publicPerson(){}
(2)特點 不定義空參構造,係統會自動給一個空參構造,定義了構造方法無論是有參還空參的,係統就不再給空參數的了。
(3)重載構造方法,是根據參數列表來區分是哪個構造方法。
如果你想學習Java可以來這個群,首先是二二零,中間是一四二,最後是九零六,裏麵可以學習和交流,也有學習資料可以下載。
6.this關鍵字
每個對象都有一個指向自己的指針,就this。
7.this的作用
1.在方法中區分成員變量和局部變量.this.成員變量;
2.this語句可以在構造方法裏調用其他構造方法;
3.在一個方法中,this可以調用本類的其他方法,可以省略:
(1)代表當前對象的引用。使用的時候,誰調用方法,this就代表誰。
(2)什麼時候使用this呢?
A:當局部變量和成員變量重名的時候,可以用this進行區分。
B:this調用成員方法
C:this調用本類其他構造, 注意必須放在構造方法第一行。
代碼如下:
運行結果:
8.創建對象在內存中的詳細步驟: Person p = newPerson();
1.主方法進棧,給類類型變量p分配空間
2.在堆內存中開辟空間,分配內存地址
3.在堆內存中建立對象特有屬性,並進行默認初始化
4.對屬性進行顯式初始化
5.將內存地址賦給棧內存中的p變量
9.static(靜態)特點
隨著類的加載而加載,隨著類的消失而消失。優先於對象。靜態可以被所有對象共享,也可以被類名所調用。
10.方法區
方法區是各個線程所共享的內存區域,它用於存儲已被虛擬機加載的類信息,常量,靜態變量,即時編譯器編譯後的代碼等數據.
局部代碼塊&構造代碼塊&靜態代碼塊:
局部代碼塊:
作用:控製變量的生命周期
構造代碼塊:
作用:它可以給所有對象進行初始化,存在於類中。當類中的構造方法以重載的形式存在時,並且有共同成員變量或共同的方法時,可以通過構造代碼塊對其進行初始化;這樣可以減少代碼的重複。
靜態代碼塊:
作用:加載驅動器。當類中的方法都被靜態化,並且構造方法被private了,這時我們不能,在將這個類實例化,然而又想讓類增加一些屬性,就可以使用靜態代碼塊。
11.靜態的使用
類的成員用static修飾後,就多了一種調用方式,原來對象名.成員可以繼續調用,現在,通過類名.成員,也可以調用.
類在什麼時候加載?
在第一次使用的時候加載,而後就常駐內存.
12. 單例設計模式應用
讓內存中某個類型的對象隻能同時存在一個.
13.final關鍵字
final可以修飾類,方法,變量。final修飾的類不可以被繼承。final修飾的方法不可以被覆蓋。final修飾的變量是一個常量, 隻能被賦值一次。
14.final和private區別
final修飾的類可以訪問。
private不可以修飾外部類,但可以修飾內部類,講內部類的時候會演示
final和private修飾的方法子類無法重寫, final不允許重寫, private重寫不了.
final修飾的變量隻能在顯示初始化或者構造方法初始化的時候賦值一次,以後不能更改。
private修飾的變量,也不允許直接被子類或一個包中的其它類訪問或修改,但是他可以通過set和get方法對其改值和取值。
最後更新:2017-08-13 22:53:53