摘要:
新博客地址:https://blog.csdn.net/chw0629 欢迎大家来作客! 阅读全文
摘要:
HashMap实现Map接口,非线程安全的,区别于ConcurrentHashMap。允许使用null值和null键,不保证映射的顺序.底层数据结构是一个“数组+链表+红黑树“put(): 根据key计算得到key.hash = (h = k.hashCode()) ^ (h >>> 16); 根据 阅读全文
摘要:
1)synchronized 是 Java 内建的同步机制,它提供了互斥的语义和可见性,当一个线程已经获取当前锁时,其他试图获取的线程只能等待或者阻塞在那里。ReentrantLock,通常翻译为再入锁,是 Java 5 提供的锁实现,语义和 synchronized 基本相同。但是Reentran 阅读全文
摘要:
volatile可以保证线程可见性和禁止指令重排序,但是无法保证原子性。在JVM底层volatile是采用“内存屏障”来实现的。加入volatile关键字时,汇编后会多出一个lock前缀指令。lock前缀指令其实就相当于一个内存屏障。Java 并发类库提供的线程池有哪几种?Executors 目前提 阅读全文
摘要:
ThreadLocal,该类提供了线程局部 (thread-local) 变量,ThreadLocal会为每个线程创建变量的副本,线程之间互不影响,这样就不存在线程安全问题。在每个线程Thread内部有一个ThreadLocal.ThreadLocalMap类型的成员变量threadLocals,这 阅读全文
摘要:
1)事务:MyISAM不支持,InnoDB支持2)锁级别: MyISAM 表级锁,InnoDB 行级锁MySQL表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。InnoDB行锁是通过给索引项加锁来实现的,即只有通过索引条件检索数据,In 阅读全文
摘要:
JVM三大性能调优参数 JVM 几个重要的参数:-server -Xmx3g -Xms3g -XX:MaxPermSize=128m-XX:NewRatio=1 新生代(Eden + 2*S)与老年代(不包括永久区)的比值-XX:SurvivorRatio=8 2个Survivor区和Eden区的比 阅读全文
摘要:
Redis 持久化机制 Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。实现:单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然后由子进程写入到临 阅读全文
摘要:
使用log4j时不起作用,每次执行完出现以下提示: log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory). log4j:WARN Please initialize the l 阅读全文
摘要:
在实际编程中,要尽量避免出现死锁的情况,但是让你故意写一个死锁的程序时似乎也不太简单(有公司会出这样的面试题),以下是一个简单的死锁例子,程序说明都写着类的注释里了,有点罗嗦,但是应该也还是表述清楚了的。 [code=java]/*** 一个简单的死锁类* @author iStar* 当类的对象f 阅读全文