摘要:
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; 阅读全文
摘要:
CAS和AtomicInteger AtomicInteger用来保证自增原子性,它的实现是基于CAS(比较和交换)的。 CAS(CompareAndSwap):判断内存某个位置的值是否与预期值一致,如果是则更改为新值,这个过程是原子的。不会造成数据不一致的问题。 compareAndSet(exc 阅读全文
摘要:
并发和并行的区别 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。 并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时 阅读全文
摘要:
简单的线程池,体现线程的复用 不使用Executors.newFixedThreadPool(int)、Executors.newSingleThreadExecutor()、Executors.newCachedThreadPool(),而是通过ThreadPoolExecutor的7个参数的构造 阅读全文
摘要:
GC垃圾回收 JVM大部分时候回收的都是新生代(伊甸区+幸存0区+幸存1区)。按照回收的区域可以分成两种类型:Minor GC和Full GC(MajorGC)。 Minor GC:只针对新生代区域的GC,大多数Java对象的存活率都不高,Minor GC非常频繁,回收速度快。 Full GC:发生 阅读全文