java基础
qq_43653899
度人度己,度己度人
展开
-
set去重的底层实现原理
1.在调用add方法添加元素时,先判断该元素的hash值和集合中原有元素的hash值,不一样则添加进来. 2.如果hash值相同,则内部调用equals方法比较值,不同则放入,相同则不加入. 因此set里的元素没有重复的,实现去重. 记得点赞! ...原创 2018-12-10 09:39:05 · 4250 阅读 · 0 评论 -
linux tail命令的使用方法
https://blog.csdn.net/tawlang/article/details/78017532转载 2019-06-12 16:53:04 · 165 阅读 · 0 评论 -
锁及锁粒度的详细比喻
今天看到一篇文章,很详细的描述了锁和锁粒度的概念,如下 为什么要加锁?加锁是为了防止不同的线程访问同一共享资源造成混乱。 打个比方:人是不同的线程,卫生间是共享资源 你在上洗手间的时候肯定要把门锁上吧,这就是加锁,只要你在里面,这个卫生间就被锁了,只有你出来之后别人才能用。想象一下如果卫生间的门没有锁会是什么样? 什么是加锁粒度呢?所谓加锁粒度就是你要锁住的范围是多大。 比如你在家上卫生间,你只要...原创 2019-06-03 17:27:14 · 924 阅读 · 0 评论 -
写一个死锁
Object lock = new ObJect(); syncronized(lock){ System.print.out.ln("a被占用"); } synchronized(lock){ System.print.out.ln(“b被占用”); } 如果有两段线程同时for循环跑这一段,那么输出结果一定是有序的 ababab…,说明当执行a代码时,b被卡住,当b开始执行,a被卡住。 相当...原创 2019-06-03 18:31:19 · 247 阅读 · 0 评论