java是什么 如何理解java是一門靜態(tài)多分派且動態(tài)單分派的語言?
如何理解java是一門靜態(tài)多分派且動態(tài)單分派的語言?靜態(tài)是指編譯過程中的標識,如類:類a{int getValue(int type)float getValue(float)編譯后,生成的字節(jié)碼根據(jù)
如何理解java是一門靜態(tài)多分派且動態(tài)單分派的語言?
靜態(tài)是指編譯過程中的標識,如類:
類a
{
int getValue(int type)
float getValue(float)編譯后,生成的字節(jié)碼根據(jù)返回值、參數(shù)類型分為兩個方法區(qū)(字節(jié)碼描述方法名、返回值、參數(shù)字段等),數(shù)量和其他方法數(shù)據(jù)。這樣,在運行和調(diào)用時可以根據(jù)返回值、名稱、參數(shù)等條件來識別方法。
Dynamic single dispatch不區(qū)分在編譯階段執(zhí)行哪個方法,而是使用invokedynamic指令的唯一標準在運行時根據(jù)引用的實際類型來標識它。
以上,希望對您有所幫助!