<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lyy_sss的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lyy_sss</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lyy_sss]]></copyright><item><title><![CDATA[JVM详解]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126960915</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126960915</guid><author>lyy_sss</author><pubDate>Wed, 12 Oct 2022 08:36:16 +0800</pubDate><description><![CDATA[2、在多线程的情况下，程序计数器用于记录当前线程执行的位置，从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。这个算法的基本思想就是通过一系列的称为 “GC Roots” 的对象作为起点，从这些节点开始向下搜索，节点所走过的路径称为引用链，当一个对象到 GC Roots 没有任何引用链相连的话，则证明此对象是不可用的，需要被回收。4、设置对象头：初始化零值完成之后，虚拟机要对对象进行必要的设置，例如这个对象是哪个类的实例、如何才能找到类的元数据信息、对象的哈希码、对象的 GC 分代年龄等信息。]]></description><category></category></item><item><title><![CDATA[I/O模型详解]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126947703</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126947703</guid><author>lyy_sss</author><pubDate>Tue, 20 Sep 2022 20:20:54 +0800</pubDate><description><![CDATA[非同步阻塞IO模型中，应用程序会一直发起 read 调用，等待数据从内核空间拷贝到用户空间的这段时间里，线程依然是阻塞的，直到在内核把数据拷贝到用户空间。NIO (Non-blocking/New I/O)，Java 中的 NIO 于 Java 1.4 中引入，对应 java.nio 包，提供了 Channel , Selector，Buffer 等抽象。常见I/O模型：== 同步阻塞 I/O、同步非阻塞 I/O、I/O 多路复用、信号驱动 I/O 和异步 I/O==在IO多路复用模型中，]]></description><category></category></item><item><title><![CDATA[RabbitMQ面经]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126853294</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126853294</guid><author>lyy_sss</author><pubDate>Tue, 20 Sep 2022 10:05:07 +0800</pubDate><description><![CDATA[跟普通集群模式不一样的是，在镜像集群模式下，你创建的 queue，无论元数据还是 queue 里的消息都会存在于多个实例上，就是说，每个 RabbitMQ 节点都有这个 queue 的一个完整镜像，包含 queue 的全部数据的意思。RabbitMQ 有很好的管理控制台，就是在后台新增一个策略，这个策略是镜像集群模式的策略，指定的时候是可以要求数据同步到所有节点的，也可以要求同步到指定数量的节点，再次创建 queue 的时候，应用这个策略，就会自动将数据同步到其他的节点上去了。那这就是第二个坑了。]]></description><category></category></item><item><title><![CDATA[Spring事务、设计模式以及SpringBoot自动装配原理]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126839939</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126839939</guid><author>lyy_sss</author><pubDate>Tue, 13 Sep 2022 21:39:20 +0800</pubDate><description><![CDATA[相比于使用继承，装饰者模式更加灵活。那么，在第一个事务中的两次读数据之间，由于第二个事务的修改，那么第一个事务两次读到的的数据可能是不一样的。幻读：是指当事务不是独立执行时发生的一种现象，例如第一个事务对一个表中的数据进行了修改，这种修改涉及到表中的全部数据行。2、Propagation.REQUIRES_NEW：创建一个新事务，若当前存在事务，则把当前事务挂起，即不管外部方法是否开启事务，Propagation.REQUIRES_NEW修饰的内部方法都会新开启自己的事务，且开启的事务相互独立、互不干扰。]]></description><category></category></item><item><title><![CDATA[Spring & SpringBoot]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126747063</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126747063</guid><author>lyy_sss</author><pubDate>Tue, 13 Sep 2022 16:30:37 +0800</pubDate><description><![CDATA[单独使用 @Controller 不加 @ResponseBody的话一般是用在要返回一个视图的情况，这种情况属于比较传统的 Spring MVC 的应用，对应于前后端不分离的情况。使用@ControllerAdvice + @ExceptionHandler 这两个注解统一处理异常，这种异常处理方式下，会给所有或者指定的 Controller 织入异常处理的逻辑（AOP），当 Controller 中的方法抛出异常的时候，由被@ExceptionHandler 注解修饰的方法进行处理。]]></description><category></category></item><item><title><![CDATA[Redis总结]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126731222</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126731222</guid><author>lyy_sss</author><pubDate>Wed, 07 Sep 2022 15:13:52 +0800</pubDate><description><![CDATA[缓存优势：高性能和高并发。2）数据库的吞吐量（QPS）是有限的，通过将数据库中的部分数据（高频访问）转移到缓存中可以有效减少对数据库的请求，转而从缓存中获取信息，提高系统整体的并发。过期字典的键指向 Redis 数据库中的某个 key(键)，过期字典的值是一个 long long 类型的整数，这个整数保存了 key 所指向的数据库键的过期时间。当用户需要请求某个数据时，首先会在缓存中进行查找，若缓存中存在该数据则直接返回，若缓存中不存在该数据则进入数据库进行查找，若数据库中也没有该数据则返回空数据。]]></description><category></category></item><item><title><![CDATA[数据库MYSQL]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126651978</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126651978</guid><author>lyy_sss</author><pubDate>Tue, 06 Sep 2022 16:49:54 +0800</pubDate><description><![CDATA[因为事务A还未提交，所以事务B读到这个数据是脏数据，依据“脏数据”所做的操作可能是不正确的（比如事务A因为异常回滚，此时事务B使用的数据就是错误的）表级锁： MySQL 中锁定粒度最大的一种锁，是针对非索引字段加的锁，对当前操作的整张表加锁，实现简单，资源消耗也比较少，加锁快，不会出现死锁。3、隔离性 ( I )： 事务的隔离性是多个用户并发访问数据库时，数据库为每一个用户开启的事务，不能被其他事务的操作数据所干扰，多个并发事务之间要相互隔离。InnoDB存储引擎对行级锁和表级锁都是支持的，默认为行级锁。]]></description><category></category></item><item><title><![CDATA[MySQL精简复习]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126707896</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126707896</guid><author>lyy_sss</author><pubDate>Tue, 06 Sep 2022 15:43:22 +0800</pubDate><description><![CDATA[外连接，返回到查询结果集合中的不仅包含符合连接条件的行，而且还包括左表（左外连接）、右表（右外连接）或两个边接表（全外连接）中的所有数据行。（RIGHT指出的是OUTER JOIN右边的表，选择右边表的所有行）（LEFT指出的是OUTER JOIN左边的表，选择左边表的所有行）IN的功能与OR相当，但执行一般比OR更快，IN的最大优点是可以包含其他SELECT语句，能够更动态的建立WHERE子句。19、自联结：假设某物品（ID为DTNTR）存在问题，因此想知道生产该物品的供应厂商生产的其他物品是否有问题。]]></description><category></category></item><item><title><![CDATA[操作系统（Linux）]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126631565</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126631565</guid><author>lyy_sss</author><pubDate>Wed, 31 Aug 2022 21:34:43 +0800</pubDate><description><![CDATA[5、mv 目录名称 目录的新位置： 移动目录的位置—剪切（改）。步骤： vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入：wq/q!注意：rm 不仅可以删除目录，也可以删除其他文件或压缩包，为了增强大家的记忆， 无论删除任何目录或文件，都直接使用rm -rf 目录/文件/压缩包。2、ls/ll（ll 是 ls -l 的别名，ll 命令可以看到该目录下的所有目录和文件的详细信息）：查看目录信息。...]]></description><category></category></item><item><title><![CDATA[计算机网络]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126630866</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126630866</guid><author>lyy_sss</author><pubDate>Wed, 31 Aug 2022 20:32:11 +0800</pubDate><description><![CDATA[TCP协议是面向连接的通信协议，即传输数据之前，在发送端和接收端建立逻辑连接，然后再传输数据，提供了两台计算机之间的可靠无差错的数据传输。当一台计算机向另外一台计算机发送数据时，发送端不会确认接收端是否存在，就会发出数据，同样接收端在接收到数据时，也不会向发送端进行反馈是否接收到数据。该协议的通信过程如下：服务器80端口等待请求----》浏览器向服务器发起TCP连接----》服务器接收TCP连接----》浏览器与Web服务器交换HTTP消息----》关闭TCP。...]]></description><category></category></item><item><title><![CDATA[Java八股整理--java基础]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126523826</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126523826</guid><author>lyy_sss</author><pubDate>Wed, 31 Aug 2022 19:50:30 +0800</pubDate><description><![CDATA[LinkedList 采用链表存储，所以，如果是在头尾插入或者删除元素不受元素位置的影响（add(E e)、addFirst(E e)、addLast(E e)、removeFirst() 、 removeLast()），时间复杂度为 O(1)，如果是要在指定位置 i 插入和删除元素的话（add(int index, E element)，remove(Object o)）， 时间复杂度为 O(n) ，因为需要先移动到指定位置再插入。它是支持面向缓冲的，基于通道的 I/O 操作方法。...]]></description><category></category></item><item><title><![CDATA[项目笔记---秒杀商城]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126331864</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126331864</guid><author>lyy_sss</author><pubDate>Wed, 24 Aug 2022 16:09:43 +0800</pubDate><description><![CDATA[秒杀商城项目：
（1）首先做了登录系统，用户传入的密码会经过两次MD5加密，目的是加强数据安全，然后将用户信息与数据库进行匹配实现一个登录功能；若登录成功则跳转到商品页面，若登录失败提示登录失败并重新跳转到登录页面。
（2）登录成功后，展示商品详情页，
前端技术：thymeleaf、Bootstrap、JQuery
后端技术：SpringBoot、JSR303（服务端的验证框架）、Mybatis
中间件 RabbitMQ（消息队列）、Redis（缓存）、Druid（数据连接池）如何应对大并发：1、利用缓存，]]></description><category></category></item><item><title><![CDATA[RabbitMQ安装（linux）]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126472663</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126472663</guid><author>lyy_sss</author><pubDate>Mon, 22 Aug 2022 21:32:50 +0800</pubDate><description><![CDATA[首先使用xfpt将需要的安装包上传到Linux系统中，然后先安装erlang语言，因为rabbitMQ是用erlang语言编写的。检测erlang是否安装成功：输入erl命令，出现OTP 23和eshell便是安装成功；安装成功后Ctrl+C强制退出。查看rabbitMQ是否启动，显示active就是启动了。安装完成后，继续安装rabbitMQ管控台的插件。安装玩erlang后继续安装rabbitMQ。启动成功后就可以进行访问了，访问路径为。RabbitMQ安装。启动rabbitMQ。]]></description><category></category></item><item><title><![CDATA[Redis设置失效时间]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126364944</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126364944</guid><author>lyy_sss</author><pubDate>Tue, 16 Aug 2022 14:00:56 +0800</pubDate><description><![CDATA[设置存在值的失效时间：expire/pexpire(秒/毫秒) code+时间（数值）-----------》expire code 10 （code10秒后失效）set code test ex/px(秒/毫秒)  + 时间（数值）----------》set code test ex 10   10秒后失效。NX和XX：NX表示key之前不存在的情况下，才能设置成功；查询是失效：ttl code------》-1表示永不失效；code不存在时，第一个语句设置失败，第二个设置成功。...]]></description><category></category></item><item><title><![CDATA[redis操作五种数据类型]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126364500</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126364500</guid><author>lyy_sss</author><pubDate>Tue, 16 Aug 2022 13:40:59 +0800</pubDate><description><![CDATA[添加数据：zadd score 1 zhangsan 5 lisi 3 wangwu 8 zhaoliu-----------------》添加后的数据会被进行排序。删除数据： hdel user age----------》 hdel+需要删除对应的redis的key+需要删除对应的hash的key。获取数据（左边开始获取）：lrange students 0 3-----》数字表示获取数据所对应的索引。获取hash值：hget user name-----》取值时需要redis和hash的两个key。.]]></description><category></category></item><item><title><![CDATA[MybatisX快速开发插件安装教程]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126324128</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126324128</guid><author>lyy_sss</author><pubDate>Sat, 13 Aug 2022 21:18:31 +0800</pubDate><description><![CDATA[MybatisX功能：实现接口和映射的xml文件之间的跳转；连上数据库逆向生成代码以及语法提示等等。]]></description><category></category></item><item><title><![CDATA[SpringBoot2.0数据访问之整合Mybatis]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126320999</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126320999</guid><author>lyy_sss</author><pubDate>Sat, 13 Aug 2022 20:34:50 +0800</pubDate><description><![CDATA[SpringBoot中要整合第三方应用Mybatis，就需要先找到Mybatis对应的starter1. 引入starter]]></description><category></category></item><item><title><![CDATA[SpringBoot2.0数据访问之整合数据源（Druid）]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126286559</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126286559</guid><author>lyy_sss</author><pubDate>Sat, 13 Aug 2022 16:12:38 +0800</pubDate><description><![CDATA[1. SQL
1.1 数据源的自动配置
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-data-jdbc&lt;/artifactId&gt;
        &lt;/dependency&gt;

为什么导入JDBC场景，官方不导入驱动？官方不知道我们接下要操作什]]></description><category></category></item><item><title><![CDATA[SpringBoot2.0---------------15、SpringBoot定制化原理]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126285838</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126285838</guid><author>lyy_sss</author><pubDate>Thu, 11 Aug 2022 15:31:04 +0800</pubDate><description><![CDATA[○ 4、WebMvcAutoConfiguration 里面的配置要能生效 必须  @ConditionalOnMissingBean(WebMvcConfigurationSupport.class)○ 2、一旦使用 @EnableWebMvc 、。○ 1、WebMvcAutoConfiguration  默认的SpringMVC的自动配置功能类。○ 3、DelegatingWebMvcConfiguration 的 作用，只保证SpringMVC最基本的使用。+ @Bean替换、增加容器中默认组件；..]]></description><category></category></item><item><title><![CDATA[SpringBoot2.0---------------14、SpringBoot中Web原生组件注入]]></title><link>https://blog.youkuaiyun.com/lyy_sss/article/details/126284843</link><guid>https://blog.youkuaiyun.com/lyy_sss/article/details/126284843</guid><author>lyy_sss</author><pubDate>Thu, 11 Aug 2022 15:07:58 +0800</pubDate><description><![CDATA[● @ServletComponentScan(basePackages = “com.atguigu.admin”) :指定原生Servlet组件都放在那里，改注解放在SpringBoot主程序中。● @WebServlet(urlPatterns = “/my”)：效果：直接响应，没有经过Spring的拦截器。1、使用Servlet API （Servlet、Filter过滤器、Listener监听器）多个Servlet都能处理到同一层路径，精确优选原则。● 默认映射的是 / 路径。...]]></description><category></category></item></channel></rss>