摘要:快速排序的介绍 来源百度百科: 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序 阅读全文
posted @ 2020-02-27 22:07 xujiangxi 阅读 (8) 评论 (0) 编辑
摘要:两个线程如何交替打印出奇数和偶数 分析 两个线程交替打印奇数和偶数,最关键的是如何协作的问题。 打印的数可以用java里面的atomicInteger 来保证原子性; 打印何时结束需要设置一个上限,比如打印到100结束; 1 public class PrintABAtomic{ 2 private 阅读全文
posted @ 2020-02-25 23:54 xujiangxi 阅读 (8) 评论 (0) 编辑
摘要:SpringMVC找Controller流程 1.扫描整个项目(Spring已经做了)定义一个Map集合。 2.拿到所有加了@Controller注解的类。 3.遍历类里面的所有方法对象。 4.判断方法是否加了@RequestMapping注解。 5.把@RequestMapping的Value 作 阅读全文
posted @ 2020-02-25 01:15 xujiangxi 阅读 (12) 评论 (0) 编辑
摘要:相同 Comparable和Comparator都是用来实现对象的比较、排序 要想对象比较、排序,都需要实现Comparable或Comparator接口 Comparable和Comparator都是Java的接口 区别 Comparator位于java.util包下,而Comparable位于j 阅读全文
posted @ 2020-02-24 13:31 xujiangxi 阅读 (11) 评论 (0) 编辑
摘要:一直不太清楚阻塞非阻塞,异步和同步的概念,面试的时候也被问到了,网上看了帖子也是似是而非。今天看到了一篇文章讲得还不错。 故:粘贴下来。 如下: 重新认识同步与异步,阻塞和非阻塞的概念 前言 在实际的开发中,我们经常会听到同步,异步,阻塞,非阻塞这些编程概念,每次遇到的时候都会蒙圈,然后就各种查网上 阅读全文
posted @ 2019-12-26 09:48 xujiangxi 阅读 (23) 评论 (0) 编辑
摘要:Binary TreeDefinition: at most two children node. Binary Tree Example: 10 ==root / \ 13 15 cur / \ / \ 21 72 12 2 / \ null null class TreeNode{ int va 阅读全文
posted @ 2019-07-22 08:30 xujiangxi 阅读 (666) 评论 (0) 编辑
摘要:堆 逻辑结构: 1 / \ 1 3 / \ / \ 4 5 6 null 物理结构; 1.首先堆是一个完全二叉查找书(Complete Binary Search Tree)树,观察一下堆的逻辑结构和物理结构,逻辑结构是一颗完全二叉查找树,物理结构是一个数组. 性质:堆的实现是通过构造二叉堆,这种数 阅读全文
posted @ 2019-07-20 19:50 xujiangxi 阅读 (311) 评论 (0) 编辑
摘要:单例模式-LazyDoubleCheckSingleton(懒加载双重检查锁) 以上的双重检查锁代码的缺点: 1.会发生指定重排序 假设一种情况: 两个线程同时访问对象,如果编译器优化之后,一个线程执行顺序为1.3.2,当线程1执行到3的时候,那么线程2执行生成对象的时候就会没有对象. 解决办法关键 阅读全文
posted @ 2019-06-18 14:29 xujiangxi 阅读 (21) 评论 (0) 编辑
摘要:工厂用来生产对象,对象具有方法和属性。 简单工厂的缺点(简单工厂并不是23中设计模式): 工厂类的职责相对过重,增加新的产品,需要修改工厂类的判断逻辑,违背开闭原则; JDK源码中使用的简单工厂类: Calendar; 改进方法:能够直接通过反射去改进简单工厂的开闭原则(对扩展开放,对修改关闭); 阅读全文
posted @ 2019-06-17 17:34 xujiangxi 阅读 (173) 评论 (0) 编辑