国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

深入理解java泛型詳解 Java為什么不能實(shí)現(xiàn)真正泛型?

Java為什么不能實(shí)現(xiàn)真正泛型?一句話(huà)回答:Java一言九鼎!Java在發(fā)布之初,就將二進(jìn)制兼容這個(gè)承諾寫(xiě)入了《Java虛擬機(jī)規(guī)范》中,為了兼容Java1.5之前的版本最終選擇了此方案。雖然兼容的方案

Java為什么不能實(shí)現(xiàn)真正泛型?

一句話(huà)回答:Java一言九鼎!

Java在發(fā)布之初,就將二進(jìn)制兼容這個(gè)承諾寫(xiě)入了《Java虛擬機(jī)規(guī)范》中,為了兼容Java1.5之前的版本最終選擇了此方案。

雖然兼容的方案不止是擦除這一條路,但是這個(gè)承諾確實(shí)是導(dǎo)致其沒(méi)有采用類(lèi)似C#那種真泛型的方案的最重要的原因。

Java為什么要有泛型?

java里的泛型是奇葩的存在。這也是我經(jīng)常懟java的一個(gè)原因。

先說(shuō)下泛型的主要作用:

1,強(qiáng)化類(lèi)型安全,比如定義了一個(gè)List<String>,那么里面只能存放String,不允許存放其他類(lèi)型(派生自String的除外)。類(lèi)型安全應(yīng)該在編譯和運(yùn)行時(shí)都能體現(xiàn)。

2,提高性能,減少類(lèi)型轉(zhuǎn)換和裝箱拆箱次數(shù)。

再說(shuō)下java泛型奇葩之處:

1,java泛型實(shí)現(xiàn)的原理叫類(lèi)型擦除,不管代碼中怎么定義泛型,編譯后都變成object, 因此不能實(shí)現(xiàn)運(yùn)行時(shí)的類(lèi)型安全。 而且java編譯器不夠聰明,可以很容易騙過(guò)去。 舉個(gè)例子,你調(diào)用了第三方的接口返回List<String>,但實(shí)際拿到的值里面可能跟String沒(méi)有半毛錢(qián)關(guān)系。

2,既然類(lèi)型被擦除,那么類(lèi)型轉(zhuǎn)換就不可避免了,因此使用泛型和非泛型在性能上沒(méi)有任何變化。