- 博客(11)
- 资源 (4)
- 收藏
- 关注
原创 redis缓存
解决方案主要是可以将缓存失效时间分散开,比如可以在原有的失效时间基础上增加一个随机值,比如1-5分钟随机,这样每一个缓存的过期时间的重复率就会降低,就很难引发集体失效的事件。当Redis中的内存不够用时,此时在向Redis中添加新的key,那么Redis就会按照某一种规则将内存中的数据删除掉,这种数据的删除规则被称之为内存的淘汰策略。如果业务中有置顶的需求,可以使用 volatile-lru 策略,同时置顶数据不设置过期时间,这些数据就一直不被删除,会淘汰其他设置过期时间的数据。
2024-02-26 22:00:00
1393
1
原创 redis分布式锁和集群
目前的I/O多路复用都是采用的epoll模式实现,它会在通知用户进程Socket就绪的同时,把已就绪的Socket写入用户空间,不需要挨个遍历Socket来判断是否就绪,提升了性能。Redis 分片集群引入了哈希槽的概念,Redis 集群有 16384 个哈希槽,每个 key通过 CRC16 校验后对 16384 取模来决定放置哪个槽,集群的每个节点负责一部分 hash 槽。单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。
2024-02-26 19:46:57
1057
1
原创 第01章 Spring概述
第01章 Spring概述1.框架2.Spring框架3.Spring优点4.IOC控制反转5.例子6.总结1.框架高度抽取可重用代码的一种设计高度的通用性多个可重用模块的集合,形成一个某个领域的整体解决方案2.Spring框架Spring是一个开源框架Spring为简化企业级开发而生。使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在...
2020-03-29 22:23:05
144
原创 SpringMVC工作原理
SpringMVC工作原理1.工作原理2.画图解释3.组件说明4.具体流程步骤如下:1.工作原理1.用户发送请求至前端控制器DispatcherServlet2. DispatcherServlet收到请求调用处理器映射器HandlerMappering3.处理器映射器找到具体的处理器Handler(可以根据xml配置或注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)Handl...
2020-03-29 18:52:34
121
原创 有n步台阶,一次只能上1步或2步,共有多少种走法?
方法的参数传递机制1.题目2.方法3.递归分析过程4.递归实战5.循环迭代分析过程6.循环迭代实战7.总结1.题目有n步台阶,一次只能上1步或2步,共有多少种走法?2.方法递归循环迭代3.递归分析过程4.递归实战package com.jun.algorithm;public class Step1 { public static int f(int n){ ...
2020-03-28 22:54:23
1656
原创 java方法的参数传递机制
方法的参数传递机制1.方法的参数传递机制2.实战3.方法的参数传递分析过程1.方法的参数传递机制实参是基本数据类型传递数据值实参是引用数据类型传递地址值特殊的类型:String、包装类等对象不可变性2.实战package com.jun;public class MyData { private int a = 10; public int g...
2020-03-28 22:05:22
108
原创 java变量分析过程
java变量分析过程1.概述2、局部变量与成员变量的区别3、当局部变量与成员变量重名时,如何区分:4、实战5、java变量分析过程1.概述就近原则变量的分类成员变量:类变量、实例变量局部变量非静态代码块的执行:每次创建实例对象都会执行方法的调用规则:调用一次执行一次2、局部变量与成员变量的区别声明的位置局部变量:方法体{}中,形参,代码块{}中成员变量:类中方法...
2020-03-28 19:05:56
154
原创 单例模式破坏和解决方案
单例模式破坏和解决方案1.破坏2.破坏实战3.解决方案1.破坏序列化克隆反射2.破坏实战package com.jun.design.pattern;import java.io.*;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;public...
2020-03-28 16:57:46
173
原创 单例设计模式(Singleton)
单例设计模式(Singleton)1.定义和要点2.几种常见形式3.直接实例化饿汉式(简洁直观)4.枚举式(最简洁)5. 静态代码块饿汉式(适合复杂实例化)6. 线程不安全(适用于单线程)7. 双检锁/双重校验锁(DCL,即 double-checked locking)线程安全(适用于多线程)8. 静态内部类形式(适用于多线程)9. 单例模式在 JDK 应用1.定义和要点1.定义一个类...
2020-03-28 16:38:43
144
原创 自增运算分析过程
自增运算分析流程1、实战2、自增运算分析流程3、总结1、实战package com.jun;public class AutoIncrement { public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i +...
2020-03-27 22:19:05
109
原创 java初始化过程
java初始化过程1、类初始化过程1.1 一个类要创建实例需要先加载并初始化该类1.2 main方法所在的类需要先加载和初始化1.3 一个子类要初始化需要先初始化父类1.4 一个类初始化就是执行`()`方法1.4.1 `()`方法由静态类变量显示赋值代码和静态代码块组成1.4.2 类变量显示赋值代码和静态代码块代码从上到下顺序执行1.4.3 `()`方法只执行一次2、实例初始化过程2.1 实例初...
2020-03-27 15:21:36
167
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人