<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[鸡蛋达芬奇]]></title><description><![CDATA[专注IT互联网架构设计，开发]]></description><link>https://blog.youkuaiyun.com/junchenbb0430</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; junchenbb0430]]></copyright><item><title><![CDATA[Maven插件的作用]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/132767656</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/132767656</guid><author>junchenbb0430</author><pubDate>Fri, 08 Sep 2023 21:27:58 +0800</pubDate><description><![CDATA[plugin></plugin>作用：主要是进行代码编译的，可以指定使用具体的JDK版本进行编译JAVA代码。通常，该插件默认下 主动安装。]]></description><category></category></item><item><title><![CDATA[mvn常用操作命令]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/132412554</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/132412554</guid><author>junchenbb0430</author><pubDate>Mon, 21 Aug 2023 17:09:55 +0800</pubDate><description><![CDATA[开发工具集成]]></description><category></category></item><item><title><![CDATA[Idea官方使用手册]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/113040133</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/113040133</guid><author>junchenbb0430</author><pubDate>Sat, 23 Jan 2021 12:56:22 +0800</pubDate><description><![CDATA[对于Idea工具使用，大家可以参考官方时候手册，现在把连接地址送给大家：
添加链接描述https://www.jetbrains.com/help/idea/pro-tips.html#coding-assistance
idea工具使用手册

]]></description><category></category></item><item><title><![CDATA[idea中基本设置功能]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/113038332</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/113038332</guid><author>junchenbb0430</author><pubDate>Sat, 23 Jan 2021 12:51:47 +0800</pubDate><description><![CDATA[idea中基本设置功能(properties和忽略文件)
properties如何设置自动提示功能
不同的idea版本properties自动提示或许不同。本人使用的2020.2版本idea。使用properties文件时，对于第三方jar的参数有的不支持自动提示功能，这样会影响开发效率。
主要通过如下方式设置：
file------&gt;settings-----FileTypes,在FileNamesPatterns中添加*.properties。如下图展示：
上图设置即可。
设置忽略提交服务器资源文]]></description><category></category></item><item><title><![CDATA[Dubbo框架学习-负载均衡]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78738738</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78738738</guid><author>junchenbb0430</author><pubDate>Thu, 07 Dec 2017 10:49:49 +0800</pubDate><description><![CDATA[负载概述
dubbo中的负载均衡机制主要有4种方式，分别是随机，轮训，最少连接数，一致性hash。其中默认情况下，dubbo采用随机方式进行负载。
dubbo中的负载均衡就是从多个Invoker列表中选择一个可执行的Invoker。集群中的每一个provider都是一个Invoker。
consumer根据Invocation,url,List三个参数，采用不同的算法进行选择。
集群类图dubbo中]]></description><category></category></item><item><title><![CDATA[Redis学习--JedisCluster源码解读]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78672706</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78672706</guid><author>junchenbb0430</author><pubDate>Thu, 30 Nov 2017 14:32:21 +0800</pubDate><description><![CDATA[JedisCluster
JedisCluster是针对RedisCluster的JAVA客户端，它封装了java访问redis集群的各种操作，包括初始化连接，请求重定向等操作。具体内部实现原理主要有如下两个方面： 
1.1.  JedisCluster初始化时，所有的集群连接信息都是封装在JedisClusterInfoCache这类中。  
1.2. JedisClusterInfoCache类]]></description><category></category></item><item><title><![CDATA[HashMap底层存储原理]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78643100</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78643100</guid><author>junchenbb0430</author><pubDate>Wed, 29 Nov 2017 15:01:26 +0800</pubDate><description><![CDATA[HashMap在日常工作中使用场景非常多，程序员都知道是HashMap是线程非安全的，但是底层是以什么方式存储的？本人仔细研读了一下源码，也只是掌握了核心的存储功能，并没有把全部代码看明白，但是对于理解hashMap的存储结构完全够了。存储结构
hashmap底层是以数组方式进行存储。将key-value对作为数组中的一个元素进行存储。
key-value都是Map.Entry中的属性。其中将key]]></description><category></category></item><item><title><![CDATA[Dubbo框架学习-重要概念理解]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78609593</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78609593</guid><author>junchenbb0430</author><pubDate>Thu, 23 Nov 2017 00:22:25 +0800</pubDate><description><![CDATA[ProxyFactory
ProxyFactory是代理工厂，在dubbo中主要有两个作用，我们可以通过源码来分析接口作用
@SPI("javassist")
public interface ProxyFactory {    /**
     * create proxy.
     * 针对Client端，创建服务端接口的代理对象，例如DemoService的代理对象
     * 一个Inv]]></description><category></category></item><item><title><![CDATA[Spring学习-InitializingBean,ApplicationContextWare]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78606380</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78606380</guid><author>junchenbb0430</author><pubDate>Wed, 22 Nov 2017 17:49:15 +0800</pubDate><description><![CDATA[Spring这个框架断断续续用了几年，但是很多其中的机制并没有完全理解透彻，现在抽出时间系统整理一下相关知识点，也是为自己的技术进行总结！InitailizingBean
这个接口 InitailizingBean中只有一个方法，就是afterPropertiesSet。该方法是指Spring容器在启动后主动调用该接口的方法。
如果一个Bean实现了InitializingBean，则该方法会在容器]]></description><category></category></item><item><title><![CDATA[Nginx学习-初步理解]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78594199</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78594199</guid><author>junchenbb0430</author><pubDate>Tue, 21 Nov 2017 16:40:06 +0800</pubDate><description><![CDATA[请求方式
Nginx是一款高性能的web服务器，能够同时处理大量的并发请求，主要是得益于Nginx的master-worker进程模式和异步机制。 
master-worker模式 
nignx服务器对于接收到的每一个请求，都会有主进程master生成一个工作进程(worker process)处理。工作进程读取到这个客户端请求事件后，调用后端的I/O进行处理。
对于worker的进程数量，肯定不是]]></description><category></category></item><item><title><![CDATA[JVM原理之JVM调优]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78527408</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78527408</guid><author>junchenbb0430</author><pubDate>Tue, 21 Nov 2017 14:31:40 +0800</pubDate><description><![CDATA[调优性能关注点
* 吞吐量*：吞吐量是考察垃圾收集器重要的性能指标之一，指不考虑垃圾回收引起的停顿时间，应用程序能够支撑最大请求的指标。
延迟： 缩短垃圾收集引起的应用程序停顿时间，避免应用程序发生抖动。
内存占用：垃圾收集器流畅运行所需要的内存数量。
这三个指标一般很难保证同等重要，任何一个性能的提升都会以其中一个或者两个为代价。
基本命令行选项
开启GC日志，开启GC日志对生产应用性能影响比较小]]></description><category></category></item><item><title><![CDATA[多线程并发-synchronized]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78435279</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78435279</guid><author>junchenbb0430</author><pubDate>Tue, 14 Nov 2017 09:54:41 +0800</pubDate><description><![CDATA[同步方式
synchronized同步方式主要有3种，简单介绍如下： 
1.1. synchronized同步普通方法，锁是当前对象实例。 
1.2. synchronized同步静态方法，锁是当前类的Class对象。 
1.3 synchronized同步代码块，锁是代码块中的括号里的对象。
同步原理
synchronized在JVM中是使用Monitor对象来实现对方法和代码块的同步。只是各自实]]></description><category></category></item><item><title><![CDATA[Dubbo源码分析-config]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78509505</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78509505</guid><author>junchenbb0430</author><pubDate>Sat, 11 Nov 2017 23:27:12 +0800</pubDate><description><![CDATA[Spring的关系
dubbo中扩展了spring的schema，其中dubbo的schema文件名称位dubbo.xsd,在META-INF目录下面。
dubbo.xsd中定义了dubbo中配置文件各种标签。每一种标签最终都是被解析成一个对应的Bean。
Spring在遇到dubbo.xsd命名空间时，回调spring.handlers文件中的DubboNamespaceHandler类。该类初始]]></description><category></category></item><item><title><![CDATA[Rocketmq分布式事物消息]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78316687</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78316687</guid><author>junchenbb0430</author><pubDate>Thu, 09 Nov 2017 19:07:56 +0800</pubDate><description><![CDATA[Rocketmq源码中关于分布式事物消息的实现并没有完全开源，本人是基于3.4.6分析。其中的类是TransactionMQProducer。源码分析
TransactionMQProducer是发送分布式事物消息的核心基础类，其中sendMessageInTransaction是主要发送方法。该方法的核心步骤主要有3步。 
1.1.  producer发送一条prepared消息至broker.]]></description><category></category></item><item><title><![CDATA[JVM原理之内存分配参数]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78407085</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78407085</guid><author>junchenbb0430</author><pubDate>Tue, 31 Oct 2017 19:42:24 +0800</pubDate><description><![CDATA[调优目标
应用程序的请求量很大时，容易造成频繁的full gc。full gc频繁会导致java应用出现停顿。
JVM调优主要从年轻代，老年代，永久代等方面去调整参数，同时需要掌握JVM内存管理机制，设置符合自己应用的参数值。
JVM参数-最大堆内存
JVM最大堆内存是指年轻代与老年代的大小之和，是应用程序中堆大小的上限。
在JVM中，通过-Xmx参数设置堆的最大值。
在应用程序中，通过Runtim]]></description><category></category></item><item><title><![CDATA[JVM原理之运行时数据区]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78401606</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78401606</guid><author>junchenbb0430</author><pubDate>Tue, 31 Oct 2017 11:33:34 +0800</pubDate><description><![CDATA[JVM虚拟机1. JVM在运行时主要包含java堆，方法区，程序计数器，JVM栈，本地方法栈。其中JAVA堆和方法区归所有线程共有，而JVM栈和程序计数器归线程私有。
程序计数器
程序计数器主要是执行线程中的指令，在多核环境中，线程需要进行切换。线程获得CPU的执行后要恢复到原来的执行位置，这就是需要程序计数器保存当前线程执行位置。每个线程都有自己独立的计数器。
如果线程正在执行一个JAVA方法，则]]></description><category></category></item><item><title><![CDATA[Oracle索引原理]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78320942</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78320942</guid><author>junchenbb0430</author><pubDate>Mon, 23 Oct 2017 17:17:18 +0800</pubDate><description><![CDATA[索引原理
oracle中的索引与mysql中的索引不一样，oracle中索引是存储了索引列的值以及rowid值。而mysql索引分为聚集索引，非聚集索引。其中聚集索引只能有一个。
oracle中索引的主要分为根，茎，叶子三部分。索引列值都是存放在叶子节点上，茎只是存放了叶子节点的相关信息。
oracle中的索引反应的是逻辑结构，不是物理结构。索引创建的时候，是先创建叶子节点，然后再创建茎，最后创建根]]></description><category></category></item><item><title><![CDATA[Rocketmq-push消息消费]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78311910</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78311910</guid><author>junchenbb0430</author><pubDate>Sun, 22 Oct 2017 18:41:11 +0800</pubDate><description><![CDATA[Push方式消费消息在Rocketmq中，consumer消费方式有2种，一种是Pull方式消费，一种是push方式消费。Pull方式是consumer主动去broker方式去拉取消息；而push方式是broker主动推送消息，但是push方式的底层实质是异步去broker上拉取消息，然后主动推送给consumer。大致流程如下：后续会逐步详细分析这个过程]]></description><category></category></item><item><title><![CDATA[JVM原理之垃圾收集]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/78311361</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/78311361</guid><author>junchenbb0430</author><pubDate>Sun, 22 Oct 2017 17:21:23 +0800</pubDate><description><![CDATA[垃圾收集作用
JVM堆中存在大量的垃圾对象，如果长时间不收集，容易造成内存溢出或者内存泄露。垃圾收集可以减少堆的可用空间。
频繁的GC行为会造成应用程序的停顿，造成用户体验较差，吞吐量减少。
确定回收对象
引用计数器：为每个对象设置一个引用计数器，当该对象被引用时，计数器加1，没有任何引用时，计数器减1。当计数器为0时，即没有任何对象引用这个对象，即可回收。这种方式简单粗暴，不能解决两个对象互相引用]]></description><category></category></item><item><title><![CDATA[设计模式之观察者模式]]></title><link>https://blog.youkuaiyun.com/junchenbb0430/article/details/77869991</link><guid>https://blog.youkuaiyun.com/junchenbb0430/article/details/77869991</guid><author>junchenbb0430</author><pubDate>Wed, 06 Sep 2017 18:45:26 +0800</pubDate><description><![CDATA[第一次学习观察者模式已经是六七年以前，那个时候只是机械的去理解。也知道JAVA中AWT和SWING中使用了观察者模式。但是没有真正去理解透(当然，现在也可能没有真正理解透，但是比那个时候要好很多)。后面陆续也看过几次，都没有真正去思考观察模式的设计理念。现在有时间了，再重新学习了一遍，发现又领悟到不少，再此记录一下本人的学习心得。欢迎各位大拿，拍砖！！观察者模式概念
顾名思义，多个观察者关注同一个被]]></description><category></category></item></channel></rss>