女人被躁到高潮嗷嗷叫游戏,久久久久亚洲av成人人电影,久久久精品人妻一区二区三区四,久久久久无码精品国产app,免费人成视频在线播放

留求藝—您的留學(xué)規(guī)劃師

問(wèn)為什么jdk中把String類設(shè)計(jì)成final的

168次

問(wèn)題描述:

為什么jdk中把String類設(shè)計(jì)成final的求高手給解答

最佳答案

推薦答案

有一個(gè)解釋就是當(dāng)定義String類型的靜態(tài)字段(也成類字段),可以用靜態(tài)變量(非final)代替常量(final)加快程序速度。

反之,對(duì)于原始數(shù)據(jù)類型,例如int,也成立。例如,你可能創(chuàng)建一個(gè)如下的String對(duì)象:private static final String x = "example";對(duì)于這個(gè)靜態(tài)常量(由final關(guān)鍵字標(biāo)識(shí)),你使用常量的每個(gè)時(shí)候都會(huì)創(chuàng)建一個(gè)臨時(shí)的String對(duì)象。在字節(jié)代碼中,編譯器去掉”x”,代替它的是字符串“example”,以致每次引用”x”時(shí)VM都會(huì)進(jìn)行一次哈希表查詢。相比之下,度于靜態(tài)變量(非final關(guān)鍵字),字符串只創(chuàng)建一次。僅當(dāng)初始化“x”時(shí),VM才進(jìn)行哈希表查詢。還有另一個(gè)解釋:帶有final修飾符的類是不可派生的。在Java核心API中,有許多應(yīng)用final的例子,例如java.lang.String。為String類指定final防止了人們覆蓋length()方法。另外,如果指定一個(gè)類為final,則該類所有的方法都是final。Java編譯器會(huì)尋找機(jī)會(huì)內(nèi)聯(lián)(inline)所有的final方法(這和具體的編譯器實(shí)現(xiàn)有關(guān))。此舉能夠使性能平均提高50%。

為什么jdk中把String類設(shè)計(jì)成final的

為你推薦

網(wǎng)站首頁(yè)  |  關(guān)于我們  |  聯(lián)系方式  |  用戶協(xié)議  |  隱私政策  |  在線報(bào)名  |  網(wǎng)站地圖