文章预览
大家好,我是鸭哥。 最近在网上看到有人问了,为什么Java在泛型擦除的情况下就不敢吹自己高性能? 这个问题有点意思,特别是对那些把Java奉为“性能之王”的朋友们来说。毕竟,Java在泛型这块儿一直是“心有余而力不足”,即使大家都说它好用,但真要较真儿,还是有不少问题的。 先给不熟悉泛型擦除的小伙伴们简单科普一下:Java的泛型从一开始就是个“补丁”式设计。 最早的Java没有泛型,为了和旧版本兼容,Java引入了泛型擦除机制。这意味着在编译时,泛型类型被替换成了 Object ,在运行时根本看不到这些泛型的存在。 比如,像下面这段代码: public class GenericExample { private T value; public GenericExample(T value) { this.value = value; } public T getValue () { return value; } } public class Main {
………………………………