04 2019 档案

mysql 的INNODB引擎和MYISAM引擎的区别、索引相关
摘要:两个引擎都是使用B+tree 数据结构作为索引 不同点: 1、INNODB的主键必须要有,同时也是聚集索引,INNODB的数据文件本身就是索引文件;而MYISAM则是存储了数据的地址 2、INNODB的辅助索引,会存储主键的地址(所以建议不要把主键的长度设置过大,一般用自增的数字即可),使用辅助索引 阅读全文

posted @ 2019-04-07 13:06 drafire 阅读(483) 评论(0) 推荐(0)

事务的传播性和隔离级别
摘要:事务的传播性:1、PROPOGATION_REQUIRES --需要在一个事务中执行2、PROPOGATION_SUPPOTS --不需要在一个事务中执行,如果有事务,也可以执行3 PROPOGATION_NOT_SUPPORTED --不支持在一个事务中执行,如果在一个正在运行的事务中执行,则会被 阅读全文

posted @ 2019-04-06 12:38 drafire 阅读(1574) 评论(0) 推荐(0)

Atomic 的实现原理
摘要:1、直接操作内存,使用Unsafe 这个类 2、使用 getIntVolatile(var1, var2) 获取线程间共享的变量 3、采用CAS的尝试机制(核心所在),代码如下: public final int getAndAddInt(Object var1, long var2, int va 阅读全文

posted @ 2019-04-06 08:30 drafire 阅读(1781) 评论(0) 推荐(0)

synchronize、Lock、ReenTrantLock 的区别
摘要:synchronize 和Lock: 1、synchronize 系java 内置关键字;而Lock 是一个类 2、synchronize 可以作用于变量、方法、代码块;而Lock 是显式地指定开始和结束位置 3、synchronize 不需要手动解锁,当线程抛出异常的时候,会自动释放锁;而Lock 阅读全文

posted @ 2019-04-06 08:19 drafire 阅读(3863) 评论(0) 推荐(0)

runnable 和 callable 有什么区别
摘要:callable 有返回值,并允许抛出异常 runnable 没有返回值,不会抛出异常 阅读全文

posted @ 2019-04-04 11:48 drafire 阅读(143) 评论(0) 推荐(0)

Iterator 和 ListIterator 有什么区别?
摘要:1、ListIterator 可以在遍历的时候,调用add()添加元素 2、ListIterator提供了更多的一些方法,如previous()、hasPrevious() 等 阅读全文

posted @ 2019-04-04 11:45 drafire 阅读(153) 评论(0) 推荐(0)

在 Queue 中 poll()和 remove()有什么区别?
摘要:poll() ,如果队列为空的时候,则会抛出异常 而remove()只会返回null 阅读全文

posted @ 2019-04-04 11:37 drafire 阅读(1389) 评论(4) 推荐(0)

jdk 8 HashMap源码解读
摘要:转自:https://www.cnblogs.com/little-fly/p/7344285.html 在原来的作者的基础上,增加了本人对源代码的一些解读。 如有侵权,请联系本人 这几天学习了HashMap的底层实现,但是发现好几个版本的,代码不一,而且看了Android包的HashMap和JDK 阅读全文

posted @ 2019-04-04 09:55 drafire 阅读(266) 评论(0) 推荐(0)

java 中,没有任何方法和成员变量的接口
摘要:1、Serializable 2、Cloneable 阅读全文

posted @ 2019-04-03 17:28 drafire 阅读(320) 评论(0) 推荐(0)

ArrayList、LinkedList、Vector、Array
摘要:ArrayList 本质是一个数组。 优势:追加元素到数组末尾的时候速度快,同时检索元素的速度也快。 劣势:如果要插入一个元素到数组之间慢;如果要追加的元素数量多于数组的容量,则需要频繁扩容使用Arrays.Arrays.copyOf 重新创建一个合适容量的数组 LinkedList 本质是一个li 阅读全文

posted @ 2019-04-03 10:17 drafire 阅读(162) 评论(0) 推荐(0)

StringBuilder和StringBuffer
摘要:StringBuffer和StringBuilder ,使用append()追加字符串的时候,都是同一个对象,里面的源代码如下: StringBuffer 源代码如下文: @Override public synchronized StringBuffer append(String str) { 阅读全文

posted @ 2019-04-03 09:39 drafire 阅读(116) 评论(0) 推荐(0)