<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[我能在河边钓一整天的鱼]]></title><description><![CDATA[欢迎来到我的酒馆]]></description><link>https://blog.youkuaiyun.com/Delicious_Life</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Delicious_Life]]></copyright><item><title><![CDATA[关于如何设置IntelliJ IDEA 在同一窗口查看多个项目]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/121229317</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/121229317</guid><author>Delicious_Life</author><pubDate>Tue, 09 Nov 2021 15:29:28 +0800</pubDate><description><![CDATA[关于如何设置IntelliJ IDEA 在同一窗口查看多个项目_ztian001的博客-优快云博客
]]></description><category></category></item><item><title><![CDATA[《mybatis》]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/120698091</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/120698091</guid><author>Delicious_Life</author><pubDate>Mon, 11 Oct 2021 10:33:59 +0800</pubDate><description><![CDATA[#{}和${}的区别是什么？

${}是字符串替换，#{}是预处理；

Mybatis在处理${}时，就是把${}直接替换成变量的值。而Mybatis在处理#{}时，会对sql语句进行预处理，将sql中的#{}替换为?号，调用PreparedStatement的set方法来赋值；



通常一个mapper.xml文件，都会对应一个Dao接口，这个Dao接口的工作原理是什么？

Mapper 接口的工作原理是JDK动态代理，Mybatis运行时会使用JDK动态代理为Mapper接口生成代理对象proxy，代]]></description><category></category></item><item><title><![CDATA[《kafka》]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/120647636</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/120647636</guid><author>Delicious_Life</author><pubDate>Fri, 08 Oct 2021 13:32:57 +0800</pubDate><description><![CDATA[kafka如何保证消息不丢失

&lt;1&gt;producer。生产者默认有一个位于内存的buffer用来缓存未发送的消息，但是这块内存区域断电即失，当producer宕机就完了。生产者要保证消息不丢失，可以把异步发送改成同步发送消息。也可以将消息先写到本地磁盘再写到buffer，这样即使buffer丢失，磁盘中也持久化了记录。

&lt;2&gt;broker。单台情况下，kafka中的数据是异步批量的刷盘到磁盘中。kafka的刷盘没有同步，我们可以通过控制刷盘频率来缓解丢失出现时，丢失的数据量。..]]></description><category></category></item><item><title><![CDATA[《redis》]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/120527668</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/120527668</guid><author>Delicious_Life</author><pubDate>Tue, 28 Sep 2021 18:54:09 +0800</pubDate><description><![CDATA[1.怎么保证redis中的key是热点key

如何保证redis中存放的都是热点数据 - neozheng - 博客园
]]></description><category></category></item><item><title><![CDATA[《MySQL》]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/120526745</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/120526745</guid><author>Delicious_Life</author><pubDate>Tue, 28 Sep 2021 13:50:19 +0800</pubDate><description><![CDATA[1.MySQL B+树基本概念

☆B树与B+树_我能在河边钓一整天的鱼-优快云博客



2.聚簇索引和非聚簇索引

一分钟明白MySQL聚簇索引和非聚簇索引 - 阿伟~ - 博客园



3.什么是回表

简单来说就是数据库根据索引（非主键）找到了指定的记录所在行后，还需要根据主键再次到数据块里获取数据。

...]]></description><category></category></item><item><title><![CDATA[《JVM》]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/120381288</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/120381288</guid><author>Delicious_Life</author><pubDate>Sun, 19 Sep 2021 17:02:36 +0800</pubDate><description><![CDATA[1.jvm体系结构

堆、方法区、虚拟机栈、本地方法栈、程序计数器



堆和方法区线程共享，存在垃圾回收。虚拟机栈、本地方法栈、程序计数器线程私有，不存在垃圾回收

栈：后进先出。程序执行要先入栈。8大基本类型+对象的引用变量存在于栈中

堆：堆中存放的是对象。堆分新生代(伊甸区、幸存者1区、幸存者2区)、老年代、元空间。jdk1.7元空间叫永久区，jdk1.8改名元空间，并且1.8版本常量池在元空间中。

方法区：存储类的结构信息，常量，编译器编译后的代码等数据。

程序计数器：每个线程有一个。它...]]></description><category></category></item><item><title><![CDATA[《Java基础》]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/120368450</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/120368450</guid><author>Delicious_Life</author><pubDate>Sat, 18 Sep 2021 15:36:23 +0800</pubDate><description><![CDATA[什么是值传递，什么是引用传递

面试官：兄弟，说说Java到底是值传递还是引用传递 - 沉默王二 - 博客园
]]></description><category></category></item><item><title><![CDATA[《springboot》]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/120346624</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/120346624</guid><author>Delicious_Life</author><pubDate>Fri, 17 Sep 2021 18:09:47 +0800</pubDate><description><![CDATA[1.springboot的功能优点

1.可以以jar包的形式独立运行项目

2.内嵌tomat或者jetty，无需以war包形式部署

3.starter pom简化了maven依赖的导入







2.springboot的starter是做什么的？

诞生starter原因是当不同项目互相引入jar包时每次都需要改变@ComponentScan注解中的参数









3.springboot启动原理-自动装配原理（启动后自动装配）

面试----SpringBoot自动装配原理_小白咯..]]></description><category></category></item><item><title><![CDATA[《多线程》]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/120338086</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/120338086</guid><author>Delicious_Life</author><pubDate>Thu, 16 Sep 2021 22:01:44 +0800</pubDate><description><![CDATA[1.聊一聊多线程

一块共享空间或一个共享变量被多条线程操作。

多线程的程序要想让其正确运行，关键在于保证线程执行过程中的 可见性，原子性



常用的volatile就是保证线程间“可见性”的 同步关键字，但由于每一个线程执行都不是原子的，导致多个线程并发执行下，会出现“写覆盖”的现象。



这时就要使用基于CAS原理的各种方法来保证原子操作了。例如JUC包中Atomic接口下的Integer实现类等等。



CAS意为“比较并交换”，工作内存每次把值写回到主存前，都会先判断：主存中的当前值是否..]]></description><category></category></item><item><title><![CDATA[Java比较两个对象并获取其中不相等的字段]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/120185573</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/120185573</guid><author>Delicious_Life</author><pubDate>Wed, 08 Sep 2021 17:57:10 +0800</pubDate><description><![CDATA[1.添加 maven 依赖


&lt;dependency&gt;
    &lt;groupId&gt;com.github.dadiyang&lt;/groupId&gt;
    &lt;artifactId&gt;equator&lt;/artifactId&gt;
    &lt;version&gt;1.0.3&lt;/version&gt;
&lt;/dependency&gt;


2.初始化并调用方法


Equator equator = new GetterBaseEquator..]]></description><category></category></item><item><title><![CDATA[mybatis 批量更新操作（如果防止druid禁用多次重复更新）]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/117027721</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/117027721</guid><author>Delicious_Life</author><pubDate>Wed, 19 May 2021 14:15:58 +0800</pubDate><description><![CDATA[1.配置文件添加开启批量操作参数





2.重写druid配置类（前提当然是你项目中已经引入了druid的jar包）


package com.apus.antivirus.admin.common.config;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.wall.WallConfig;
import com.alibaba.druid.wall.WallFilter;
import or...]]></description><category></category></item><item><title><![CDATA[SpringBoot集成XXL-JOB（自用）]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/115395535</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/115395535</guid><author>Delicious_Life</author><pubDate>Fri, 02 Apr 2021 12:20:57 +0800</pubDate><description><![CDATA[目录

1.引入jar包

2.配置yml

3.代码层面新建一个jobHandler类

4.管理控制台之token配置

5.管理控制台之token配置

6.管理控制台之任务管理

7.任务的执行与启动



这篇文章主要是写给我自己的。因为我们公司的job无需代码配置。导包即用～

XXL-JOB这款定时任务调度中间件是使用思想是。你自己配置好一个名为job的java项目。然后把这个java项目打包，引入到你实际业务开发到项目中。



我们公司的xxl-job使用步骤如下：

1.引入jar包..]]></description><category></category></item><item><title><![CDATA[JDBC连接数据库 mysql serverTimezone 时差问题]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/113388936</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/113388936</guid><author>Delicious_Life</author><pubDate>Fri, 29 Jan 2021 15:04:21 +0800</pubDate><description><![CDATA[JDBC连接数据库 mysql serverTimezone 时差问题

遇到一个问题：项目jar包扫描后，升级了好多jar包，包括mysql的驱动jar包升级到了8.0版本以上。升级后从mysql中查出的时候，全都比数据库的时间多13小时，而且这些时间存到数据库的时间，有些是正确的时间，有时比正确时间少13小时，这样返回给前端的时间就不准确，解决这个问题只要在springboot的数据库连接配置中增加一段配置就能解决问题

spring:

 datasource:

   url:jdb...]]></description><category></category></item><item><title><![CDATA[比较GateWay和Zuul]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/111935119</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/111935119</guid><author>Delicious_Life</author><pubDate>Tue, 29 Dec 2020 18:58:25 +0800</pubDate><description><![CDATA[1.Gateway由springcloud alibaba创建、而Zuul由springcloud netfix创建

2.Gateway构建于Spring5、Zuul构建于Servlet2.5

3.Gateway使用非阻塞API，支持websockets，支持长连接   Zuul基于阻塞式API，不支持长连接
]]></description><category></category></item><item><title><![CDATA[应该如何去熟悉一项功能]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/109491583</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/109491583</guid><author>Delicious_Life</author><pubDate>Wed, 04 Nov 2020 15:40:08 +0800</pubDate><description><![CDATA[工作中，经常遇见一种情况。那谁，你去熟悉熟悉xxx功能，这功能可能跟那块有空，谁了解，不会你去问问他。

我们应该从哪入手呢？



1.去了解这个功能干了件什么事。举个例子：有一个定时任务功能，定时的执行，把数据封装为一个实体传给另一个接口。

2.大家应该都做到了第一点，但第一点并不能解决问题。你需要顺着这个功能找前因后果。

3.前因：定时任务要执行的数据从哪里来？
4.后果：他最终传递给接口的数据是什么？

5.过程中：定时任务是按照什么规则跑的？
...]]></description><category></category></item><item><title><![CDATA[分清权限系统的用户和角色]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/109486269</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/109486269</guid><author>Delicious_Life</author><pubDate>Wed, 04 Nov 2020 11:04:19 +0800</pubDate><description><![CDATA[什么是用户




哪个人登录系统，哪个人就是用户。






什么是角色




角色代表访问权限。说白了，合理的权限系统当新建用户后，此用户是没有任何权限的。他得和“角色”绑定。


...]]></description><category></category></item><item><title><![CDATA[A.compareTo(B)经典案例]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/109468370</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/109468370</guid><author>Delicious_Life</author><pubDate>Tue, 03 Nov 2020 14:24:20 +0800</pubDate><description><![CDATA[A.compareTo(B)用来比较A是否大于B

他返还的是一个Boolean值，如果A大于B，返还1。如果A等于B，返还0。如果A小于B，返还-1



案例


if(CommonData.DIFFQTY_ONE.equals(reqDto.getDiffQty())){
    //已配齐
    respDtos = respDtos.stream().filter(x -&gt; BigDecimal.ZERO.compareTo(x.getUnMatchQuantity()) &gt;...]]></description><category></category></item><item><title><![CDATA[ArrayList的扩容机制]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/108833240</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/108833240</guid><author>Delicious_Life</author><pubDate>Sun, 27 Sep 2020 18:08:24 +0800</pubDate><description><![CDATA[ArrayList的扩容

ArrayList使用时会先初始化一个空数组，长度为0。第一次插入时，将其容量设置成10。每次进来一个元素都会判断MinCapacity(当前元素数)是不是比elementData.length(数组容量)大，如果大了进入到grow方法中。会copy一个原数组，数组长度设置为1.5倍，且不能超过最大数组长度。

扩容之后他会把所有元素copy一份赋值给新的数组，并返回true



未完待续。。。
...]]></description><category></category></item><item><title><![CDATA[ES6基础]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/108697766</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/108697766</guid><author>Delicious_Life</author><pubDate>Sun, 20 Sep 2020 20:41:41 +0800</pubDate><description><![CDATA[用let声明变量




1.let声明的变量有严格的作用域，而var会“越域”

2.let只能声明一次，而var可以多次声明变量

3.var会变量提升(代码执行顺序会改变),let不存在变量提升




const代表常量





解构表达式



        const person = {
            name: "jack",
            age: 21,
            language: ["java","js","css"]
    ...]]></description><category></category></item><item><title><![CDATA[Gateway网关的使用]]></title><link>https://blog.youkuaiyun.com/Delicious_Life/article/details/108697096</link><guid>https://blog.youkuaiyun.com/Delicious_Life/article/details/108697096</guid><author>Delicious_Life</author><pubDate>Sun, 20 Sep 2020 20:06:42 +0800</pubDate><description><![CDATA[目录

网关的作用

Gateway的工作流程

使用Gateway组件




网关的作用




路由、权限校验、过滤、限流、监控






Gateway的工作流程




一个请求发送到Gateway，需要先进行断言(HandlerMapping)。如果断言为真可以交给Handler来处理。之后通过一系列Filter过滤和加工请求，发送给另一端






使用Gateway组件








配置nacos注册中心



配置gateway断言和过滤



网关的启动类排...]]></description><category></category></item></channel></rss>