04 2020 档案

摘要:一、ThreadLocal是什么?线程本地变量 数据隔离 1.ThreadLocal用来存放线程本地变量,提供了一种线程安全的方式,用来避免数据共享(线程变量隔离)。 ThreadLocal<T>其实是与线程绑定的一个变量。 ThreadLocal和Synchonized都用于解决多线程并发访问。但 阅读全文
posted @ 2020-04-16 22:25 遇见神龙 阅读(203) 评论(0) 推荐(0) 编辑
摘要:1.缓存雪崩:缓存挂了,导致直接查数据库。redis cluster高可用集群部署。 对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下 阅读全文
posted @ 2020-04-16 20:33 遇见神龙 阅读(663) 评论(0) 推荐(0) 编辑
摘要:一、CAS机制 1.CAS(Compare-and-Swap),即比较并替换,java并发包中许多Atomic的类的底层原理都是CAS。 2.CAS需要有3个操作数: 1)需要读写的内存值 V 2)进行比较的预期值 A 3)拟写入的新值 B。 CAS指令执行时,当且仅当内存值V与预期值A相等时,将内 阅读全文
posted @ 2020-04-15 22:48 遇见神龙 阅读(1600) 评论(0) 推荐(0) 编辑
摘要:一、高并发优化思路: 1.前端页面:用户点击按钮后置灰,禁止用户重复提交请求。动静分离 2.js层:限制用户在x秒之内只能提交一次请求。 3.服务层:缓存异步处理。消息队列和Redis。限流 阅读全文
posted @ 2020-04-15 21:45 遇见神龙 阅读(179) 评论(0) 推荐(0) 编辑
摘要:一、Elasticsearch概述 Elasticsearch 是一个基于Lucene的分布式搜索引擎。 搜索引擎三大过程:爬取内容、进行分词、建立反向索引。 二、Elasticsearch如何快速索引:倒排索引或反向索引 将key映射value,改为value映射key。 倒排索引:即把文件ID对 阅读全文
posted @ 2020-04-15 21:26 遇见神龙 阅读(162) 评论(0) 推荐(0) 编辑
摘要:一、装箱与拆箱 1.装箱:自动将基本数据类型转换为包装器类型。Integer的valueOf(int)方法 2.拆箱 :自动将包装器类型转换为基本数据类型。Integer的intValue()方法。 二、基本类型对应的包装类型 阅读全文
posted @ 2020-04-15 21:03 遇见神龙 阅读(127) 评论(0) 推荐(0) 编辑
摘要:参考:GC垃圾收集器分类 一、垃圾回收算法 1.标记-清除算法 2.复制算法 3.标记-整理算法 二、按垃圾收集器所处区域分类 1.新生代收集器:Serial(复制算法)、ParNew、Parallel Scavenge; 2.老年代收集器:Serial Old(标记-整理)、Parallel Ol 阅读全文
posted @ 2020-04-15 20:53 遇见神龙 阅读(427) 评论(0) 推荐(0) 编辑
摘要:一、实现原理 1.插入内存屏障,禁止指令重排序。编译器和处理器(cpu) 2.保证共享变量对所有线程的可见性。 阅读全文
posted @ 2020-04-15 20:09 遇见神龙 阅读(139) 评论(0) 推荐(0) 编辑
摘要:一、 “==” 和 equals()的区别 参考:“==” 和 equals()的区别 1. == :比较. 基本数据类型比较的是值;. 引用类型比较的是地址值。 2. equals(Object o):1)不能比较基本数据类型,基本数据类型不是类类型;2)a.比较引用类型时(该方法继承自Objec 阅读全文
posted @ 2020-04-15 11:41 遇见神龙 阅读(189) 评论(0) 推荐(0) 编辑
摘要:一、常用加密算法 常见的加密算法可分为三大类:Hash算法、对称加密,非对称加密。 1.Hash算法:加密之后不能解密,因为没有秘钥,一般用于数据验证。 Base64、MD5、HMAC、SHA 2.对称加密:加密和解密使用相同的密钥。 DES、3DES、AES 3.非对成加密:加密和解密使用不同的密 阅读全文
posted @ 2020-04-14 22:09 遇见神龙 阅读(2694) 评论(0) 推荐(0) 编辑
摘要:一、MyBatis的重要组件 Mybatis底层封装了JDBC,使用了动态代理模式。 1.SqlSessionFactoryBuilder (构造器):使用Builder模式根据mybatis-config.xml配置或者代码来生成SqISessionFactory。 2.SqlSessionFac 阅读全文
posted @ 2020-04-14 11:24 遇见神龙 阅读(8494) 评论(0) 推荐(0) 编辑
摘要:一、Spring aop 基本要素 AOP:将非功能性需求从功能性需求中剥离出来,解耦并且解决代码复用的问题,比如说权限控制,事务控制,记录操作日志,全局捕获异常等 1.Aspect(切面) 2.JoinPoint(连接点) 3.Advice(通知) 1)before:前置通知 2)after:后置 阅读全文
posted @ 2020-04-13 12:16 遇见神龙 阅读(182) 评论(0) 推荐(0) 编辑
摘要:参考:JDK动态代理与CGLib动态代理的区别对比 JDK基于接口实现与CGLib基于继承 1)JDK和CGLib的区别 JDK动态代理只能对实现了接口的类生成代理,而不能针对类 CGLib是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法(继承) 2)Spring在选择用JDK还是CG 阅读全文
posted @ 2020-04-13 10:17 遇见神龙 阅读(11890) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示