- 博客(6)
- 收藏
- 关注
原创 分布式锁的实现
实现Redis的分布式锁主要通过lua脚本,既简单又安全完整项目地址 https://gitee.com/HappyChicken/Distributor 麻烦大家顺手给个Star~这里只给出几段核心的代码段供参考:提前定义好Redis命令中需要的字符串以及默认过期时间 // Redis命令常用字符串 private static final String LOCK_S...
2019-05-05 12:25:47 184
原创 HashMap常见面试考题
自己正在准备秋招,总结下面试常遇到的关于HashMap的问题一、如何解决哈希冲突解决哈希冲突的办法有开放地址法和链地址法开放地址法:线性探测、二次线性探测、再哈希链地址法:插入时间复杂度最优o(1),最差o(n)二、HashMap中常见的问题数组的长度总是2的n次方,为什么?length总是2的n次方时,hash & (length-1)运算等价于hash % len...
2019-04-27 16:24:41 895
原创 蘑菇街面经
蘑菇街一、二面面经一面:(53分钟)Mybatis一级、二级缓存JDK1.8集合源码如何保证list的线程安全Spring源码Mysql常用的索引、效率如何实现线程安全的HashMapJDK1.8的ConcurrentHashMap源码Mysql的事务怎么实现Spring的事务如何实现RPC服务器A如何调用服务器B的方法?Dubbo的底层原理远程服务调用如何判断一个主机是...
2019-04-27 15:45:40 472
原创 实现简单的读写锁
用2个int实现一个简单的Java 读写锁,帮助理解读写锁的原理/** * 只用2个int实现一个读写锁 * * @author Red * date: 2019/4/27 10:20 */public class MyReadWriteLock { // 读线程个数 private int readCount = 0; // 写线程个数 priva...
2019-04-27 10:34:29 282
原创 String类源码
String类源码学习笔记一、String类的组成 一个 String 字符串实际上是一个 char 数组,我们常说String类是不可变的,是因为这个数组是final修饰的。但事实上只是数组的引用不可变,我们仍然可以通过反射来改变char数组中的元素值。 private final char value[];二、String类的方法compareTo:比较的次数为两个字符串长度...
2019-04-26 12:41:39 464
原创 Object源码
Object源码学习笔记 一、Object类拥有的方法:registerNatives() 注册本地方法 在Object的Static块里,说明类加载时要加载本地方法getClass() 获取Class对象@Testpublic void testClass(){ Parent p = new Son(); System.out.println(p.g...
2019-04-24 11:29:14 199
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人