日常 - 真随笔

对于 JDK 源码的一些误解

这是一篇小记录,起因是看到 Arrays 源码产生的不理解。

/**
 * @since  1.2
 */
public class Arrays {
    public static void sort(int[] a) {
        DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0);
    }
}

/**
 * @since 1.7
 */
final class DualPivotQuicksort {
}

Arrays 内部源码居然是后来才写的,让我感到疑惑,后来想明白了,误解之处在于:一直认为 JDK 源码包内容是不能修改的;其实应该这么理解,Java 不会废除原有的特性

像 Python 2.x 到 Python 3.x 那种不兼容问题在 Java 中不能出现,Java 具有向前兼容的特性,对于一些已有的特性,但是不是很好用的,最多也只是添加 @Deprecated 注解不建议使用。但是可没有说源码不可以修改,最佳的例子就是 HashMap 1.7 和 1.8 版本之间的跨度,代码从 1000+ 改到 2000+。

Java 语言增加的新特性不会影响原有的特性,就是向前兼容,如同 Interface 中添加的 default 方法。

public interface InterfaceTest01 {
    void fun1();

    default void fun2() {

    }
    
}

随笔

这篇是自己的一些小结,很多细节没有考证过,如有疏漏请指正为感。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值