摘要: 1 class Solution { 2 public int[] spiralOrder(int[][] matrix) { 3 if(matrix == null || matrix.length == 0){ 4 return new int[]{}; 5 } 6 int index = 0; 阅读全文
posted @ 2020-05-31 16:18 xd会飞的猫 阅读(155) 评论(0) 推荐(0) 编辑
摘要: CAS和AtomicInteger AtomicInteger用来保证自增原子性,它的实现是基于CAS(比较和交换)的。 CAS(CompareAndSwap):判断内存某个位置的值是否与预期值一致,如果是则更改为新值,这个过程是原子的。不会造成数据不一致的问题。 compareAndSet(exc 阅读全文
posted @ 2020-05-31 15:07 xd会飞的猫 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 并发和并行的区别 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。 并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时 阅读全文
posted @ 2020-05-31 14:13 xd会飞的猫 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 简单的线程池,体现线程的复用 不使用Executors.newFixedThreadPool(int)、Executors.newSingleThreadExecutor()、Executors.newCachedThreadPool(),而是通过ThreadPoolExecutor的7个参数的构造 阅读全文
posted @ 2020-05-31 11:58 xd会飞的猫 阅读(258) 评论(0) 推荐(0) 编辑
摘要: GC垃圾回收 JVM大部分时候回收的都是新生代(伊甸区+幸存0区+幸存1区)。按照回收的区域可以分成两种类型:Minor GC和Full GC(MajorGC)。 Minor GC:只针对新生代区域的GC,大多数Java对象的存活率都不高,Minor GC非常频繁,回收速度快。 Full GC:发生 阅读全文
posted @ 2020-05-31 09:47 xd会飞的猫 阅读(1031) 评论(1) 推荐(2) 编辑