面试
转身雪人
随心所欲,认真生活
展开
-
Hash冲突的解决方法(待完善)
一般比较常用的方法有开放地址法:(内容来自百度百科) 1. 开放寻址法:Hi=(H(key) + di) MOD m,i=1,2,…,k(k1.1. di=1,2,3,…,m-1,称线性探测再散列;顺序查看表的下一单元,直至找到某个空单元,或查遍全表。 1.2. di=1^2,-1^2,2^2,-2^2,⑶^2,…,±(k)^2,(k1.3. di=伪随机数序列,称伪随机探测再散列。根原创 2018-01-21 22:37:05 · 346 阅读 · 0 评论 -
【问题】如何避免并发情况下的重复提交
背景 在业务开发中,我们常会面对防止重复请求的问题。当服务端对于请求的响应涉及数据的修改,或状态的变更时,可能会造成极大的危害。重复请求的后果在交易系统、售后维权,以及支付系统中尤其严重。重复请求的一致性问题又称幂等性问题。背景唯一键法订单状态法基于缓存的数据验证利用数据库的主键唯一缓存计数器先弄清楚啥叫幂等性。比如 1. 一个用户原创 2018-02-06 18:55:41 · 6976 阅读 · 3 评论 -
浅谈CAS机制
这里只是浅谈一下CAS机制,有机会的话后续会深入CAS背景机制为什么具有原子性缺点ABA问题ABA问题的解决方案CAS 背景 尽管Java1.6为Synchronized做了优化,增加了从偏向锁到轻量级锁再到重量级锁的过度,但是在最终转变为重量级锁之后,性能仍然较低。这个时候我们想到了CAS CAS 是 Compare原创 2018-01-29 12:31:32 · 1479 阅读 · 0 评论 -
MVCC (Multiversion Concurrency Control) 多并发版本控制
不同事物在同一时刻看到的数据可能是不同的(事务之间的隔离性),同一事物在不同时刻看到的数据一定是相同的(repeatable read)。我们首先会通过数据库的引擎保证这一点。上面那句话我说的,不保证正确哈哈哈MVCC并没有统一的标准,各个数据库实现均采用不同方式来实现MVCC,我们这里针对的是MySQL InnoDB的实现方式:原理:mvcc提供基于某个时间的快照,使...原创 2018-03-15 20:40:27 · 587 阅读 · 0 评论 -
【基础算法】LRU-包括最简单的实现和纯手写
Least Recently Use LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。什么是LRULRU的最简单实现手写LRU 什么是LRU利用LinkedHashMap实现的简单LRU看看如何使用手写LRU(利用数组)手写LRU(...原创 2018-01-30 14:28:19 · 9600 阅读 · 0 评论 -
【问题】开发中会遇到的问题整理
老被问,做个整理吧。。。dubbo问题多线程应用场景JVM调优dubbo问题多线程应用场景JVM调优原创 2018-03-13 15:11:35 · 378 阅读 · 0 评论 -
Collection和Collections分别是什么
这个应该面试常问,也相对很简单。这里就不做过深的阐述了。CollectionCollectionsCollection它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。 Collection ├List │├LinkedLis原创 2018-01-27 16:12:38 · 2607 阅读 · 0 评论 -
ArrayList和LinkedList的简介,以及对比
恩,由于面向面试所以比较简洁。基于链表实现的方式使得 LinkedList 在插入和删除时更优于 ArrayList,而随机访问则比 ArrayList 逊色些。ArrayList不适合在具体的index下插入元素,那样需要移动数组。ArrayList动态数组,初始长度可以通过构造函数设定,默认为10(jdk1.6以后),允许null值。ArrayList相当于在没指定init原创 2018-01-27 14:14:15 · 335 阅读 · 0 评论 -
浅谈String/StringBuffer/StringBuilder
面向面试,所以力求言简意赅。String是final的东西,拼接的时候会不停的new对象然后重新赋值,故在操作字符串的时候不建议使用。StringBuffer 在StringBuilder之前就有的,线程安全,适用于多线程情况。StringBuilder 速度快于StringBuffer,但并没有synchronized线程不安全。 jdk1.5以后javac默认将由“+”拼接的字原创 2018-01-23 18:03:57 · 261 阅读 · 0 评论 -
HashMap和HashTable
HashMap我有单独写,就不在这里赘述了。继承不同线程安全对Null的处理继承不同HashMap和HashTable都实现了Map接口。但HashTable继承的是Directory类,HashMap继承的是AbstractMap。 注意: Directory是过时的类 This class is obsolete. New implemen原创 2018-01-25 09:51:03 · 223 阅读 · 0 评论 -
如何重写Object的hashCode和equals方法
暂原创 2018-01-27 15:02:54 · 187 阅读 · 0 评论