<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[v1xiaolin的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/v1xiaolin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; v1xiaolin]]></copyright><item><title><![CDATA[JAVA-JDBC基础知识]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/122002967</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/122002967</guid><author>v1xiaolin</author><pubDate>Mon, 20 Dec 2021 00:40:15 +0800</pubDate><description><![CDATA[前言

今天来好好聊一下关于JDBC的知识点，

而为什么是JDBC呢？

因为在我的学习过程中，前期经过Java基础、数据库、java-web，其实感觉还是比较轻松的，但是再到后面ＭyBatis、Spring、SpringMVC、Springboot 框架的时候却发现学习效率明显变低了，理解好像也变模糊，明明学习框架可是脑子里面却拉不起来框架。回头复习发现如果在JDBC衔接MyBatis部分能够理解的深刻透彻的话，那么后期框架会越学越轻松。

...]]></description><category></category></item><item><title><![CDATA[【数据结构与算法】单向链表的超详细底层源码，手工实现]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121437726</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121437726</guid><author>v1xiaolin</author><pubDate>Sat, 20 Nov 2021 14:51:58 +0800</pubDate><description><![CDATA[一、链表类简介：（王者英雄类）

    HeroNode类属性：

      作为演示，属性、方法权限设置为public

            编号：id；

            英雄名：name；

            昵称：otherName；

            下一个结点：next；

    HeroNodeLinkedList类方法：

   ...]]></description><category></category></item><item><title><![CDATA[【java集合】手搓ArrayList方法底层源码，超详细]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121433120</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121433120</guid><author>v1xiaolin</author><pubDate>Sat, 20 Nov 2021 11:56:11 +0800</pubDate><description><![CDATA[一、ArrayList类简介：

1、类名：MyArrayList；

      属性：容器（elementData）,

      元素个数（size），

      默认初始长度（DEFAULT_LENGTH）

2、需要实现的方法：

    添加：add()

    修改：set()

    查询：get()

    删除：remove()

    元素个数：size()

    是否为空...]]></description><category></category></item><item><title><![CDATA[【java高级】DOM解析XML技术-----【代码演示】]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121427475</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121427475</guid><author>v1xiaolin</author><pubDate>Fri, 19 Nov 2021 19:21:13 +0800</pubDate><description><![CDATA[​​​​​​​

目录



一、DOM解析XML技术

二、解析XML技术的步骤

​​​​​​​

一、DOM解析XML技术

 基于XML文档树结构的解析
	适用于多次访问的XML文档
	特点：；比较消耗资源
二、解析XML技术的步骤


&lt;?xml version="1.0" encoding="GB2312"?&gt;
&lt;PhoneInfo&gt;
    &lt;Brand name="华为"&gt;
        &lt;Type&gt;Mate30&lt;/Type&g...]]></description><category></category></item><item><title><![CDATA[【java高级】基于Socket的TCP网络编程（代码演示案例）]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121412789</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121412789</guid><author>v1xiaolin</author><pubDate>Fri, 19 Nov 2021 00:19:44 +0800</pubDate><description><![CDATA[目录

一、基于Socket的TCP编程

客户端Socket的工作过程包含以下四个基本的步骤：

服务器程序的工作过程包含以下四个基本的步骤：

二：代码案例：

一、基于Socket的TCP编程



客户端Socket的工作过程包含以下四个基本的步骤：

创建 Socket：根据指定服务端的 IP 地址或端口号构造 Socket 类对象。若服务器端响应，则建立客户端到服务器的通信线路。若连接失败，会出现异常。
	打开连接到 Socket 的输入/出流： 使用 getInputStream()方...]]></description><category></category></item><item><title><![CDATA[【java高级】多线程---Lock锁的使用]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121377775</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121377775</guid><author>v1xiaolin</author><pubDate>Wed, 17 Nov 2021 14:42:45 +0800</pubDate><description><![CDATA[目录

一：Lock锁

三：synchronized与Lock的对比

四：常见面试题：

五：优先使用顺序

一：Lock锁


	从JDK5.0开始，java提供了更强大的线程同步机制--通过显式定义同步锁对象来实现同步，同步锁使用Lock对象充当。
	
	
	ReentrantLock类实现了Lock，它拥有与synchronized相同的并发性和内存语义，在实现多线程安全的控制中，比较常用的是ReentrantLock，可以显式加锁、释放锁
	
二：Lock代码演示：


class Windo.]]></description><category></category></item><item><title><![CDATA[【java高级】多线程--死锁问题]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121376798</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121376798</guid><author>v1xiaolin</author><pubDate>Wed, 17 Nov 2021 14:14:15 +0800</pubDate><description><![CDATA[目录

一：什么是死锁

二：死锁代码演示

一：什么是死锁

不同的线程分别占用对方需要的同步资源不放弃，都在等待对方放弃自己需要的同步资源，就形成了线程的死锁

说明：


	死锁出现后，不会出现异常，不会出现提示，只是素有的线程都处于阻塞状态，无法继续
	
	
	我们使用同步时，要避免出现死锁
	
解决方法：


	专门的算法、原则
	
	
	尽量减少同步资源的定义
	
	
	尽量避免同步嵌套
	
二：死锁代码演示




class A {
	public synchronized void ...]]></description><category></category></item><item><title><![CDATA[【java高级】IO流--对象流（处理流之一）的使用]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121367912</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121367912</guid><author>v1xiaolin</author><pubDate>Tue, 16 Nov 2021 23:34:41 +0800</pubDate><description><![CDATA[一：什么对象流

对象流用于存储和读取基本数据类型数据和对象的处理流。它的强大之处在于可以把java中的对象写入数据源中，也能把对象从数据源中还原回来

二：对象的序列化机制

序列化：ObjectOutputStream类保存基本数据类型数据或对象的机制

反序列化：ObjectInputStream类用于还原基本数据类型数据或对象的机制

ObjectOutputStream和ObjectInputStream不能序列化static和transient修饰的成员变量



1、对象序列化机制允许把内存中]]></description><category></category></item><item><title><![CDATA[【java高级】IO流知识点梳理-中]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121345303</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121345303</guid><author>v1xiaolin</author><pubDate>Mon, 15 Nov 2021 23:01:20 +0800</pubDate><description><![CDATA[一：节点流和处理流

节点流：直接从数据源或目的地读写数据

字符流：不能直接从数据源或目的地读写数据，而是通过“连接”已存在的流（字节流、处理流）之上，通过对数据的处理为程序提供强大的读写功能



二：InputStream&amp;Reader

InputStream和Reader是所有输入流的基类

InputStream的典型实现：FileInputStream

方法：

int read();从输入流中读取数据的下一个字节。返回 0到 255范围内的int字节值。如果因为已经到达流末尾...]]></description><category></category></item><item><title><![CDATA[【java高级】IO流知识点梳理-上]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121304080</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121304080</guid><author>v1xiaolin</author><pubDate>Mon, 15 Nov 2021 15:17:42 +0800</pubDate><description><![CDATA[一：File类的使用

1、File类的概述

1、java.io.File类：文件和文件目录路径的抽象表达形式，与平台无关

2、File类能够新建、删除、重命名文件和目录，但不能访问文件内容本身，如果需要访问，需要使用输入、输出流

3、想要在java中表示一个真正存在的文件和目录，则必须有一个File对象

2、File的构造器

public File（pathname）

以pathname为路径创建File对象，可以时绝对路径或相对路径

           相对路径：是...]]></description><category></category></item><item><title><![CDATA[【Java集合】【List集合】第二章，Collection子接口之一：List接口]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121217863</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121217863</guid><author>v1xiaolin</author><pubDate>Mon, 08 Nov 2021 22:40:20 +0800</pubDate><description><![CDATA[一、List接口概述

List集合类中元素有序、可重复！集合中每个元素都有其对应的顺序索引。

List接口的实现类常用的由：ArrayList、LinkedList、Vector

ArrayList：List接口的主要实现类，线程不安全，效率高，底层使用Object[] elementData存储

LinkedList：对于频繁的插入和删除操作，使用此类的效率比ArrayList效率更高，底层使用的是双向链表存储

Vector：List接口的古老实现类，线程安全，但是效率低，底层使...]]></description><category></category></item><item><title><![CDATA[【java集合】第一节：Collection接口方法、Iterator迭代器接口]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121195254</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121195254</guid><author>v1xiaolin</author><pubDate>Sun, 07 Nov 2021 22:38:16 +0800</pubDate><description><![CDATA[一、集合框架的概述

1、集合和数组的异同点

集合、数组都是对多个数据进行存储操作的结构，简称：java容器

数组在存储多个数据方面的特点：

①：数组的长度随着初始化的设定而确定，无法更改

②：数组存储的是数据是连续的、可重复的

③：数组在初始化声明时，声明的是什么类型，后续就只能存储相对应的类型，无法更改

④：数组中提供的方法和属性很少，不利于数组元素的添加、插入和删除操作，效率不高

java集合分为两种体系

Collection接口：单列数据，定义了存取一组数据的方法的集合

  ...]]></description><category></category></item><item><title><![CDATA[【java基础】线程的生命周期、创建的两种方式及使用、线程的同步]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121177419</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121177419</guid><author>v1xiaolin</author><pubDate>Sat, 06 Nov 2021 15:28:39 +0800</pubDate><description><![CDATA[目录

一、概念

1、程序、进程、线程

二、线程的创建和使用

1、通过继承Thread类的方式

2、通过实现Runnable接口的方式：

3、Thread类中的相关方法

4、线程优先级

三、线程的生命周期

1、线程的几种状态

四、线程的同步

1、同步代码块

2、同步方法

一、概念

1、程序、进程、线程

程序：是为了完成某个任务，利用某种语言编写的一组指令的集合，及指一块静态的代码。

进程：是程序的一次执行的过程，也可以是一个正在运行的程序，是一个动态的过程，有他自己...]]></description><category></category></item><item><title><![CDATA[【算法-环形队列】通过一维数组实现原理和代码思路（java语言实现）]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121096444</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121096444</guid><author>v1xiaolin</author><pubDate>Tue, 02 Nov 2021 14:39:33 +0800</pubDate><description><![CDATA[注意点：

队列的特点：

先进先出，队列的输出、输入是通过数组的前后端进行操作，即队列的输入从数组的尾部进入，队列的输出从数组的头部输出

代码实现需要声明的属性：

front：头指针，本章操作环形队列的思路：front指向队列的头结点，也就是说arr[front]为队列的第一个元素

rear：尾指针，本章操作环形队列的思路，rear指向队列尾结点的后一位，并将数组的最后一位空出，作为约定

maxSize：数组的最大容量

arr[]:声明一个数组用来存放队列

代码实现：

1、通过构造器初始化声]]></description><category></category></item><item><title><![CDATA[【java基础】equals和==的区别，以及equals的重写原则]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121062353</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121062353</guid><author>v1xiaolin</author><pubDate>Sun, 31 Oct 2021 13:10:49 +0800</pubDate><description><![CDATA[==和equals的区别：

1、==为操作符，适用于基本数据类型和引用数据类型

如果比较的是基本数据类型，则比较的是两个变量保存的数据是否相等（不一定类型形同）

用“==”比较时，符号两边的数据类型必须兼容（可自动转换的基本数据类型除外），否则编译报错

如果比较的是引用数据类型，则比较的是两个对象的地址值是否相同，即两个引用是否指向同一个对象实体！

用“==”

2、而equals为方法，方法只能通过对象来调用，只适应于引用数据类型

equals（）：为根父类Object中的方法，所有类都是继承]]></description><category></category></item><item><title><![CDATA[java三大特征：封装、继承、多态的梳理及理解（包含重载、this关键字、重写、super关键字的梳理）]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/120937497</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/120937497</guid><author>v1xiaolin</author><pubDate>Sat, 30 Oct 2021 16:55:04 +0800</pubDate><description><![CDATA[1、java类以及类的成员

面向对象的两个要素

类：对一类事物的描述，是抽象的，概念上的定义

对象：是实际存在的该类事物的每个个体，因而也成为实例（instance）

面向对象程序设计的重点就是类的设计

设计类，就是设计类的成员

2、面向对象的三大特征

3、其他关键字
...]]></description><category></category></item><item><title><![CDATA[浅谈数据结构第一章，什么是数据结构]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121044653</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121044653</guid><author>v1xiaolin</author><pubDate>Fri, 29 Oct 2021 23:41:00 +0800</pubDate><description><![CDATA[数据结构简单的理解就是关系！是指相互之间具有一种或多种特定关系的数据元素的结合

按照视点的不同，我们把数据结构分为：逻辑结构、物理结构。

逻辑结构：是指数据对象中，数组元素之间的相互关系

集合结构：数据结构中的数据元素，除了属于同一集合外，他们之间是没有其他的关联关系的

线性结构：是指线性结构中的数据元素他们之间的关系是一对一的

树形结构：树形结构中的数据元素之间存在着一种“一对多”的数据关系

图形结构：图形结构中的数据元素是多对多的关系

逻辑结构是针对与具体问题的，通过对这个问题理解的基础上]]></description><category></category></item><item><title><![CDATA[浅谈类与类之间的关系]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121044109</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121044109</guid><author>v1xiaolin</author><pubDate>Fri, 29 Oct 2021 22:53:35 +0800</pubDate><description><![CDATA[一：依赖关系

    特性：临时、短暂、这种关系不需保存

依赖关系是对象之间最弱的一种关系，是临时性的。代码中一般指由：局部变量、函数参数、返回值建立的对于其他对象的调用关系


class A{
public B method(C c,D d){
E e = new E();
...
B b = new B();
...
return b;
} }





这个代码块中表示类A依赖了类B/C/D/E



二、关联关系：

对象之间的一种引用关系，比如客户类和订单类之间的关系。这种关系通常...]]></description><category></category></item><item><title><![CDATA[浅谈java的内存管理之回收机制]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/121018646</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/121018646</guid><author>v1xiaolin</author><pubDate>Thu, 28 Oct 2021 17:15:50 +0800</pubDate><description><![CDATA[分配：是有JVM自动为其分配相应的内存空间

释放：由JVM提供垃圾回收机制自动的释放内存空间

垃圾回收机制（GC:Garbage Collection）:将垃圾对象所占用的堆内存进行回收

java的回收机制是JVM提供的能力，由单独的系统级垃圾回收线程在空闲的时间以不定时的方式动态回收。

垃圾对象：不在被任何应用指向的对象

在线程中是否可以通知垃圾回收机制过来回收垃圾？

能，通过调用System.gc();或Runtime.getRuntime().gc();

调用了Syste...]]></description><category></category></item><item><title><![CDATA[（排序算法）冒泡排序、选择排序、插入排序算法动图讲解配代码]]></title><link>https://blog.youkuaiyun.com/v1xiaolin/article/details/120982607</link><guid>https://blog.youkuaiyun.com/v1xiaolin/article/details/120982607</guid><author>v1xiaolin</author><pubDate>Wed, 27 Oct 2021 11:45:29 +0800</pubDate><description><![CDATA[1、冒泡排序

相邻的两个元素进行相比较，如果前一个比后一个大，则进行交换，第一遍历到最后一个值的时候，即为最大，无需进行比较




        int[] arry =new int[10]; //定义一个一维数组，并随机赋值0-100以内的整数
        for(int i = 0;i&lt;arry.length;i++){
            arry[i]=(int)(Math.random()*100+1);
        }
        System.out.printl]]></description><category></category></item></channel></rss>