關於C base關鍵字的記憶體分析

2022-02-17 07:10:05 字數 638 閱讀 9586

最近做了幾道面試題,發現base關鍵字出的題目還比較多。所以在這裡針對base關鍵字做乙個記憶體的剖析,希望日後可以用到。

先看下面一道題目:

最後在main方法中例項化子類testchild,並且呼叫其show方法。問輸出結果是什麼?

testchild child=new testchild();

child.show();

碰到這個問題,最好我們能通過分析記憶體圖的方式解決該問題。

下面把自己所做的記憶體圖奉上,當然圖形看著並不是很美觀。

ok,一切說明都在圖里了。我們可以看到每乙個子類的物件,都包含了乙個父類物件。

並且this關鍵字指向當前物件自身,在子類中使用base關鍵字則呼叫父類物件。通過該圖,輸出結果就一目了然了。

最後給大家擴充下,字串常量和靜態欄位都儲存在記憶體當中的資料儲存區。

static關鍵字的使用與記憶體分析

一 使用小述 1.首先解釋一下static是什麼意思?static是靜態的意思,既然是靜態,就是不變的,而不變就是他不會因為類中例項化物件的不同而不同,它在類中永遠只有乙份,就像中國人有許多,但我們只有乙個國家中國。2 由static修飾的歸屬問題 由static修飾的不管是變數還是方法,都屬於類直...

const , volatile 關鍵字分析

const修飾變數 在c語言中const修飾的變數是唯讀的,其本質還是變數,不是常量。const修飾的變數會在記憶體占用空間,不能作為左值進行賦值。本質上const只對編譯器有用,在執行時無用。因此const修飾的變數可以在程式執行時,通過指針對其進行改變。const修飾陣列 在c語言中const修...

常用關鍵字分析

一.可見性關鍵字public,private,protected,default辨析 1 範圍 乙個專案 public 乙個包 public,protected,default 乙個類 public,protected,default,private eg package test1 public ...