面试必备之悲观锁与乐观锁
悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的
JVM 发生内存溢出的 8 种原因、及解决办法
1.Java 堆空间2.GC 开销超过限制3.请求的数组大小超过虚拟机限制4.Perm gen 空间5.Metaspace6.无法新建本机线程7.杀死进程或子进程8.发生 stack_trace_with_native_method1. Java 堆空间发生频率:5颗星造成原因无法在 Java 堆中分配对象吞吐量增加应用程序无意中保存了对象引用,对象无法被 GC 回收应用程序过度使用 finali