一道面試題 靜態變數和例項變數的區別

2021-08-20 11:46:53 字數 617 閱讀 6959

恩……..這道題,我們來看一下,首先得明白,什麼是靜態變數,什麼是例項變數!

看下面這個**

class demo1

}

這個demo裡的a 就是靜態變數,b就是例項變數,

我們在呼叫靜態變數的時候,可以直接使用類名.靜態物件名來呼叫 ,比如

demo1.a

而例項物件使用的時候是通過 new demo().b 來呼叫的!

我們再來看這道面試題!

靜態變數不屬於某個例項物件,而是屬於類,也叫類變數,只要程式載入了類的位元組碼,不用建立任何例項物件就會被分配空間,就可以被使用,也就是說,你建立了多個物件,他們共用了乙個靜態變數,而例項物件是屬於自己的獨有的,不會被共享!

可以看看下面的**演示

public

class test

}class demo1

}

最後的結果為

可以看出來 靜態變數是公共的,而例項物件,是自己用自己的!

一道面試題 變數宣告提公升

問列印結果 var getname function function getname console.log getname 結果是 4 其實這道題可以翻譯成 var getname function getname getname function console.log getname 4 把...

靜態變數和例項變數

在語法定義上的區別 靜態變數前要加static關鍵字,而例項變數前則不加。在程式執行時的區別 例項變數屬於某個物件的屬性,必須建立了例項物件,其中的例項變數才會被分配空間,才能使用這個例項變數。靜態變數不屬於某個例項物件,而是屬於類,所以也稱為類變數,只要程式載入了類的位元組碼,不用建立任何例項物件...

一道js變數上浮面試題

function a b log a a 輸出結果 下一行,拖動或ctrl a 輸出 1 解析 昨天去面試,就掉到上浮的坑里,本來是知道這個問題的,但是不太熟練又被迷惑。最後面試官給我說,變數上浮,是在定義的時候產生的,執行時不存在這個問題。來看這個題,a 函式 可以重新這樣寫 function a...