摘要: 快速排序 快速排序的基本思想是从数组中取一个值作为轴,然后遍历数组将比该值小或与该值相等的元素移动到数组的左部分,将比该值大的元素移动到数组的右部分,然后对左右部分使用递归进行相同操作,下面通过一个示例演示下快排的操作流程 假定初始数组为:{2,5,7,1,3,4},每次都以数组的末尾元素作为轴 那 阅读全文
posted @ 2020-07-11 19:09 Mango_SF 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 归并排序 归并排序的思想是将两个有序数组合并成一个新的有序数组的过程,所以要使用归并就必须保证待合并的两个数组本身是有序的。 归并排序的流程 需要一个中间数组,长度为两个待合并数组的长度之和,然后需要三个索引值,分别为左索引指向左数组(待合并数组一)0号索引位置,右索引指向右数组(待合并数组二)0号 阅读全文
posted @ 2020-07-08 16:23 Mango_SF 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 希尔排序 前面我们说过了插入排序,它是三种基本排序中最常用的一种排序,具有排序稳定,空间复杂度低,而且在样本小且基本有序时效率比较高,该篇讲述的希尔排序是对插入排序的一种优化排序,在希尔排序开始阶段,通过增量的方式使排序的样本小化,在希尔排序的最后阶段蜕变成插入排序,但可以完美实现样本基本有序,从而 阅读全文
posted @ 2020-07-06 18:22 Mango_SF 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 插入排序 之前的文章讲过选择排序和冒泡排序,他们都有各自的优缺点,比如选择排序不稳定,冒泡排序效率较低等。这次我们来聊一聊简单排序中的最后一种——插入排序,相比于选择排序和冒泡排序,是更为常用的简单排序,在样本小且基本有序的时候效率比较高。 插入排序的基本思想每次从无序数组中取一个值然后插入到有序数 阅读全文
posted @ 2020-07-05 13:08 Mango_SF 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序 冒泡排序类似于泡泡一样从底层逐次上升到高层的排序过程,每次从数组的第一个元素开始,按(第1个,第2个),(第2个,第3个),(第3个,第4个)...的过程进行比较,每次都取最大的值放置到后面的位置,那么最后得到的值就一定是数组中的最大值,然后将该值排除在外,然后在剩余的数组元素中继续进行上 阅读全文
posted @ 2020-06-30 14:18 Mango_SF 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 选择排序 选择排序的思想就是从待排数组中将最小的一个元素筛选出来并移动到数组最前端,然后将待排数组的范围缩小(即将已排序的第一个元素排除在外),循环对待排数组进行相同排序处理,直到所有元素都已经排好序 假定初始数组为:{3,5,4,2,1} 第一次排序后得到{1,5,4,2,3} 第二次排序后得到{ 阅读全文
posted @ 2020-06-29 23:29 Mango_SF 阅读(159) 评论(0) 推荐(1) 编辑
摘要: CAS CAS(Compare And Swap),是Java中的一种无锁优化,又被称作自旋锁或者乐观锁,而synchronized和ReentrantLock则是悲观锁的典型代表 乐观锁:总是假设最好的情况,每次拿数据都认为别人不会修改数据,所以不会加锁,但是更新的时候,会判断在此期间有没有人修改 阅读全文
posted @ 2020-05-06 09:26 Mango_SF 阅读(128) 评论(0) 推荐(0) 编辑
摘要: Java线程 线程的创建方式 继承Thread类并重写run方法(假定为MyThread类) 实现Runnable接口并实现run方法(假定为MyRun类) 线程的三种启动方式 线程的几个基本方法 sleep:当前线程暂停一段时间,将CPU资源让给其他线程使用,但是不会释放已经获得的对象资源 yie 阅读全文
posted @ 2020-05-04 19:23 Mango_SF 阅读(194) 评论(0) 推荐(0) 编辑
摘要: JVM内存模型 首先先让我们看看内存结构图 然后我们来具体介绍下每一部分的内容: 类加载器 之前有一篇文章讲解了有关 "类加载的机制" ,在这里就不再赘述了,有需要的朋友请移步查看 虚拟机栈 虚拟机栈描述的是Java方法执行的动态内存模型,虚拟机栈中最重要的就是栈帧的概念 栈帧 每个方法的执行,都会 阅读全文
posted @ 2020-04-29 19:11 Mango_SF 阅读(391) 评论(0) 推荐(0) 编辑
摘要: Java类加载机制 虚拟机把描述类的数据从Class文件加载到内存中,并对数据进行校验、解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制,这是一种懒加载,即只在使用的时候才进行加载 Java的类加载机制分为加载,链接,初始化三个步骤 加载 通过一个类的全限定名来获取 阅读全文
posted @ 2020-04-26 19:04 Mango_SF 阅读(171) 评论(0) 推荐(1) 编辑