- 博客(45)
- 收藏
- 关注
原创 怎么保证缓存和数据库数据的一致性?
淘汰缓存还是更新缓存?选择淘汰缓存原因:数据可能为简单数据,也可能为较复杂的数据,复杂数据进行缓存的更新操作,成本较高,因此一般推荐淘汰缓存先淘汰缓存还是先更新数据库?选择先淘汰缓存,再更新数据库原因:假如先更新数据库,再淘汰缓存,假如缓存淘汰失败,那么后面的请求都会得到脏数据,直至缓存过期。假如先淘汰缓存再更新数据库,如果数据库更新失败,只会产生一次缓存miss,相比较而言,后者对业务影响更小一点。延时双删策略如下场景:同时有一个请求A进行更新操作,另一个请求B进行查询操作。.
2021-05-31 21:31:39 171
原创 Volatile 和 CAS 的弊端之总线风暴
一、什么是总线风暴总线风暴,听着真是一个帅气的词语,但如果发生在你的系统上那就不是很美丽了,废话不多说,先看图说结论。什么是总线风暴,先来看结论在java中使用unsafe实现cas,而其底层由cpp调用汇编指令实现的,如果是多核cpu是使用lock cmpxchg指令,单核cpu 使用compxch指令。如果在短时间内产生大量的cas操作在加上 volatile的嗅探机制则会不断地占用总线带宽,导致总线流量激增,就会产生总线风暴。 总之,就是因为volatile 和CAS 的操作导致BUS
2021-05-16 23:02:00 829 1
原创 kafka之CopyOnWriteMap
一:kafka之CopyOnWriteMapkafka中每个分区的数据都是读多写少的操作,通过内存可见性提高每个分区读写性能。CopyOnWriteMap实体类:/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for addit
2021-05-16 21:24:52 496 1
原创 JVM之如何判断对象已死
一:JVM之如何判断对象已死1、引用计数法给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能被再使用的。主流的JVM里面没有选用引用计数算法来管理内存,其中最主要的原因是它很难解决对象间的互循环引用的问题。2、可达性分析算法通过一些列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时(就是从GC Roots 到这个对
2021-05-15 00:16:40 109
原创 反射
一:反射1:代码实现Student实体类:package com.github.plugin.reflection;/** * @author lizhangyu * @version 1.0 * @description * @date 2021/5/13 10:51 */public class Student { /** * 姓名 */ public String name; /** * 性别 */
2021-05-13 11:41:06 95
原创 联易融Java社招一面
一:联易融Java社招一面1:项目主要问你负责什么模块,做什么业务,然后问下公司的项目架构。这个比较简单,只要把平时做过的说出来都还好。2:Java基础String类为什么不可以被继承? 多线程的实现方式有那些?线程的几种状态,wait和sleep的区别? StringBuffer和StringBuilder的区别? 抽象类和接口的区别? List循环删除有什么问题? 反射了解吗?如何通过反射实例化对象? map接口有什么实现类,有什么区别? hashMap和concurent
2021-05-11 22:47:48 486 2
原创 红黑树
一:红黑树的应用场景红黑树(Red-Black Tree,以下简称RBTree)的实际应用非常广泛,比如Linux内核中的完全公平调度器、高精度计时器、ext3文件系统等等,各种语言的函数库如Java的TreeMap和TreeSet,C++ STL的map、multimap、multiset等。RBTree也是函数式语言中最常用的持久数据结构之一,在计算几何中也有重要作用。值得一提的是,Java 8中HashMap的实现也因为用RBTree取代链表,性能有所提升。二:RBTree的定义RBT
2021-05-05 17:43:59 2072
原创 RSA加解密
一:RSA加密背景RSA是目前使用最广泛的公钥密码体制之一。它是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA算法的安全性基于RSA问题的困难性,也就是基于大整数因子分解的困难性上。但是RSA问题不会比因子分解问题更加困难,也就是说,在没有解决因子分解问题的情况下可能解决RSA问题,因此RSA算法并不是完全基于
2021-05-03 22:28:07 6288 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人