04 2020 档案
摘要:1)归并排序思想 1)将数组分成两半 2)对左边排序 3)对右边排序 4)两边都排好顺了 对左右两边进行merge 代码步骤1)两个半截数组已经排好序的情况下,把他们合并到一起 第一次比较 1比3小 把1放到下面,i++ 第二次比较 4比3大 把3放到下面,j++ int mid=arr.lengt
阅读全文
摘要:强软弱虚四种引用 1)强引用:平时new出来的对象,只要有引用在 即使发生GC也回收不了 2)软引用:空间不够就回收,软引用适合做缓存,空间足够就放在那里,不够用就回收 *** * 空间不够就会回收 * 软引用适合做缓存(空间足够就放在那里 不够用会回收) * -Xmx=20M */ public
阅读全文
摘要:Docker简介 历史的演化 1)物理机时代:进程耦合,共享文件资源。资源抢占时,一个应用CPU过高会影响其它应用 2)虚拟化:虚拟机建立在虚拟硬件层之上,每个虚拟机都有独立的内核和用户程序以及依赖库,VM需要安装操作系统。 3)容器化技术:而 docker 容器建立在宿主机内核和 docker 服
阅读全文
摘要:单例模式的演化 1)饿汉式:利用static关键字,在类初始化的时候就会调用静态方法 public class Singleton { private static final Singleton singleton=new Singleton(); private Singleton(){ } p
阅读全文
摘要:实现生产者和消费者 wait()和notify()实现生产者和消费者 /** * 面试题:写一个固定容量同步容器,拥有put和get方法,以及getCount方法, * 能够支持2个生产者线程以及10个消费者线程的阻塞调用 * * 使用wait和notify/notifyAll来实现 * * @au
阅读全文
摘要:概述 Synchronized 优点:实现简单,语义清晰,便于JVM堆栈跟踪,加锁解锁过程由JVM自动控制,提供了多种优化方案,使用更广泛 缺点:悲观的排他锁,不能进行高级功能 Lock 优点:可定时的、可轮询的与可中断的锁获取操作,提供了读写锁、公平锁和非公平锁 缺点:需手动释放锁unlock,不
阅读全文