<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Zenrym的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Zenrym</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Zenrym]]></copyright><item><title><![CDATA[Linux学习笔记]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/113886002</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/113886002</guid><author>Zenrym</author><pubDate>Mon, 22 Feb 2021 20:27:53 +0800</pubDate><description><![CDATA[文章目录Linux简介Linux和Windows的区别Linux内核版本Linux目录结构vi和vim编辑器vi和vim常用的三种模式vi和vim的常用快捷键关机&amp;重启命令Linux下的用户管理用户和组的相关文件：/etc/passwd文件：/etc/shadow文件：/etc/group文件：
Linux简介
在计算机中软件分为两种，一种是应用软件，一种是操作系统软件，而Linux就是一种操作系统软件。在日常生活中，我们一般用到的是 Windows 或者 Mac 这样的操作系统软件，而 Linux]]></description><category></category></item><item><title><![CDATA[MyBaits基础部分总结]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/109003438</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/109003438</guid><author>Zenrym</author><pubDate>Wed, 18 Nov 2020 22:45:10 +0800</pubDate><description><![CDATA[什么是框架
框架（FrameWork）是整个或部分系统的可重用设计，表现为一组抽象构件及构件实例间交互的方法；另一种定义认为，框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。简而言之，框架就是某种应用的半成品，就是一组组件，供你选用来完成自己的系统，也可以将框架理解为使用别人搭建好的舞台，但是需要自己上台表演。
使用框架的好处
框架封装了很多的细节，使开发者可以使用极简的方式实现功能，很大程度上提升了开发的效率
JDBC编程存在的问题
1.数据库连接频繁的被创建和关闭，十分]]></description><category></category></item><item><title><![CDATA[Java数组知识复习]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/108551144</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/108551144</guid><author>Zenrym</author><pubDate>Sat, 10 Oct 2020 11:16:27 +0800</pubDate><description><![CDATA[文章目录一维数组的拷贝
一维数组的拷贝
假设我们现在已经有了一个一维数组arr，现在想要将arr中的值拷贝给一个新数组brr。如果只是简单的使用 int[] brr = arr 这样的语句的话，那么brr将会与arr共享同一块内存空间，而不是自己独享一份内存空间。如果我们对拷贝后的数组brr的值进行修改时，那么也会改变arr的值。为了解决这个问题，我们可以使用以下几种方法进行数组的拷贝：
1.for循环拷贝：
public static int[] copy(int[] arr){
        int[]]></description><category></category></item><item><title><![CDATA[Java线程池复习]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/108478598</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/108478598</guid><author>Zenrym</author><pubDate>Thu, 10 Sep 2020 11:25:24 +0800</pubDate><description><![CDATA[文章目录为什么要使用线程池ThreadPoolExecutor的全参构造函数参数介绍四种常用的线程池
为什么要使用线程池
多线程的缺点：
1.处理任务的线程的创建和销毁都非常耗时并且非常耗费资源
2.多线程之间的切换也会非常耗时并且耗费资源
解决方法：
如果在使用线程时，线程已经存在，那么就消除了创建线程时所耗费的时间；
可以通过设置线程的数目，来防止资源不足
ThreadPoolExecutor的全参构造函数参数介绍
在Java中创建线程池常用的类是ThreadPoolExecutor，这个类的全参构造函]]></description><category></category></item><item><title><![CDATA[Java容器知识总结]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/108343981</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/108343981</guid><author>Zenrym</author><pubDate>Tue, 08 Sep 2020 22:10:53 +0800</pubDate><description><![CDATA[文章目录容器类关系图HashMap实现分析JDK1.8之前的并发问题JDK1.8并发问题
容器类关系图

HashMap实现分析
HashMap实际上是一个“链表散列”的数据结构，即数组和链表的结合体。数组的特点是：存储区间连续，占用内存严重，寻址容易，插入删除困难；而链表的特点是：存储区间离散，占用内存比较宽松，寻址困难，插入删除容易；HashMap综合应用了这两种数据结构，实现了寻址容易，插入删除也比较容易的特点。

JDK1.8之前的并发问题
1.使用HashMap进行put操作时，会调用如下的方法：]]></description><category></category></item><item><title><![CDATA[多线程控制类]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/107892881</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/107892881</guid><author>Zenrym</author><pubDate>Thu, 13 Aug 2020 00:12:10 +0800</pubDate><description><![CDATA[文章目录ThreadLocal作用Thread常用方法
为了保证多线程的三个特性（原子性、可见性、有序性），Java引入了很多线程控制机制，下面介绍其中常用的几种：
**ThreadLocal：**线程本地变量
**原子类：**保证变量进行原子操作
**Lock类：**保证线程的有序性
**Volatile关键字：**保证线程变量可见性
ThreadLocal
作用
ThreadLocal提供线程局部变量，为使用相同变量的每一个线程维护一个该变量的副本。当某些数据是以线程为作用域，并且不同的线程具有不同的数]]></description><category></category></item><item><title><![CDATA[Java内存模型知识总结]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/107887533</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/107887533</guid><author>Zenrym</author><pubDate>Sun, 09 Aug 2020 00:07:12 +0800</pubDate><description><![CDATA[文章目录Java内存模型
Java内存模型
根据JVM的规范，JVM的内存共分为虚拟机栈、堆、方法区、本地方法栈、程序计数器五个部分，其结构图如下：


]]></description><category></category></item><item><title><![CDATA[线程间通信知识总结]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/107867091</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/107867091</guid><author>Zenrym</author><pubDate>Sat, 08 Aug 2020 22:44:38 +0800</pubDate><description><![CDATA[文章目录为什么要进行线程间通信线程间通信方式
为什么要进行线程间通信
多个线程并发执行时，在默认的情况下，CPU是随机切换线程的，而有时我们需要让CPU按照我们的期望来执行线程，此时就需要线程之间协调通信
线程间通信方式
1.休眠唤醒的方式，如：Object中的wait、notify、notifyAll和Condition中的await、signal、signalAll
2.CountDownLatch，用于某个线程A等待一个或多个其他线程执行完毕后，线程A才执行
3.CyclicBarrier,一组线程等]]></description><category></category></item><item><title><![CDATA[Java多线程基础]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/106022372</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/106022372</guid><author>Zenrym</author><pubDate>Sun, 10 May 2020 13:04:49 +0800</pubDate><description><![CDATA[文章目录并发与并行进程与线程线程的创建继承Thread类实现Runable接口实现callable接口小结线程生命周期
并发与并行
并发：指两个或者多个事件在同一时刻发生，也就是真正的同时执行程序
并行：指两个或者多个事件在同一时间段内发生，可以理解为CPU高速切换给我们产生的一种同时执行的错觉

进程与线程
进程：进程是指计算机中的程序关于某数据集合上的一次运行活动，是系统进行资源分配和调度的基本单位，是操作系统结构的基础，进程是线程的容器。简单来说，进程就是运行起来的程序。比如我们打开浏览器，打开qq，]]></description><category></category></item><item><title><![CDATA[JDBC知识总结]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/105654483</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/105654483</guid><author>Zenrym</author><pubDate>Tue, 21 Apr 2020 13:59:35 +0800</pubDate><description><![CDATA[什么是JDBC？
JDBC的全称是 Java Database Connectivty ，它是Java和数据库之间的一座桥梁，是一种规范。各种不同类型的数据库都依赖这种规范而有着相应的实现，都是由Java类和接口组成。以下我们来介绍的是如何通过JDBC来连接MySQL数据库
使用JDBC的步骤
1、导入JDBC的MySQL实现依赖
2、进行参数配置
3、加载驱动
4、建立连接
5、创建操作数据库对...]]></description><category></category></item><item><title><![CDATA[IO]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/105291979</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/105291979</guid><author>Zenrym</author><pubDate>Thu, 16 Apr 2020 13:46:20 +0800</pubDate><description><![CDATA[文章目录IO概述1、什么是IO2、IO的分类
IO概述
1、什么是IO
我们把数据的传输，可以看作是一种数据的流动，按照流动的方向，以内存为基准，可以分为输入（input）和输出（output），流向内存的输入流，流出内存的输出流。Java中I/O操作主要是指使用java.io包下的内容，进行输入、输出操作。输入也叫做读取数据，输出也叫做写出数据。
I：input（输入） - 把硬盘中的数据读取到...]]></description><category></category></item><item><title><![CDATA[Java文件IO基础]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/105205462</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/105205462</guid><author>Zenrym</author><pubDate>Tue, 31 Mar 2020 20:11:49 +0800</pubDate><description><![CDATA[文章目录基本概念：路径的简单介绍：绝对路径：相对路径：FILE类的构造方法：File(String pathname)：File(String parent, String child):File(File parent , String child):File类的常用方法获取功能的方法判断功能的方法创建删除功能的方法
基本概念：
与系统有关的路径分隔符（路径分隔符）：
在Windows中表示为 ...]]></description><category></category></item><item><title><![CDATA[Mysql事务相关问题]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/105178160</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/105178160</guid><author>Zenrym</author><pubDate>Sun, 29 Mar 2020 20:06:36 +0800</pubDate><description><![CDATA[事务的简单介绍：
当我们要完成一件事情，而这件事情又包含好几个步骤的时候，我们就可以将这件事情看作一个事务。
只有当事务中的每个部分都执行成功以后，这个事务才算执行成功。
事务的四大特性：
1、原子性（Atomicity）：
实现原理：通过 Undo Log 日志来实现，在Undo log 日志中记录了与我们所执行的SQL语句意义相反的一组SQL语句，例如：当我们执行了一条插入语句时，在 Undo...]]></description><category></category></item><item><title><![CDATA[用循环链表解决约瑟夫问题]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/105162673</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/105162673</guid><author>Zenrym</author><pubDate>Sat, 28 Mar 2020 16:05:17 +0800</pubDate><description><![CDATA[Josephu（约瑟夫环）问题描述：
设编号为1，2，…，n 的 n 个人围坐一圈，约定编号为 k （1&lt;=k&lt;=n）的人开始报数，数到 m 的那个人出列，他的下一位又从1开始报数，数到 m 的那个人又出列，以此类推，直到所有的人出列为止，由此产生一个出队列的编号序列
解决思路：
1、先构成一个有 n 个节点的单循环链表
2、由 k 节点开始，从1开始计数，记到 m 时，对应节点从链表...]]></description><category></category></item><item><title><![CDATA[JVM基础知识总结]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/105069586</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/105069586</guid><author>Zenrym</author><pubDate>Sat, 28 Mar 2020 13:03:42 +0800</pubDate><description><![CDATA[JVM基础知识：
1、Java跨平台性解释
JVM是用C/C++开发的，是编译后的机器码，不能跨平台，，不同的平台下需要安装不同版本的JVM，我们编写的Java源码，编译后会生成一种字节码文件（.class）JVM就是负责将字节码文件翻译成特定平台下的机器码然后运行。所以我们只需要在不同的平台上安装相应版本的JVM，就可以运行Java程序了，即实现了“一次编译，到处运行”的目的
2、JVM介绍
J...]]></description><category></category></item><item><title><![CDATA[HashMap学习总结]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/104637919</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/104637919</guid><author>Zenrym</author><pubDate>Wed, 04 Mar 2020 16:23:53 +0800</pubDate><description><![CDATA[HaspMap的特点：
HashMap&lt;K,V&gt;继承了AbstractMap&lt;K,V&gt;,实现了Map&lt;K,V&gt;, Cloneable, Serializable等接口
1、存储双值，以 key—value 的形式存储数据
2、可以通过key来寻找key—value的位置（元素的位置由key来决定），从而得到value的值
3、key可以为null，但是不能重复
...]]></description><category></category></item><item><title><![CDATA[红黑树相关问题]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/104595989</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/104595989</guid><author>Zenrym</author><pubDate>Mon, 02 Mar 2020 20:05:14 +0800</pubDate><description><![CDATA[红黑树的五大性质
1、节点都有颜色，不是黑色就是红色
2、null表示黑色（叶子节点的left和right地址域）
3、根节点是黑色
4、不能出现连续的红色节点
5、从根节点到任意叶子节点的路径上的黑色节点数量是相同的
根据红黑树的性质可以得出：节点左右子树的高度差，高子树的高度不超过低子树的高度的2倍
为了维护红黑树的五大性质，所做的操作有：
1、左旋转
2、右旋转
3、节点着色
红黑树的插入（...]]></description><category></category></item><item><title><![CDATA[Mysql基础部分总结]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/104558616</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/104558616</guid><author>Zenrym</author><pubDate>Fri, 28 Feb 2020 18:46:55 +0800</pubDate><description><![CDATA[一、数据库的好处
1、可以持久化数据到本地
2、可以进行结构化查询
二、数据库的常见概念
1、DB（Database）：数据库，存储数据的容器
2、DBMS（Data Manage System）：数据库管理系统，又称为数据库软件或数据库产品，用于创建或管理数据库（DB）
3、SQL：结构化查询语言，用于和数据库通信的语言，它不是某个数据库软件所特有的，而是机会所有的主流数据库软件通用的语言。
三...]]></description><category></category></item><item><title><![CDATA[List接口下的集合特点：]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/104416022</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/104416022</guid><author>Zenrym</author><pubDate>Thu, 20 Feb 2020 19:07:40 +0800</pubDate><description><![CDATA[ArrayList：
特点：除了继承于List接口，它还继承于RandomAccess, Cloneable, java.io.Serializable等接口， 内容是有序的（插入顺序）并且是允许重复且允许为NULL，集合可   使用clone方法（Cloneable），可以进行序列化操作（Serializable），可以被随机访问（RandomAccess），可以使用迭代器遍历
使用场景：适合于...]]></description><category></category></item><item><title><![CDATA[类的加载过程复习]]></title><link>https://blog.youkuaiyun.com/Zenrym/article/details/103134284</link><guid>https://blog.youkuaiyun.com/Zenrym/article/details/103134284</guid><author>Zenrym</author><pubDate>Tue, 19 Nov 2019 00:00:02 +0800</pubDate><description><![CDATA[类的加载过程
把磁盘上的字节码文件加载到内存上
装载阶段
三种类加载器：
1、Bootstrap ClassLoader （启动）
顶级类加载器，由C/C++实现
2、EXT ClassLoader（扩展类加载器）
3、APP ClassLoader（应用类加载器）
路径：CLASSPATH
双亲委派模型
过程：从子类到父类查找是否加载过，如果加载过那么就将加载产物Class对象返回，如果未加载过...]]></description><category></category></item></channel></rss>