<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jiegouyihao的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jiegouyihao</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jiegouyihao]]></copyright><item><title><![CDATA[redis缓存]]></title><link>https://blog.youkuaiyun.com/jiegouyihao/article/details/136292771</link><guid>https://blog.youkuaiyun.com/jiegouyihao/article/details/136292771</guid><author>jiegouyihao</author><pubDate>Mon, 26 Feb 2024 22:00:00 +0800</pubDate><description><![CDATA[解决方案主要是可以将缓存失效时间分散开，比如可以在原有的失效时间基础上增加一个随机值，比如1-5分钟随机，这样每一个缓存的过期时间的重复率就会降低，就很难引发集体失效的事件。当Redis中的内存不够用时，此时在向Redis中添加新的key，那么Redis就会按照某一种规则将内存中的数据删除掉，这种数据的删除规则被称之为内存的淘汰策略。如果业务中有置顶的需求，可以使用 volatile-lru 策略，同时置顶数据不设置过期时间，这些数据就一直不被删除，会淘汰其他设置过期时间的数据。]]></description><category></category></item><item><title><![CDATA[redis分布式锁和集群]]></title><link>https://blog.youkuaiyun.com/jiegouyihao/article/details/136305256</link><guid>https://blog.youkuaiyun.com/jiegouyihao/article/details/136305256</guid><author>jiegouyihao</author><pubDate>Mon, 26 Feb 2024 19:46:57 +0800</pubDate><description><![CDATA[目前的I/O多路复用都是采用的epoll模式实现，它会在通知用户进程Socket就绪的同时，把已就绪的Socket写入用户空间，不需要挨个遍历Socket来判断是否就绪，提升了性能。Redis 分片集群引入了哈希槽的概念，Redis 集群有 16384 个哈希槽，每个 key通过 CRC16 校验后对 16384 取模来决定放置哪个槽，集群的每个节点负责一部分 hash 槽。单节点Redis的并发能力是有上限的，要进一步提高Redis的并发能力，就需要搭建主从集群，实现读写分离。]]></description><category></category></item><item><title><![CDATA[第01章 Spring概述]]></title><link>https://blog.youkuaiyun.com/jiegouyihao/article/details/105187212</link><guid>https://blog.youkuaiyun.com/jiegouyihao/article/details/105187212</guid><author>jiegouyihao</author><pubDate>Sun, 29 Mar 2020 22:23:05 +0800</pubDate><description><![CDATA[第01章 Spring概述1.框架2.Spring框架3.Spring优点4.IOC控制反转5.例子6.总结
1.框架

高度抽取可重用代码的一种设计
高度的通用性
多个可重用模块的集合，形成一个某个领域的整体解决方案

2.Spring框架

Spring是一个开源框架
Spring为简化企业级开发而生。使用Spring，JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能，在...]]></description><category></category></item><item><title><![CDATA[SpringMVC工作原理]]></title><link>https://blog.youkuaiyun.com/jiegouyihao/article/details/105183476</link><guid>https://blog.youkuaiyun.com/jiegouyihao/article/details/105183476</guid><author>jiegouyihao</author><pubDate>Sun, 29 Mar 2020 18:52:34 +0800</pubDate><description><![CDATA[SpringMVC工作原理1.工作原理2.画图解释3.组件说明4.具体流程步骤如下:
1.工作原理
1.用户发送请求至前端控制器DispatcherServlet
2. DispatcherServlet收到请求调用处理器映射器HandlerMappering
3.处理器映射器找到具体的处理器Handler（可以根据xml配置或注解进行查找），生成处理器对象及处理器拦截器（如果有则生成）Handl...]]></description><category></category></item><item><title><![CDATA[有n步台阶，一次只能上1步或2步，共有多少种走法？]]></title><link>https://blog.youkuaiyun.com/jiegouyihao/article/details/105170336</link><guid>https://blog.youkuaiyun.com/jiegouyihao/article/details/105170336</guid><author>jiegouyihao</author><pubDate>Sat, 28 Mar 2020 22:54:23 +0800</pubDate><description><![CDATA[方法的参数传递机制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){
  ...]]></description><category></category></item><item><title><![CDATA[java方法的参数传递机制]]></title><link>https://blog.youkuaiyun.com/jiegouyihao/article/details/105169603</link><guid>https://blog.youkuaiyun.com/jiegouyihao/article/details/105169603</guid><author>jiegouyihao</author><pubDate>Sat, 28 Mar 2020 22:05:22 +0800</pubDate><description><![CDATA[方法的参数传递机制1.方法的参数传递机制2.实战3.方法的参数传递分析过程
1.方法的参数传递机制

实参是基本数据类型

传递数据值


实参是引用数据类型

传递地址值
特殊的类型：String、包装类等对象不可变性



2.实战
package com.jun;

public class MyData {
    private int a = 10;

    public int g...]]></description><category></category></item><item><title><![CDATA[java变量分析过程]]></title><link>https://blog.youkuaiyun.com/jiegouyihao/article/details/105166210</link><guid>https://blog.youkuaiyun.com/jiegouyihao/article/details/105166210</guid><author>jiegouyihao</author><pubDate>Sat, 28 Mar 2020 19:05:56 +0800</pubDate><description><![CDATA[java变量分析过程1.概述2、局部变量与成员变量的区别3、当局部变量与成员变量重名时，如何区分：4、实战5、java变量分析过程
1.概述

就近原则
变量的分类

成员变量：类变量、实例变量
局部变量


非静态代码块的执行：每次创建实例对象都会执行
方法的调用规则：调用一次执行一次

2、局部变量与成员变量的区别

声明的位置

局部变量：方法体{}中，形参，代码块{}中
成员变量：类中方法...]]></description><category></category></item><item><title><![CDATA[单例模式破坏和解决方案]]></title><link>https://blog.youkuaiyun.com/jiegouyihao/article/details/105163950</link><guid>https://blog.youkuaiyun.com/jiegouyihao/article/details/105163950</guid><author>jiegouyihao</author><pubDate>Sat, 28 Mar 2020 16:57:46 +0800</pubDate><description><![CDATA[单例模式破坏和解决方案1.破坏2.破坏实战3.解决方案
1.破坏

序列化
克隆
反射

2.破坏实战
package com.jun.design.pattern;

import java.io.*;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

public...]]></description><category></category></item><item><title><![CDATA[单例设计模式（Singleton）]]></title><link>https://blog.youkuaiyun.com/jiegouyihao/article/details/105162299</link><guid>https://blog.youkuaiyun.com/jiegouyihao/article/details/105162299</guid><author>jiegouyihao</author><pubDate>Sat, 28 Mar 2020 16:38:43 +0800</pubDate><description><![CDATA[单例设计模式（Singleton）1.定义和要点2.几种常见形式3.直接实例化饿汉式（简洁直观）4.枚举式（最简洁）5. 静态代码块饿汉式（适合复杂实例化）6. 线程不安全（适用于单线程）7. 双检锁/双重校验锁（DCL，即 double-checked locking）线程安全（适用于多线程）8.  静态内部类形式（适用于多线程）9.  单例模式在 JDK 应用
1.定义和要点
1.定义
一个类...]]></description><category></category></item><item><title><![CDATA[自增运算分析过程]]></title><link>https://blog.youkuaiyun.com/jiegouyihao/article/details/105151722</link><guid>https://blog.youkuaiyun.com/jiegouyihao/article/details/105151722</guid><author>jiegouyihao</author><pubDate>Fri, 27 Mar 2020 22:19:05 +0800</pubDate><description><![CDATA[自增运算分析流程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 +...]]></description><category></category></item><item><title><![CDATA[java初始化过程]]></title><link>https://blog.youkuaiyun.com/jiegouyihao/article/details/105141148</link><guid>https://blog.youkuaiyun.com/jiegouyihao/article/details/105141148</guid><author>jiegouyihao</author><pubDate>Fri, 27 Mar 2020 15:21:36 +0800</pubDate><description><![CDATA[java初始化过程1、类初始化过程1.1 一个类要创建实例需要先加载并初始化该类1.2 main方法所在的类需要先加载和初始化1.3 一个子类要初始化需要先初始化父类1.4  一个类初始化就是执行`()`方法1.4.1 `()`方法由静态类变量显示赋值代码和静态代码块组成1.4.2 类变量显示赋值代码和静态代码块代码从上到下顺序执行1.4.3 `()`方法只执行一次2、实例初始化过程2.1 实例初...]]></description><category></category></item></channel></rss>