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