java-重載、包修飾詞以及堆棧管理

来源:http://www.cnblogs.com/CaiNiao-TuFei/archive/2017/08/11/7347796.html
-Advertisement-
Play Games

1.方法的重寫(Override):重新寫、覆蓋 1)發生在父子類中,方法名稱相同,參數列表相同,方法體不同 2)重寫方法被調用時,看對象的類型2.重寫與重載的區別: 1)重寫(Override): 1.1)發生在父子類中,方法名稱相同,參數列表相同,方法體不同 1.2)遵循"運行期綁定",看對象的 ...



1.方法的重寫(Override):重新寫、覆蓋

1)發生在父子類中,方法名稱相同,參數列表相同,方法體不同
2)重寫方法被調用時,看對象的類型
2.重寫與重載的區別:
1)重寫(Override):
1.1)發生在父子類中,方法名稱相同,參數列表相同,方法體不同
1.2)遵循"運行期綁定",看對象的類型來調用方法

(最後附帶舉例說明)


2)重載(Overload):
2.1)發生在一個類中,方法名稱相同,參數列表不同,方法體不同
2.2)遵循"編譯期綁定",看引用的類型來綁定方法
3.package:
1)作用:避免類的命名衝突
2)類的全稱: 包名.類名
3)包名可以有層次結構,同包中的類不能同名
4)建議:包名所有字母都小寫
import:
1)同包中的類可以直接訪問
不同包中的類不能直接訪問,若想訪問有如下兩種方式:
1.1)先import聲明類再使用----建議
1.2)類的全稱----------------太繁瑣,不建議
4.訪問控制修飾符:
1)public:公開的,任何類
2)private:私有的,本類
3)protected:受保護的,本類、子類、同包類
4)預設的:什麼也不寫,本類、同包類
類的訪問修飾: public、預設的
類中成員的訪問修飾: 如上4種都可以
5.記憶體管理:由JVM管理---------------------瞭解
1)堆:
1.1)存儲所有new出來的對象(包含成員變數)
1.2)沒有任何引用所指向的對象為垃圾,垃圾回收器(GC)不定時到記憶體中清掃垃圾,

回收過程是透明的,但不一定一發現垃圾就立即回收,調用System.gc()建議JVM儘快調度GC來收垃圾
1.3)記憶體泄漏:不再使用的記憶體還沒有被及時的回收
    建議:不再使用的對象及時將引用設置為null
1.4)成員變數的生命周期:
    創建對象時存在堆中,對象被回收時一併消失
2)棧:
2.1)存儲正在調用中的方法的所有局部變數(包括參數)
2.2)調用方法時,在棧中為該方法分配一塊對應的棧幀,棧幀中存儲的是所有的局部變數(包括參數),方法調用結束時,棧幀被清除,局部變數一併失效
2.3)局部變數的生命周期:
    調用方法時存在棧中,方法調用結束時與棧幀一併被清除


3)方法區:
3.1)存儲的是.class位元組碼文件(包括方法、靜態變數)
3.2)方法只有一份,能過this來區分具體的對象


6.static:靜態的
1)靜態變數:
1.1)由static修飾
1.2)屬於類的,存儲在方法區中,只有一份
1.3)常常通過類名點來訪問
1.4)何時用:所有對象所共用的資源(圖片、音頻、視頻等)


2)靜態方法:
2.1)由static修飾
2.2)屬於類的,存儲在方法區中,只有一份
2.3)常常通過類名點來訪問
2.4)靜態方法沒有隱式this傳遞的,
靜態方法中不能直接訪問實例成員
2.5)何時用:方法的操作僅與參數相關而與對象無關
3)靜態塊:
3.1)由static修飾
3.2)屬於類的,在類被載入時自動執行,
因為類中被載入一次,所以靜態塊也只執行一次
3.3)何時用:載入/初始化靜態資源(圖片、音頻、視頻等)

 

/**
* 遵循"兩同兩小一大"原則:
* 1)兩同:
* 1.1)方法名稱相同
* 1.2)參數列表相同
* 2)兩小:
* 2.1)子類方法的返回值類型小於或等於父類的
* 2.1.1)void時,必須相同
* 2.1.2)基本類型時,必須相同
* 2.1.3)引用類型時,小於或等於
* 2.2)子類拋出的異常小於或等於父類的--------異常之後
* 3)一大:
* 3.1)子類方法的訪問許可權大於或等於父類的
*/

//父類大,子類小
class Coo{
void show(){}
double test(){return 0.0;}
Doo sayHi(){return null;}
public Coo say(){return null;}
}
class Doo extends Coo{
//int show(){return 1;} //編譯錯誤,void時必須相等
//int test(){return 0;} //編譯錯誤,基本類型時必須相等
//Coo sayHi(){return null;} //編譯錯誤,引用類型時必須小於或等於
public Doo say(){return null;} //引用類型時,小於
}

 

我是初學者,如有更新不好的,歡迎這位大神指出,謝謝大家!

 

更多精彩以後更新,轉載註明!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 題目背景 眾所周知,我們稱g是a的約數,當且僅當g是正數且a mod g = 0。 眾所周知,若g既是a的約數也是b的約數,我們稱g是a、b的一個公約數。 眾所周知,a、b最大的那個公約數就叫最大公約數。 題目描述 現在對於給定的兩個正整數a、b,你需要求出它們次大的公約數(second great ...
  • Python列表的增刪改查排 一、列表的樣子: a = [‘q’ , ’w’ , ’e ’, ’r’,‘t’] a為列表名,[ ]為列表內容,‘ ’為列表內的元素,‘q’為a[0] 二、查(也稱切片): print ( a[0] ) #取出列表中第一個元素 即:q print ( a[1:] ) # ...
  • JAVA記憶體模型: 堆區中 保存呢以new關鍵字創建出的對象 jdk1.7版本之後 字元串常量池也存放在堆區中 棧區中 保存臨時變數和參數,每個線程都有自己的棧,每調用一個方法創建一個棧針 方法區 靜態成員 類 方法等信息 調用方法的時候 如果參數是基本數據類型,那麼傳遞的是數值 如果參數是引用類型 ...
  • 文件下載,可以是post請求,也可以是get請求。 新建web項目,在WebRoot下建up目錄存放上傳的文件: 最簡單的但是實際不會這樣做的下載方式,直接用a標簽指向文件目錄,就能下載: 這樣能下載,但是任何人都能下載,你沒法做一些控制,比如只有登錄的用戶才能下載,積分不夠的人不能下載,而且,這樣 ...
  • 虛擬機執行子系統 一、類文件結構 1.魔數和class版本 1.magic-魔數:0xCAFEBABE;4位元組 2.minor_version:次版本,丶之後的數字;2位元組 3.major_version:主版本,丶之前的數字;2位元組 2.常量池 1.constant_pool_count:常量池常 ...
  • 這篇博文我們介紹兩方面:如何修改setting.xml文件及相應配置(本文maven版本為3.5.0) (1)首先打開maven文件目錄--conf,會看見如下目錄 (2)複製setting.xml文件,粘貼至預設目錄C:\用戶\用戶名\.m2文件中 對於初學者在安裝配置好maven之後,發現目錄下 ...
  • 對日期的一些操作: ...
  • 運行效果如下: 點擊文件按鈕,點擊打開菜單項,選擇一個文本文件,效果如下: 打開後,內容顯示如下: 對內容稍作修改,另存為名為sss的文件,效果如下: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...