一道筆試題引發的血案之檢視程式執行結果

2022-08-30 02:33:14 字數 1052 閱讀 3811

判斷程式輸出的結果

public

class

test

static

class

a

public

void setvalue(int

value)

public

intgetvalue()

catch

(exception e)

finally

return value;}}

static

class b extends

a

public

void setvalue(int

value) }}

答案

分析過程

例項化b首先例項化a

在例項化b的時候,呼叫b的構造器,並將5作為引數傳遞給a的構造器,執行setvalue方法,此時b類內已經對繼承來的setvalue進行了覆寫,在內部又呼叫了a的setvalue並將 2* 5=10 作為引數傳遞進去

此時b的成員value值是10,然後執行a的構造器內的setvalue(getvalue() -3)這一行**,首先執行他繼承來的getvalue方法

在getvalue中,value的值加1變為11,此時11要作為此方法的返回值被返回,接下來執行finally塊內的**,再次呼叫b的setvalue方法將value的值設定為22,並將value列印出來(22

接下來setvalue(getvalue() - 3)內的變數就得到返回了,那就是11,於是將其減去3得到8,並作為引數傳遞,接下來又是呼叫setvalue將8乘以2得到16進行傳遞,然後按照上面的順序 加1 得到17 並等待返回

然後finally塊內,17乘以2得到34輸出(34

最後17被返回,列印(17

一道JS面試題引發的血案

剛入職新公司,屬於公司萌新一枚,一天下午對著螢幕看 架構時。bi專案組長給我看了一道面試別人的js面試題。雖然答對了,但把理由說錯了,照樣不及格。話不多說,直接上題 var a 1 switch a result 最後什麼都不會輸出 看完題如果答對並且知道理由的小夥伴,僅當加深印象 如果你也像我一樣...

一道JS面試題引發的血案

剛入職新公司,屬於公司萌新一枚,一天下午對著螢幕看 架構時。bi專案組長給我看了一道面試別人的js面試題。雖然答對了,但把理由說錯了,照樣不及格。話不多說,直接上題 var a 1 switch a result 最後什麼都不會輸出 看完題如果答對並且知道理由的小夥伴,僅當加深印象 如果你也像我一樣...

一道筆試題

看到一道筆試題,跟自己想的有點出入,就跑了下,看了看原因。我稍微改了下 include int main int argc,char argv 輸出結果 c 5 d 245 press any key to continue vc6.0 debug下的彙編 5 unsigned char a 0xa...