学习笔记

本文详细分析了 JDK 中 Arrays.sort 方法的工作原理,包括针对不同类型数据采用的不同排序算法及其优化策略,并探讨了计算机组成原理中 CPU 寄存器、内存及缓存之间的速率差异及其背后的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jdk中Arrays sort方法源码分析:

分为基本元素排序和对象排序

基本对象使用快排,对象使用归并排序。原因是归并排序具有稳定性,在对对象排序的情况会有这个要求。

这其中还会有优化:

当元素小于7时,直接使用冒泡排序,因为在元素个数比较少时,快排和归并排序存在递归调用,在元素比较少的情况下,开销比较大。

在快速排序的比较因子的选择上优化,其中元素个数小于7选中间的,大于7小于40,选前后中间取中间那个,大于40的话分9段,每段随机取一个,选取中间值。


计算机组成原理cpu寄存器,内存,缓存的速率问题

他们的速度是寄存机>缓存>内存,原因大致为:

距离问题,寄存器离cpu处理器最近,内存最远

材质问题,寄存器的由多个集体管组成的,而内存则是晶体管加电容,在电容上存储电位,而电容会存在露电现象,所以需要周期性的充电,而在充电的过程中是不能工作的。

访问方法过程不一样,cpu包含寄存器,程序控制器,计算器,寄存器是cpu处理器直接访问的,而内存的访问需经由程序控制器和暂存区等一些概念控制访问的。

而L1、L2缓存的概念是他们的材质跟寄存器差不多,位置也在cpu中,只是他们类似有去医院看病已经拿到号的病人,需要排队。

这其中还有一个概念,电流的传播速度是多少,网上查过之后发现是接近于光速3*10^8,也就是说在计算机的计算计算后的传播速度是有限制的

还查到一个概念,intel的cpu(i7)45nm,技术远超别人几条大街。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值