<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[路漫漫，水迢迢]]></title><description><![CDATA[八十一难拦路七十二变制敌]]></description><link>https://blog.youkuaiyun.com/fuyuwei2015</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fuyuwei2015]]></copyright><item><title><![CDATA[《他强由他强，清风拂山岗；他横由他横，明月照大江》之四]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/138867566</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/138867566</guid><author>fuyuwei2015</author><pubDate>Thu, 20 Jun 2024 15:00:04 +0800</pubDate><description><![CDATA[当发生 GC 时，用户线程必须全部停下来，才可以进行垃圾回收，这个状态我们可以认为 JVM 是安全的（safe），整个堆的状态是稳定的。对停顿时间敏感的应用：G1设计目标是为了提供可预测的停顿时间，通过允许用户设定期望的停顿时间（比如50毫秒），G1能够通过控制每次垃圾收集的工作量来满足这个目标。这个机制确保了在进行这些操作时，没有正在执行的线程会更改JVM的内存状态，这对于垃圾回收器正确识别可达对象、重新编译方法或执行其他需要全局视角的操作是十分重要的。函数式接口是只定义了一个抽象方法的接口。]]></description><category></category></item><item><title><![CDATA[《他强由他强，清风拂山岗；他横由他横，明月照大江》之三]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/137679578</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/137679578</guid><author>fuyuwei2015</author><pubDate>Sat, 11 May 2024 17:24:44 +0800</pubDate><description><![CDATA[由于OSGi环境中对类的加载以及模块间的依赖关系有严格的控制，所以OSGi也自定义了类加载器的行为，实现类加载时可能不遵循传统的双亲委派模型。这样的设计将对象的创建与其使用的控制分离开来，工厂模式隐藏了对象创建的细节，而代理模式控制了对象的访问，并可以在对象方法的执行前后添加额外逻辑。构造函数中不仅包括开发者定义的初始化代码，还包括编译器可能提供或者插入在构造函数中的特殊代码，用来初始化方法区中的数据。设置对象头：JVM需要在对象头中设置一些数据，如对象是哪个类的实例、对象的哈希码、对象的GC代年龄等。]]></description><category></category></item><item><title><![CDATA[《他强由他强，清风拂山岗；他横由他横，明月照大江》之二]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/137353469</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/137353469</guid><author>fuyuwei2015</author><pubDate>Fri, 12 Apr 2024 14:13:55 +0800</pubDate><description><![CDATA[使用 ArrayList 更适合查找和更新操作频繁的场景，因为它提供了快速的随机访问能力，两者都是线程不安全的。LinkedList 更适用于插入和删除操作频繁的场景，尤其当这些操作发生在列表的头部或者中间位置时。在决定使用 ArrayList 还是 LinkedList 时，要考虑应用的具体需求，包括操作类型（插入、删除、访问），操作的位置（头部、中间、尾部）以及性能要求。]]></description><category></category></item><item><title><![CDATA[《他强由他强，清风拂山岗；他横由他横，明月照大江》之一]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/136854555</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/136854555</guid><author>fuyuwei2015</author><pubDate>Fri, 22 Mar 2024 10:23:53 +0800</pubDate><description><![CDATA[TCP提供可靠的、面向连接的传输服务，适合于那些需要确保数据完整性和顺序性的应用。它通过一系列复杂的协议机制（如错误检测、确认重传、流量控制和拥塞控制）来保证这一点。UDP则提供简单的、不可靠的、无连接的数据传输服务，适合于那些对实时性要求高、对数据丢失不敏感的应用。UDP由于其低延迟和较小的协议开销，常用于那些对网络质量要求不太高的场景。选择TCP或UDP通常取决于应用程序对数据传输的具体需求。一些应用可能还会结合使用TCP和UDP来利用各自的优势。]]></description><category></category></item><item><title><![CDATA[HBase基础入门|原理]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/127053282</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/127053282</guid><author>fuyuwei2015</author><pubDate>Mon, 26 Sep 2022 23:45:00 +0800</pubDate><description><![CDATA[HBase是一个面向海量数据场景，分布式的、多版本、面向列的开源KV数据库。运行在HDFS的基础上，支持PB级别、百万列的数据存储。]]></description><category></category></item><item><title><![CDATA[Kafka 容错及高可用原理 | 运维进阶]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/127050649</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/127050649</guid><author>fuyuwei2015</author><pubDate>Mon, 26 Sep 2022 11:32:14 +0800</pubDate><description><![CDATA[在kafka中以分区作为复制单元。每个topic由一个或多个分区组成，每个分区都包含一个leader副本及0个或多个follower副本。当你在创建topic时，需要指定分区数及复制因子。通常情况下一个复制因子是3的topic表明它有一个leader副本及两个follower副本。不论是一个leader副本还是一个follower副本都会被算作一个数据副本。1个topic的4个分区分布在3个broker上一个独立的 Kafka 服务器就被称为 broker，broker 接收来自生产者的消息，为消息设置偏移]]></description><category></category></item><item><title><![CDATA[MySQL之索引详解]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/120122691</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/120122691</guid><author>fuyuwei2015</author><pubDate>Sun, 05 Sep 2021 22:19:04 +0800</pubDate><description><![CDATA[索引的涉及原则

索引的设计可以遵循一些已有的原则，创建索引的时候请尽量考虑符合这些原则，便于 提升索引的使用效率，更高效地使用索引。

搜索的索引列，不一定是所要选择的列。换句话说，最适合索引的列是出现在 WHERE 子句中的列，或连接子句中指定的列，而不是出现在 SELECT 关键字后的选择列表中的列。
	使用区分度高的字段当做索引，例如性别、状态等字段就不适合添加索引。
使用短索引。如果对字符串列进行索引，应该指定一个前缀长度，只要有可能就应 该这样做。例如，如果有一个 name CHAR(200)列]]></description><category></category></item><item><title><![CDATA[MySQL之SQL语句执行过程]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/119879393</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/119879393</guid><author>fuyuwei2015</author><pubDate>Mon, 23 Aug 2021 22:48:02 +0800</pubDate><description><![CDATA[我们可能每天都或多或少的写一些SQL语句，但是你有没有思考过MySQL接收到SQL的执行命令之后底层是如何执行的呢，从这篇文章开始我们开始揭开MySQL底层执行过程的面纱。

首选创建表


create table user_info (
	id int not null primary key,
  username varchar(16) not null,
  city varchar(16) not null,
  salary int not null default 0,
  createti]]></description><category></category></item><item><title><![CDATA[Mysql知识点一网打尽——学习提纲]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/119802994</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/119802994</guid><author>fuyuwei2015</author><pubDate>Thu, 19 Aug 2021 15:23:35 +0800</pubDate><description><![CDATA[后面每一个模块我会出一篇文章进行详解，让我们一起学习共同进步。
]]></description><category></category></item><item><title><![CDATA[Java工程师技术栈]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/108437579</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/108437579</guid><author>fuyuwei2015</author><pubDate>Sun, 06 Sep 2020 22:00:07 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/95402440</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/95402440</guid><author>fuyuwei2015</author><pubDate>Thu, 11 Jul 2019 00:30:10 +0800</pubDate><description><![CDATA[背景

对现有的数据库连接池做调研对比，综合性能，可靠性，稳定性，扩展性等因素选出推荐出最优的数据库连接池。  

NOTE: 本文所有测试均是MySQL库

测试结论

 1：性能方面hikariCP&gt;druid&gt;tomcat-jdbc&gt;dbcp&gt;c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。

 2：druid功能最为全面，sql拦截...]]></description><category></category></item><item><title><![CDATA[SpringBoot学习笔记四之【自动配置原理与举例】]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/86662514</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/86662514</guid><author>fuyuwei2015</author><pubDate>Sat, 26 Jan 2019 23:42:14 +0800</pubDate><description><![CDATA[版本2.1.1

springboot只有一个application的启动，我们就从这个启动开始分析，首先我们跟进注解@SpringBootApplication如下：


/** Class, interface (including annotation type), or enum declaration */
@Target(ElementType.TYPE)
@Retention(Ret...]]></description><category></category></item><item><title><![CDATA[SpringBoot学习笔记三之【多Profile文件的Maven发布使用】]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/86634995</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/86634995</guid><author>fuyuwei2015</author><pubDate>Thu, 24 Jan 2019 23:42:53 +0800</pubDate><description><![CDATA[在springboot工程中配置文件编写的时候可以使用application-{profile}.properties/yml，默认使用application.properties/yml，例如：



每个环境配置如下：


#application-dev.properties
server.port=8080
#application-test.properties
server.port=...]]></description><category></category></item><item><title><![CDATA[SpringBoot学习笔记二之【yml配置举例与语法介绍】]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85952721</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85952721</guid><author>fuyuwei2015</author><pubDate>Sun, 06 Jan 2019 21:53:30 +0800</pubDate><description><![CDATA[ 



 

Resource目录结构说明：

static：保存所有的静态资源； js css images；

templates：保存所有的模板页面；（Spring Boot默认jar包使用嵌入式的Tomcat，默认不支持JSP页面）；可以使用模板引擎（freemarker、thymeleaf、velocity）；

application.properties（application.y...]]></description><category></category></item><item><title><![CDATA[SpringBoot学习笔记一之【Idea下创建springboot示例、启动原理分析与两种部署启动方式】]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85888446</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85888446</guid><author>fuyuwei2015</author><pubDate>Sun, 06 Jan 2019 00:44:32 +0800</pubDate><description><![CDATA[1、使用背景

首先说下我们为什么使用springboot，原因有以下几点

1、快速创建独立运行的spring项目以及与主流框架继承

2、使用嵌入式的Servlet容器，无需打成war包

3、starters自动依赖于版本控制

4、大量的自动配置，简化开发，也可修改默认值

5、无需配置xml，无代码生成，开箱即用

6、生产环境的运行时应用监控，配合springcloud全家桶

7、与...]]></description><category></category></item><item><title><![CDATA[RocketMQ学习笔记四之【DefaultMQPullConsumer使用与流程简单分析】]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85879936</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85879936</guid><author>fuyuwei2015</author><pubDate>Sat, 05 Jan 2019 21:59:55 +0800</pubDate><description><![CDATA[我们首先看下DefaultMQPullConsumer使用例子：


package com.swk.springboot.rocketmq;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.rocketmq.client...]]></description><category></category></item><item><title><![CDATA[RocketMQ学习笔记三之【DefaultMQPushConsumer流量控制】]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85240431</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85240431</guid><author>fuyuwei2015</author><pubDate>Mon, 24 Dec 2018 23:02:45 +0800</pubDate><description><![CDATA[上一节我们已经把DefaultMQPushConsumer的大体流程分析了一下，从这节开始我们分析一部分消息处理的细节问题。
继续在DefaultMQPushConsumerImpl的pullMessage方法中有个ProcessQueue，待会我们来分析这个队列的作用。


 public void pullMessage(final PullRequest pullRequest) {
   ...]]></description><category></category></item><item><title><![CDATA[RocketMQ学习笔记二之【DefaultMQPushConsumer使用与流程原理分析】]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85219829</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85219829</guid><author>fuyuwei2015</author><pubDate>Sun, 23 Dec 2018 00:29:44 +0800</pubDate><description><![CDATA[版本:



        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.apache.rocketmq&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;rocketmq-client&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;4.3.0&amp;lt;/v...]]></description><category></category></item><item><title><![CDATA[RocketMq学习笔记之一【常用操作命令与简单配置】]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85084594</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85084594</guid><author>fuyuwei2015</author><pubDate>Tue, 18 Dec 2018 23:23:57 +0800</pubDate><description><![CDATA[【为什么使用RocketMq】

1、应用解耦

2、流量削峰

3、消息分发

4、保证最终一致性

5、方便动态扩容

【RocketMq的角色】

producer

consumer

Broker

NameServer

broker配置文件：


#nameServer 地址，分号分割
namesrvAddr=192.168.100.131:9876;192.168.100.132:...]]></description><category></category></item><item><title><![CDATA[多线程复习笔记之四【多线程中的异常】]]></title><link>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85042635</link><guid>https://blog.youkuaiyun.com/fuyuwei2015/article/details/85042635</guid><author>fuyuwei2015</author><pubDate>Sun, 16 Dec 2018 23:54:17 +0800</pubDate><description><![CDATA[在一个线程组中如果其中一个线程执行报错并不影响其他线程的继续执行，例如：


package com.fyw.thread.lock.exception;

public class MyThread extends Thread {

	private String num;

	public MyThread(ThreadGroup group,String name,String num) ...]]></description><category></category></item></channel></rss>