随笔分类 -  JAVA

JAVA
摘要:取数据流程 缓存穿透:指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案:最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bi 阅读全文
posted @ 2019-04-29 16:19 小凯哥86 阅读(176) 评论(0) 推荐(0)
摘要:1,hashmap,hashtable,ConcurrentHashMap 考问点1,hashmap的数据结构,其数据结构为数组+链表,把key进过hash算法得到hashcode, 然后hashcode%数组大小,得到数组相应的位置然后存放, 不同的key进过hash和取模可能会得到相同的数组位置 阅读全文
posted @ 2019-04-27 10:57 小凯哥86 阅读(205) 评论(0) 推荐(0)
摘要:锁是JAVA多线程关键,也是面试中必问的, 在此好好总结一下。 (先要从进程和线程说起,此处先欠下,回头专门说一下操作系统是怎么管理进程和线程的) 说到多线程就要说说JAVA的内存模型:图片来自于网络。 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中 阅读全文
posted @ 2019-04-24 11:40 小凯哥86 阅读(448) 评论(0) 推荐(0)
摘要:CAS是什么? CAS是英文单词CompareAndSwap的缩写,中文意思是:比较并替换。CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。 CAS指令执行时,当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做。整个比较并替换的操作是一个原子操 阅读全文
posted @ 2019-04-24 11:40 小凯哥86 阅读(251) 评论(0) 推荐(0)