<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_17589253的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/qq_17589253</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_17589253]]></copyright><item><title><![CDATA[转载：基于Netty开发的坑点和要点]]></title><link>https://blog.csdn.net/qq_17589253/article/details/123113376</link><guid>https://blog.csdn.net/qq_17589253/article/details/123113376</guid><author>qq_17589253</author><pubDate>Thu, 24 Feb 2022 15:48:53 +0800</pubDate><description><![CDATA[声明

    原文：Netty中的那些坑 - 舒润 - 博客园

Netty中的那些坑（上篇）

最近开发了一个纯异步的redis客户端，算是比较深入的使用了一把netty。在使用过程中一边优化，一边解决各种坑。儿这些坑大部分基本上是Netty4对Netty3的改进部分引起的。

注：这里说的坑不是说netty不好，只是如果这些地方不注意，或者不去看netty的代码，就有可能掉进去了。

坑1: Netty 4的线程模型转变

在Netty 3的时候，upstream是在IO线程里执行的，而dow...]]></description><category></category></item><item><title><![CDATA[java agent+bytebuddy 作aop实现监控、性能检测、日志记录等]]></title><link>https://blog.csdn.net/qq_17589253/article/details/118364827</link><guid>https://blog.csdn.net/qq_17589253/article/details/118364827</guid><author>qq_17589253</author><pubDate>Wed, 30 Jun 2021 18:09:16 +0800</pubDate><description><![CDATA[java agent

jdk1.5以后引入的字节码插桩技术，可以在代码中加入切点，独立于目标程序，业务侵入性相比于普通的AOP编程要低，可以用作接口的性能检测，参数可性能监控等，常见的微服务链路跟踪的实现原理之一

    jdk1.5后新增了类java.lang.instrument.Instrumentation，它提供在运行时重新加载某个类的的class文件的api，部分源码如下：


public interface Instrumentation {
    void
 ...]]></description><category></category></item><item><title><![CDATA[LeeCode：无重复字符的最长字串]]></title><link>https://blog.csdn.net/qq_17589253/article/details/111500273</link><guid>https://blog.csdn.net/qq_17589253/article/details/111500273</guid><author>qq_17589253</author><pubDate>Thu, 24 Dec 2020 20:18:00 +0800</pubDate><description><![CDATA[/**
     * 无重复字符的最长字串
     */
    @Test
    void slidingWindowDemo() {
        // 随机取3个长度在5~10的随机字符串作样本
//        Random random = new Random();
//        String[] input = new String[3];
//        for (int i = 0; i &lt; input.length; i++) {
//         ...]]></description><category></category></item><item><title><![CDATA[Raft：更加“实用主义”的分布式一致性算法]]></title><link>https://blog.csdn.net/qq_17589253/article/details/109455906</link><guid>https://blog.csdn.net/qq_17589253/article/details/109455906</guid><author>qq_17589253</author><pubDate>Thu, 19 Nov 2020 20:27:50 +0800</pubDate><description><![CDATA[Raft的由来

系统从单机模式发展到集群、分布式模式，再到后来的微服务，不断的提高的应用的稳定性和可用性。在分布式系统中，通过副本的形式，多外提供可靠服务，集群中单独的节点故障，不会影响整体的可用性，这是相比于单机模式的一大优点。而在分布式系统中，有一个问题时无法避免的，不论是业务集群（你的业务最后还是依赖数据对外提供服务）还是数据集群，那就是分布式一致性状态问题。

什么是分布式一致性状态问题呢，简而言之，就是由多个节点组成的整体，执行相同序列的命令或存储相同序列的日志，最后每个节点都对应相同的输出序列]]></description><category></category></item><item><title><![CDATA[Java类加载机制]]></title><link>https://blog.csdn.net/qq_17589253/article/details/102917916</link><guid>https://blog.csdn.net/qq_17589253/article/details/102917916</guid><author>qq_17589253</author><pubDate>Tue, 05 Nov 2019 16:01:29 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/Latiny/p/8476665.html

这个里面写的比较全，有jvm运行声明周期，类加载声明周期及各环节说明，双亲委派机制及其它的点
]]></description><category></category></item><item><title><![CDATA[常见查找算法]]></title><link>https://blog.csdn.net/qq_17589253/article/details/102876535</link><guid>https://blog.csdn.net/qq_17589253/article/details/102876535</guid><author>qq_17589253</author><pubDate>Sat, 02 Nov 2019 21:06:24 +0800</pubDate><description><![CDATA[常见查找算法

本篇介绍了几种常见的查找算法：顺序查找、二分查找、插值查找、斐波那契查找、二叉树查找

准备工作


public class SearchDemo {

/** 普通无序数组 */
private int[] normalArr = new int[20];
/** 有序递增数组 */
private int[] sortedlArr = new ...]]></description><category></category></item><item><title><![CDATA[温故知新——MyBatis]]></title><link>https://blog.csdn.net/qq_17589253/article/details/102801018</link><guid>https://blog.csdn.net/qq_17589253/article/details/102801018</guid><author>qq_17589253</author><pubDate>Tue, 29 Oct 2019 16:26:17 +0800</pubDate><description><![CDATA[温故知新——MyBatis

文章部分知识点结构参考了：https://blog.csdn.net/hellozpc/article/details/80878563，在此表示感谢

目录

温故知新——MyBatis

介绍

如何使用

小结

resultMap

驼峰匹配

MyBatis动态代理

#和$的区别

动态SQL

if

choose(when,otherwise)

tr...]]></description><category></category></item><item><title><![CDATA[HashMap源码分析]]></title><link>https://blog.csdn.net/qq_17589253/article/details/102743831</link><guid>https://blog.csdn.net/qq_17589253/article/details/102743831</guid><author>qq_17589253</author><pubDate>Fri, 25 Oct 2019 15:33:56 +0800</pubDate><description><![CDATA[什么是HashMap

可以拆开理解，即Hash+Map，HashMap是一个存储键值对的数据结构的一种实现，通过对键作hash索引对键值对进行存取操作。由每一个键值作hash索引后，在HashMap中的存储位置是不尽相同的（会有两个键值不同，但hash值相同的情况），所以在HashMap中存储的数据是无序的，且对于键的值而言是不重复的

什么是Hash

Hash散列将一个任意长度的值通过has...]]></description><category></category></item><item><title><![CDATA[常用算法的复习和总结]]></title><link>https://blog.csdn.net/qq_17589253/article/details/102693951</link><guid>https://blog.csdn.net/qq_17589253/article/details/102693951</guid><author>qq_17589253</author><pubDate>Wed, 23 Oct 2019 01:36:15 +0800</pubDate><description><![CDATA[常用算法的复习和总结

排序分类

排序是《数据结构》一书中的重要内容，在软件开发领域里也有非常重要的作用。

排序算法按照空间划分分为内部排序和外部排序，内部排序顾名思义就是直接在原数组上进行的排序；外部排序意思就是需要借助额外的空间在辅助进行排序。

按照排序方式来分，又分为插入排序、选择排序、交换排序、归并排序、基数排序，其中插入排序有直接插入排序和希尔排序，选择排序有简单选择排序和堆排序，...]]></description><category></category></item></channel></rss>