
面经
站在风口的猪猪侠
这个作者很懒,什么都没留下…
展开
-
redis面经整理
什么是 Redis?简述它的优缺点?简介:全称:remote dictionary server,本质是一个key-value类型的内训数据库。整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据刷新到硬盘上进行保存优点:(1)因为是纯内存操作,性能出色。每秒可以处理超过 10 万次读写操作,是已知性能最快的Key-Value DB;(2)支持多种数据结构,单个value最大的限制是1GB缺点:数据库容量受物理内存的限制,不能做海量数据高性能独写,因此 Redis 适合的场景主要局..原创 2022-04-10 11:19:08 · 983 阅读 · 0 评论 -
三个线程交替打印字符
三个线程分别打印"A"、“B”、“C”,现在需要完成三个线程交替打印,10个ABCpublic class Main { private static AtomicInteger index = new AtomicInteger(0); private static AtomicInteger epoches = new AtomicInteger(0); static Thread A = new ThreadA(); static Thread B = new Thr原创 2022-03-29 21:06:20 · 518 阅读 · 0 评论 -
CopyOnWriteArrayList线程安全问题
今天在学习CopyOnWriteArrayList原理的时候,发现一个问题。CopyOnWriteArrayList更新操作是先复制原数组,然后在新数组上修改,之后再将原数组的引用指向新数组。/** The lock protecting all mutators */ final transient ReentrantLock lock = new ReentrantLock(); /** The array, accessed only via getArray/setArray.原创 2021-11-23 13:35:52 · 1210 阅读 · 2 评论 -
两个线程交替打印helloworld
美团面试题:用2个线程交替打印helloworld:t1: ht2: et3: lt4: lt5: ot6: w……代码import java.util.concurrent.atomic.AtomicInteger;public class PrintHelloWord{ private static AtomicInteger index = new AtomicInteger(0); private static String s = "helloWor.原创 2021-08-29 12:22:30 · 472 阅读 · 0 评论 -
为啥HashMap的长度一定是2的n次方
直接说原因:计算方便hash分布更均匀计算方便当HashMap长度为2的次方时,等式 hash(key) & (length - 1) == hash(key) % length 成立解释:hash(key) % length 得到的结果 hash(key) - (hash(key) / length) * length因为HashMap长度为2的次方,所以length - 1 的值转成二进制为全1的形式(2的次方一定是 1000…… 这种形式,再减去1,剩下的一定都是1,没有原创 2021-08-14 17:36:01 · 999 阅读 · 0 评论