<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[peerless_fu的博客]]></title><description><![CDATA[记录日常的学习生活]]></description><link>https://blog.youkuaiyun.com/peerless_fu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; peerless_fu]]></copyright><item><title><![CDATA[rabbitmq AI复习]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/148311912</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/148311912</guid><author>peerless_fu</author><pubDate>Thu, 29 May 2025 15:45:03 +0800</pubDate><description><![CDATA[RabbitMq帮我复习rabbitmq相关知识，我是一个经验丰富的程序员好的！很高兴能通过这种方式帮你复习或学习 RabbitMQ 的知识。按照你说的流程，我们从完全零基础开始，通过你回答问题来一步步深入。首先，RabbitMQ 是一个消息队列系统。在深入了解 RabbitMQ 具体的组件和工作原理之前，我们需要先理解“消息队列”这个概念本身是什么，以及它用来解决什么问题。为了了解你在这方面的基础，请先思考并回答下面几个非常基础的问题：请先回答这两个问题，我会根据你的回答来选择合适的下一阶段内容。1.削峰]]></description><category></category></item><item><title><![CDATA[java后端知识点复习]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/147784780</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/147784780</guid><author>peerless_fu</author><pubDate>Thu, 08 May 2025 11:47:16 +0800</pubDate><description><![CDATA[# 复习汇总### 🧑‍💻 Userjava关于高并发下的银行转账问题，根据具体的例子来讲解清楚---### 🤖 Assistant---### 🧑‍💻 Userjava关于高并发下的银行转账问题，根据具体的例子来讲解清楚---### 🤖 Assistant好的，很高兴能帮助你理解 Java 高并发下的银行转账问题。这是一个非常经典的多线程编程场景。就像你说的，我们可以一步一步来，用一个具体的例子来讲解。在我们深入研究这个复杂的例子之前，我想先确认一下你对一些基础概念的理解。这就像建高楼需要先打]]></description><category></category></item><item><title><![CDATA[zookeeper详解]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/123113579</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/123113579</guid><author>peerless_fu</author><pubDate>Thu, 24 Feb 2022 15:47:49 +0800</pubDate><description><![CDATA[Zookeeper详解---从入门到精通_我就是隔壁老袁-优快云博客_zookeeper详解
]]></description><category></category></item><item><title><![CDATA[MySQL分享]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/113885994</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/113885994</guid><author>peerless_fu</author><pubDate>Tue, 09 Mar 2021 10:44:52 +0800</pubDate><description><![CDATA[MySQL分享
索引
什么是索引

想要快速查询数据，需要使用优秀的查找算法
优秀的查找算法依托的是优秀的数据结构

二分查找，需要被检索的数据有序
二叉树查找，需要是二叉树的数据结构


数据库的数据不可能完全满足各类数据结构
数据库系统维护满足特定查找算法的数据结构，并以某种方式指向数据，这样就可以在这些数据结构上实现高级查找算法，这种数据结构，就是索引

索引的数据结构

Hash

特性：把索引数据进行hash计算得到一个hash地址，相当于点对点查询，性能很好
缺点：不支持范围查找


B-Tre]]></description><category></category></item><item><title><![CDATA[kafka架构详解及常见问题]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/107622171</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/107622171</guid><author>peerless_fu</author><pubDate>Tue, 28 Jul 2020 14:42:25 +0800</pubDate><description><![CDATA[kafka是什么
kafka是一种高吞吐量的分布式消息系统
kafka有什么作用

作为常规的消息队列使用
作为网站的活性跟踪工具
作为日志收集中心

kafka的架构

名词解释

broker：


]]></description><category></category></item><item><title><![CDATA[spring bean的生命周期及各扩展点]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/107621804</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/107621804</guid><author>peerless_fu</author><pubDate>Mon, 27 Jul 2020 21:28:04 +0800</pubDate><description><![CDATA[原文链接：简书https://www.jianshu.com/p/1dec08d290c1

Spring Bean的生命周期是Spring面试热点问题。这个问题即考察对Spring的微观了解，又考察对Spring的宏观认识，想要答好并不容易！本文希望能够从源码角度入手，帮助面试者彻底搞定Spring Bean的生命周期。

只有四个！

是的，Spring Bean的生命周期只有这四个阶段。把这四个阶段和每个阶段对应的扩展点糅合在一起虽然没有问题，但是这样非常凌乱，难以记忆。要彻底搞清楚Spring的生.]]></description><category></category></item><item><title><![CDATA[Java的继承与构造函数]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/101060230</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/101060230</guid><author>peerless_fu</author><pubDate>Fri, 20 Sep 2019 14:45:44 +0800</pubDate><description><![CDATA[因为java是内存垃圾自动回收机制，所以没有析构函数。（析构函数相当于finallize()方法）。
	子类不会继承父类的构造函数，而是会显示或隐式调用。
	如果父类无有参的构造函数，子类的构造函数中会默认隐式调用父类的无参构造函数。
	如果父类有有参的构造函数，子类构造函数中需要在第一行显式调用父类的构造函数super()；
...]]></description><category></category></item><item><title><![CDATA[Linux下安装Redis及单设备集群配置]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/87924996</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/87924996</guid><author>peerless_fu</author><pubDate>Sat, 23 Mar 2019 14:03:12 +0800</pubDate><description><![CDATA[一、安装Redis

输入下载命令：


wget http://download.redis.io/releases/redis-4.0.1.tar.gz

部分日志：

--2019-02-25 21:15:07-- http://download.redis.io/releases/redis-4.0.1.tar.gz
Resolving download.redis.io (downlo...]]></description><category></category></item><item><title><![CDATA[Centos 下安装ruby的总结]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/88256091</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/88256091</guid><author>peerless_fu</author><pubDate>Wed, 06 Mar 2019 21:21:15 +0800</pubDate><description><![CDATA[因为要搭建redis集群，所以必须先安装ruby，特此记录安装步骤（花了两天时间才安装成功）。

1、先安装gcc


yum install gcc-c++


2、下载ruby安装包


wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz


3、解压ruby安装包


tar -xvf ruby-2.5.0.tar...]]></description><category></category></item><item><title><![CDATA[消息队列总结]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/87991903</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/87991903</guid><author>peerless_fu</author><pubDate>Wed, 27 Feb 2019 21:33:46 +0800</pubDate><description><![CDATA[这是一篇分享文

转自：http://www.cnblogs.com/williamjie/p/9481780.html 尊重原作，谢谢

消息队列

为什么写这篇文章?

博主有两位朋友分别是小A和小B:

小A，工作于传统软件行业(某社保局的软件外包公司)，每天工作内容就是和产品聊聊需求，改改业务逻辑。再不然就是和运营聊聊天，写几个SQL，生成下报表。又或者接到客服的通知，某某功能故障了，...]]></description><category></category></item><item><title><![CDATA[SpringCloud----服务的提供与调用]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/85156245</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/85156245</guid><author>peerless_fu</author><pubDate>Tue, 26 Feb 2019 21:55:56 +0800</pubDate><description><![CDATA[以上一篇文章中的注册中心Eureka工程为基础，今天写一个服务提供和一个服务调用的具体例子。
服务的提供

新建一个springboot项目，然后在pom文件中加入以下依赖：

&amp;amp;amp;lt;dependency&amp;amp;amp;gt;
    &amp;amp;amp;lt;groupId&amp;amp;amp;gt;org.springframework.boot&amp;amp;amp;lt;/groupId&amp;amp;amp;gt;
    &amp;]]></description><category></category></item><item><title><![CDATA[springcloud--注册中心Eureka]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/84816161</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/84816161</guid><author>peerless_fu</author><pubDate>Wed, 19 Dec 2018 08:37:13 +0800</pubDate><description><![CDATA[ 

Eureka是springcloud的核心组件之一，管理各种服务功能包括服务的注册、发现、负载、熔断等。

让我们来看下Eureka是怎么工作的。

    如果一个项目A需要去调用项目B的服务，那么项目B需先把服务注册到Eureka注册中心里，项目A在通过注册中心去获取项目B的服务。

  如果项目A需要调用项目B的服务然后项目B又要调用项目C的服务，那么项目B和C需要先把服务注册到注册中...]]></description><category></category></item><item><title><![CDATA[spring init-method和destroy方法的使用]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/84312929</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/84312929</guid><author>peerless_fu</author><pubDate>Wed, 21 Nov 2018 08:47:19 +0800</pubDate><description><![CDATA[在项目中曾多次看到init-method和destroy方法的相关配置，今天特地具体的了解了一下，简单说说几种使用方法。

1、java形式的配置方式：


package com.fyf.service;

public class BeanCreateService {

    public void init(){
        System.out.println(&quot;init(),在B...]]></description><category></category></item><item><title><![CDATA[springMvc 配置Session超时时间的单位问题]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/84260644</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/84260644</guid><author>peerless_fu</author><pubDate>Mon, 19 Nov 2018 21:36:01 +0800</pubDate><description><![CDATA[转自： https://blog.youkuaiyun.com/lushuaiyin/article/details/8584420

为单个Web应用 配置超时时间可以在web.xml中使用&amp;lt;session-config&amp;gt;元素，如:



&amp;lt;web-app&amp;gt;
&amp;lt;!--filter.listener,servlet,and servlet-mapping等元素要在session-...]]></description><category></category></item><item><title><![CDATA[springboot启动错误--"springboot At least one base package must be specified"]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/84095757</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/84095757</guid><author>peerless_fu</author><pubDate>Thu, 15 Nov 2018 08:39:17 +0800</pubDate><description><![CDATA[刚用idea社区版新建一个springboot项目，配置启动类如下：


@SpringBootApplication
@ComponentScan(&quot;com.test&quot;)
@MapperScan(&quot;com.test.mapper&quot;)
public class SpringBootStart {
    public static void  main(String[] args){
      ...]]></description><category></category></item><item><title><![CDATA[springboot mybatis自动生成代码插件]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/84075658</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/84075658</guid><author>peerless_fu</author><pubDate>Thu, 15 Nov 2018 08:19:35 +0800</pubDate><description><![CDATA[springboot集成mybatis后，安装generator插件自动生成代码

首先，修改pom文件，新增依赖：


    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;org.mybatis.generator&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;mybatis-generator-core&amp;lt;/artifa...]]></description><category></category></item><item><title><![CDATA[新生代Eden区、两个Survivor区及老年代的关系]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/83550246</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/83550246</guid><author>peerless_fu</author><pubDate>Thu, 01 Nov 2018 22:00:11 +0800</pubDate><description><![CDATA[偶然想起JVM年轻代中Eden区和两个Survivor的比例，就想根据自己的理解和大家探讨一下为什么要配成8 ：1 ：1的比例。

一、JVM堆分代

1、JVM堆被分为了年轻代和老年代。年轻代的GC过程称为Yong GC，速度快较频繁。老年代的GC过程称为Full GC，速度较慢应该尽量避免。

2、对象被创建后，除了少部分大对象会在老年代分配内存外，大部分的对象首先都是在年轻代进行内存分配，而...]]></description><category></category></item><item><title><![CDATA[mybatis批量插入报错“Parameter '__frch_item_0' not found. Available parameters are [list]”]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/83338282</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/83338282</guid><author>peerless_fu</author><pubDate>Wed, 24 Oct 2018 08:29:31 +0800</pubDate><description><![CDATA[原sql：



&amp;lt;select id=&quot;queryList&quot; parameterType=&quot;java.util.List&quot; &amp;gt;
    insert into table1(column1,column2,column3,column4,column5)
    (
    &amp;lt;foreach collection=&quot;list&quot; index=&quot;index&quot; item=&quot;item]]></description><category></category></item><item><title><![CDATA[Java并发编程：volatile关键字详解]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/83006326</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/83006326</guid><author>peerless_fu</author><pubDate>Thu, 18 Oct 2018 08:21:18 +0800</pubDate><description><![CDATA[今天来分析一下volatile在并发编程里的作用。

一、java内存模型的相关概念

1、线程之间的通信机制：共享内存和消息传递。

2、java内存模型的抽象结构：线程之间共享的变量存储在主内存中，而每个线程都有一个私有的本地内存，本地内存中存储了该线程读写共享变量的副本。如下图所示：



如果线程1，2，3之间要进行通信的话，必须要经过以下两个步骤：

（1）线程1把工作内存1中更新过的共...]]></description><category></category></item><item><title><![CDATA[《深入理解java虚拟机》读书笔记（三）---- 垃圾回收算法及垃圾收集器介绍]]></title><link>https://blog.youkuaiyun.com/peerless_fu/article/details/82390460</link><guid>https://blog.youkuaiyun.com/peerless_fu/article/details/82390460</guid><author>peerless_fu</author><pubDate>Thu, 06 Sep 2018 22:14:51 +0800</pubDate><description><![CDATA[一、垃圾回收算法

1、标记--清除算法

标记--清除(Mark-Sweep)算法，分为标记和清除两个阶段，首先标记出所有需要回收的对象，在标记完成后统一回收所有被标记的对象，这是最基础的收集算法，后续很多算法都是基于这种思想进行设计的。

标记--清除算法主要的不足有两点：一个是效率的问题，标记和清除的操作效率都比较低；另一个是空间问题，标记清除之后会产生大量不连续的内存碎片，空间碎片太多可能...]]></description><category></category></item></channel></rss>