摘要:
1.缓存雪崩:缓存挂了,导致直接查数据库。redis cluster高可用集群部署。 对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下 阅读全文
摘要:
一、CAS机制 1.CAS(Compare-and-Swap),即比较并替换,java并发包中许多Atomic的类的底层原理都是CAS。 2.CAS需要有3个操作数: 1)需要读写的内存值 V 2)进行比较的预期值 A 3)拟写入的新值 B。 CAS指令执行时,当且仅当内存值V与预期值A相等时,将内 阅读全文
摘要:
一、高并发优化思路: 1.前端页面:用户点击按钮后置灰,禁止用户重复提交请求。动静分离 2.js层:限制用户在x秒之内只能提交一次请求。 3.服务层:缓存异步处理。消息队列和Redis。限流 阅读全文
摘要:
一、Elasticsearch概述 Elasticsearch 是一个基于Lucene的分布式搜索引擎。 搜索引擎三大过程:爬取内容、进行分词、建立反向索引。 二、Elasticsearch如何快速索引:倒排索引或反向索引 将key映射value,改为value映射key。 倒排索引:即把文件ID对 阅读全文
摘要:
一、装箱与拆箱 1.装箱:自动将基本数据类型转换为包装器类型。Integer的valueOf(int)方法 2.拆箱 :自动将包装器类型转换为基本数据类型。Integer的intValue()方法。 二、基本类型对应的包装类型 阅读全文
摘要:
参考:GC垃圾收集器分类 一、垃圾回收算法 1.标记-清除算法 2.复制算法 3.标记-整理算法 二、按垃圾收集器所处区域分类 1.新生代收集器:Serial(复制算法)、ParNew、Parallel Scavenge; 2.老年代收集器:Serial Old(标记-整理)、Parallel Ol 阅读全文
摘要:
一、实现原理 1.插入内存屏障,禁止指令重排序。编译器和处理器(cpu) 2.保证共享变量对所有线程的可见性。 阅读全文
摘要:
一、 “==” 和 equals()的区别 参考:“==” 和 equals()的区别 1. == :比较. 基本数据类型比较的是值;. 引用类型比较的是地址值。 2. equals(Object o):1)不能比较基本数据类型,基本数据类型不是类类型;2)a.比较引用类型时(该方法继承自Objec 阅读全文
摘要:
一、常用加密算法 常见的加密算法可分为三大类:Hash算法、对称加密,非对称加密。 1.Hash算法:加密之后不能解密,因为没有秘钥,一般用于数据验证。 Base64、MD5、HMAC、SHA 2.对称加密:加密和解密使用相同的密钥。 DES、3DES、AES 3.非对成加密:加密和解密使用不同的密 阅读全文
摘要:
一、MyBatis的重要组件 Mybatis底层封装了JDBC,使用了动态代理模式。 1.SqlSessionFactoryBuilder (构造器):使用Builder模式根据mybatis-config.xml配置或者代码来生成SqISessionFactory。 2.SqlSessionFac 阅读全文