<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[junlouyu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/junlouyu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; junlouyu]]></copyright><item><title><![CDATA[设计模式学习纪要（三）]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/136849394</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/136849394</guid><author>junlouyu</author><pubDate>Tue, 19 Mar 2024 17:26:42 +0800</pubDate><description><![CDATA[代理模式就是为一个对象（被代理对象）提供一个代理对象，并且通过代理对象控制对原来被代理对象的访问。可以简单理解为通过代理对象访问目标对象。这样做最大的好处就是可以在目标对象实现的基础上，增强额外的功能，起到扩展目标对象的效果。适配器模式就是将一个类的接口变换成客户端所期待的另一种接口，从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。]]></description><category></category></item><item><title><![CDATA[设计模式学习纪要（二）]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/136849162</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/136849162</guid><author>junlouyu</author><pubDate>Tue, 19 Mar 2024 17:23:40 +0800</pubDate><description><![CDATA[原型模式是通过复制一个原型对象来创建新的对象，不需要了解创建对象的细节，核心是在于拷贝原型对象。创建者模式也叫生成器模式，将一个复杂对象的构建与它的表示分离，使得同样的构建过程可以创建不同的表示。]]></description><category></category></item><item><title><![CDATA[设计模式学习纪要（一）]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/136629850</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/136629850</guid><author>junlouyu</author><pubDate>Mon, 11 Mar 2024 17:30:49 +0800</pubDate><description><![CDATA[​	某一个类在整个系统有且仅有一个实例对象提供服务；/** 实例化对象 *//** 限制产生多个对象 *//** 获取实例对象 */​	通常存在一个用于创建对象的接口或抽象类，这个接口或抽象类定义了创建对象的通用方法。不同的实现类（具体产品类）负责实现这些方法，并返回具体的对象实例。这种模式使得对象的创建过程与使用过程分离，提高了系统的灵活性和可扩展性。]]></description><category></category></item><item><title><![CDATA[Linux命令集合]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/136511634</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/136511634</guid><author>junlouyu</author><pubDate>Wed, 06 Mar 2024 17:03:10 +0800</pubDate><description><![CDATA[【代码】Linux命令集合。]]></description><category></category></item><item><title><![CDATA[Linux命令集合]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/136511599</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/136511599</guid><author>junlouyu</author><pubDate>Wed, 06 Mar 2024 17:02:29 +0800</pubDate><description><![CDATA[【代码】Linux命令集合。]]></description><category></category></item><item><title><![CDATA[Linux命令集合]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/136511528</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/136511528</guid><author>junlouyu</author><pubDate>Wed, 06 Mar 2024 17:01:07 +0800</pubDate><description><![CDATA[【代码】Linux命令集合。]]></description><category></category></item><item><title><![CDATA[Spring5框架学习记录]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/121104738</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/121104738</guid><author>junlouyu</author><pubDate>Tue, 02 Nov 2021 17:16:44 +0800</pubDate><description><![CDATA[Spring5框架学习记录
一、Spring概念

Spring是一个轻量级的开源的JavaEE框架。
Spring可以解决企业应用开发的复杂性。
Spring有两个核心部分：IOC和AOP

IOC：控制反转，把创建对象过程交给Spring进行管理。
Aop：面向切面，不修改源代码进行功能增强。


spring特点：

方便解耦，简化开发。
Aop编程支持。
方便程序测试。
方便和其他框架进行整合。
方便进行事务操作。
降低API开发难度。




二、IOC容器
IOC概念和原理
概念

控制反转：把]]></description><category></category></item><item><title><![CDATA[Java基础]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/120975017</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/120975017</guid><author>junlouyu</author><pubDate>Tue, 26 Oct 2021 16:28:48 +0800</pubDate><description><![CDATA[Java基础之类加载，反射
一、类加载
​		含义：当程序要使用某个类时，如果该类还未加载到内存中，则系统会通过类的加载，类的连接，类的初始化这三个步骤来对类进行初始化。如果不出现意外情况，JVM会连续完成这上步骤，所以有事也报这三个步骤统称为类加载或者类初始化。
类的加载

将指定class文件读入内存中，并为之创建一个java.lang.Class对象。
任何类被使用时，系统都会为之创建一个java.lang.Class对象。

类的连接

验证阶段：用于检验被加载的类是否有正常的内部结构，冰河其他类协]]></description><category></category></item><item><title><![CDATA[ArrayList原理学习（三）]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/120870851</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/120870851</guid><author>junlouyu</author><pubDate>Wed, 20 Oct 2021 17:27:30 +0800</pubDate><description><![CDATA[ArrayList原理学习（三）
ArrayList删除指定索引范围的元素方法
protected void removeRange(int fromIndex, int toIndex) {
    // 当前集合修改次数++
    modCount++;
    // 获取到toIndex后存在元素个数
    int numMoved = size - toIndex;
    // 将toIndex后存在的元素复制到formIndex索引后，即将后面元素向前移动toIndex-fromIndex
]]></description><category></category></item><item><title><![CDATA[ArrayList原理学习（二）]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/120868094</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/120868094</guid><author>junlouyu</author><pubDate>Wed, 20 Oct 2021 15:56:08 +0800</pubDate><description><![CDATA[ArrayList原理学习（二）
ArrayList构造方法
无参构造
public ArrayList() {
        // 调用无参构造方法时，申明了一个空的数组，此时该数组没有容量
        this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
    }

有参构造


指定容量的有参构造方法
public ArrayList(int initialCapacity) {
    // 校验参数是否大于0，大于0时创建指定大小数组，]]></description><category></category></item><item><title><![CDATA[ArrayList原理学习（一）]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/120863153</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/120863153</guid><author>junlouyu</author><pubDate>Wed, 20 Oct 2021 11:44:14 +0800</pubDate><description><![CDATA[ArrayList原理学习（一）
ArrayList集合内置属性
// 默认的数组大小
private static final int DEFAULT_CAPACITY = 10;
// 用于空实例的共享空数组实例。
private static final Object[] EMPTY_ELEMENTDATA = {};
// 共享的空数组实例用于默认大小的空实例
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
]]></description><category></category></item><item><title><![CDATA[List数据读取注意]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/120850069</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/120850069</guid><author>junlouyu</author><pubDate>Tue, 19 Oct 2021 17:03:27 +0800</pubDate><description><![CDATA[List数据读取注意**
当遍历List数据时，需要注意该List是否实现了RandomAccess接口，当实现该接口时使用随机遍历方法效率要高于顺序遍历方法。当未实现RandomAccess接口时，顺序遍历效率高于随机遍历方法。
// 判断是否实现RandomAccess接口
if (list instanceof RandomAccess){
// 随机访问
for (int i = 0; i &lt; list.size(); i++) {
System.out.println(list.get(i)]]></description><category></category></item><item><title><![CDATA[ArrayList集合原理]]></title><link>https://blog.youkuaiyun.com/junlouyu/article/details/120849952</link><guid>https://blog.youkuaiyun.com/junlouyu/article/details/120849952</guid><author>junlouyu</author><pubDate>Tue, 19 Oct 2021 16:57:57 +0800</pubDate><description><![CDATA[ArrayList集合原理
一、实现的接口
​	ArrayList集合实现接口：Serializable(序列号接口)，Cloneable(克隆标记接口)，Iterable(迭代器接口)，Collection(集合根接口)，List(List集合接口),RandomAccess(标记接口，作用为支持快速随机访问)
二、直接子类
​	AttributeList，RoleList，RoleUnresolvedList
三、ArrayList源码解读


创建ArrayList的三种方式


创建指定长度Arra]]></description><category></category></item></channel></rss>