<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Relaxaaa的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Relaxaaa</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Relaxaaa]]></copyright><item><title><![CDATA[手RPC框架实现运程调用 （简易版）BIO]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/126271234</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/126271234</guid><author>Relaxaaa</author><pubDate>Wed, 10 Aug 2022 17:41:12 +0800</pubDate><description><![CDATA[简单的讲发送调用的类的名称+方法到另外一个服务中，拿到类和方法名之后通过反射调用，把数据返回，这就是远程调用。]]></description><category></category></item><item><title><![CDATA[【自动关闭IO流】]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/125739999</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/125739999</guid><author>Relaxaaa</author><pubDate>Tue, 12 Jul 2022 11:50:25 +0800</pubDate><description><![CDATA[自动关闭IO流，这个是java7提供的，但是有一个前提是必须实现Closeable。try段代码执行完毕后，系统会自动调用资源的关闭方法关闭资源。非常适合有些人频繁操作io可能就会忘记关闭io。
点进去FileInputStream 或者FileOutputStream 可以看见
FileInputStream 继承了InputStream， FileOutputStream 继承了OutputStream，继续点进去看。
里面实现了Closeable。而Closeable继承自AutoCloseable，]]></description><category></category></item><item><title><![CDATA[【线程池、有返回值的线程池、线程池监控】]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/125373105</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/125373105</guid><author>Relaxaaa</author><pubDate>Tue, 28 Jun 2022 17:38:13 +0800</pubDate><description><![CDATA[newFixedThreadPool：
固定大小的线程池,每次有任务就创建一个线程，直到线程达到线程池的最大值，后面的任务会放到一个队列里，等待线程空闲的时候执行
代码结果

可以很清楚看见只有3个线程在运行，这就是线程池的好处，循环利用已有的线程。newSingleThreadExecutor：
java线程池中单一的线程池。表示是一个线程池，可以添加多个子线程，但是只有一个线程能运行，当前线程执行完了后下一个添加进来的线程才能运行。单一的线程池，该线程池中每时每刻只有一个线程能运行。添加进入的线程必须等]]></description><category></category></item><item><title><![CDATA[【线程学习笔记】]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/124947180</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/124947180</guid><author>Relaxaaa</author><pubDate>Mon, 20 Jun 2022 10:52:53 +0800</pubDate><description><![CDATA[什么是线程？
线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中，
是进程中的实际运作单位。在多核CPU中，利用多线程可以实现真正意义上的并行执行在一个应用进程中，会存在多个同时执行的任务，如果其中一个任务
被阻塞，将会引起不依赖该任务的任务也被阻塞。通过对不同任务创
建不同的线程去处理，可以提升程序处理的实时性。首先先看线程的创建方式，大家一定背的可熟儿了（继承thread，实现runnable，实现callable，线程池），建议还是手打一遍。1.Thread创建
执行结果为

2.Runna]]></description><category></category></item><item><title><![CDATA[【总结list set 和map】]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/124866175</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/124866175</guid><author>Relaxaaa</author><pubDate>Thu, 19 May 2022 18:57:21 +0800</pubDate><description><![CDATA[说到集合，就list接口，set接口和map接口
想了解他们几个，必不可少的得先了解他们的数据结构。
数据机构
我们先介绍几个数据结构：数组，链表，树
1.数组
Char[] sz = new Char[]{'S','H','U','Z','U'};
Char[] sz1 = new Char[5];
cs1[0] = 'S';
....

由图可见，这就是数组结构，看着图我们不难总结出几个特点：

1.内存地址连续
2.可以通过下标访问的方式访问成员，所以查询效率高
3.增删操作会给系统带来性能消耗[保证]]></description><category></category></item><item><title><![CDATA[前端ui框架layUI]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/114651674</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/114651674</guid><author>Relaxaaa</author><pubDate>Thu, 11 Mar 2021 09:08:00 +0800</pubDate><description><![CDATA[layUI
layui（谐音：类UI) 是一款采用自身模块规范编写的前端 UI 框架，遵循原生 HTML/CSS/JS 的书写与组织形式，门槛极低，拿来即用。
https://www.layui.com/doc/
将layUI全部路径导入项目（注意项目文件路径）
模块化方式
使用哪个模块功能就加载哪个模块
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta charset="utf-8"&gt;
  &lt;meta name="viewpo]]></description><category></category></item><item><title><![CDATA[jquery属性操作，dom节点操作]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/113780139</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/113780139</guid><author>Relaxaaa</author><pubDate>Wed, 10 Feb 2021 11:06:40 +0800</pubDate><description><![CDATA[jquery属性操作
在js中对于属性的操作会直接使用属性名进行赋值与获取，但是jquery对齐进行了封装，提供了对不同属性操作的方法




属性操作函数
说明




html ( )
设置或获取innerHTML属性的值


text ( )
设置或获取innerText属性的值


val ( )
设置或获取value属性的值


attr ( )
设置或获取某属性的值


removeAttr ( )
删除某属性


prop ( )
跟attr()作用一样，但是主要针对可简写的属性


remo]]></description><category></category></item><item><title><![CDATA[js实例，jquery]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/113539006</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/113539006</guid><author>Relaxaaa</author><pubDate>Tue, 02 Feb 2021 09:51:30 +0800</pubDate><description><![CDATA[正则表达式




符号
描述




/…/
代表一个模式的开始和结束


^
匹配字符串的开始


$
匹配字符串的结束


\s
任何空白字符


\S
任何非空白字符


\d
匹配一个数字字符，等价于**[0-9]**


\D
除了数字之外的任何字符，等价于**[^0-9]**


\w
匹配一个数字、下划线或字母字符，等价于**[A-Za-z0-9_]**


\W
任何非单字字符，等价于**[^a-zA-z0-9_]**


.
除了换行符之外的任意字符






符号
描述




{n]]></description><category></category></item><item><title><![CDATA[函数、事件、js对象]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/112471470</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/112471470</guid><author>Relaxaaa</author><pubDate>Mon, 11 Jan 2021 15:33:04 +0800</pubDate><description><![CDATA[函数
常用系统函数
parseInt (“字符串”)
将字符串转换为整型数字
如: parseInt (“86”)将字符串“86”转换为整型值86
parseFloat(“字符串”)
将字符串转换为浮点型数字
如: parseFloat(“34.45”)将字符串“34.45”转换为浮点值34.45
isNaN()
用于检查其参数是否是非数字
        var str ="asdas";
        //str=parseInt(str);//将字符串转换为整数类型 注意会将小数部分丢弃
     ]]></description><category></category></item><item><title><![CDATA[js基本语法，dom对象，bom对象]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/112302008</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/112302008</guid><author>Relaxaaa</author><pubDate>Thu, 07 Jan 2021 08:58:37 +0800</pubDate><description><![CDATA[javaScript



基本语法
书写位置
1.以脚本块的形式书写在页面中
2.以脚本文件的形式书写在脚本文件中，在页面进行引入
变量
用于声明后使用变量名进行指定数据的保存
js是一种弱类型的语言，在进行数据声明时无需指定数据类型，在运行期间会自动根据保存的数据进行类型转换
所以 js中声明变量语法统一为  var  变量名=值;

数据类型
js中提供5中数据类型进行全数据的类型声明
Number类型分为整型和实型
例如:　15    2.9     4E5
String类型
例如　“abc”   ]]></description><category></category></item><item><title><![CDATA[浮动，层叠、定位、H5新标签]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/112212344</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/112212344</guid><author>Relaxaaa</author><pubDate>Tue, 05 Jan 2021 09:04:40 +0800</pubDate><description><![CDATA[浮动
float：浮动方向
1、任何元素都可以浮动。浮动元素会生成一个块级框，而不论它本身是何种元素。
2、假如在一行之上只有极少的空间可供浮动元素，那么这个元素会跳至下一行
3、浮动元素会脱离文档流，会压住下一个块元素，但不会压住其内容。
1.浮动原理：浮动在当前行，脱离原来文本，进入到新的一层（浮动层），然后在设定的方向（左右）移动，直到遇到父级盒子的边缘，或者其他浮动块的边缘停止
2.浮动换行：当一行没有足够空间存放所有浮动块时，多出来的盒子会挤到下一行，然后按照设定的方向继续移动，直到遇到父级盒子的]]></description><category></category></item><item><title><![CDATA[css层叠样式表、盒子模型]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/112169095</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/112169095</guid><author>Relaxaaa</author><pubDate>Mon, 04 Jan 2021 10:02:50 +0800</pubDate><description><![CDATA[CSS
一、CSS是Cascading Style Sheet的简称，称为“层叠样式表”或者“级联样式表”，是一组格式设置规则，用于控制网页内容的外观，可将页面内容与表现形式分离。
二、1985年5月12日，W3C组织推出了CSS2,使得这项技术在世界范围内得到广泛的应用。
三、CSS3提供了非常多新途径去改善你的设计工作，且做了不少重要的变化。
优点
1、样式复用，有效的避免代码臃肿
2、方便网站的后期维护
3、对页面进行精准控制，实现精美、复杂的页面
基本语法
修改的样式：值；
根据书写位置分为
外部样]]></description><category></category></item><item><title><![CDATA[html基础，常用标签]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/111596902</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/111596902</guid><author>Relaxaaa</author><pubDate>Wed, 23 Dec 2020 19:09:48 +0800</pubDate><description><![CDATA[Html
HTML：Hyper Text Markup Language 超 文本标记语言
用于书写在页面上可以直接被浏览器解析执行的语言(标签)
通过固定的标签进行相应功能的实现

使用根标签进行文件的书写之后再根标签中书写相应的二级或多级标签实现相应页面的书写
html标签
html标签是文档的根标签
head标签
页面的头部分可以包含页面的标题、文件MIME类型、样式表、脚本等
title标签
设置文档的标题
body标签
html文档的主体部分，放置需要呈现给用户的内容
meta标签
主要功能：为页]]></description><category></category></item><item><title><![CDATA[Dao设计模式，Mvc设计模式]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/111352338</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/111352338</guid><author>Relaxaaa</author><pubDate>Fri, 18 Dec 2020 09:05:28 +0800</pubDate><description><![CDATA[Dao设计模式
DAO (Data Access Object) 数据访问对象是第一个面向对象的接口，在基于orm对象关系映射的基础上，对数据库的使用进行进一步的封装。
将数据库查询的业务逻辑进行封装，使在进行数据库业务使用时，直接使用相应的对象进行方法的执行，而不不在需要考虑sql语句编写（因为已经预先进行了相应功能的书写）
Dao设计模式不涉及功能的新增只不过是将已有代码进行规范的整理与书写
通常使用三个不同的包进行文件的划分
pojo/javabean:存放保存数据的实体类
dao：用于存放所有表操作]]></description><category></category></item><item><title><![CDATA[jdbc预编译对象，事务，数据库连接池]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/111144237</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/111144237</guid><author>Relaxaaa</author><pubDate>Sun, 13 Dec 2020 19:52:21 +0800</pubDate><description><![CDATA[jdbc预编译对象
原始的jdbc使用声明对象进行sql的执行，对于执行的sql参数使用字符串拼接的形式进行添加
	Class.forName("com.mysql.jdbc.Driver");
		Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/teacher", "root", "root");
		Statement statement = con.createStatement();
		// 当使用]]></description><category></category></item><item><title><![CDATA[索引和jdbc]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/110957411</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/110957411</guid><author>Relaxaaa</author><pubDate>Thu, 10 Dec 2020 17:18:46 +0800</pubDate><description><![CDATA[数据库优化
在进行程序编写以及程序运行时，往往需要进行大量的数据库操作，但是，随着数据量的增大，数据字段的增多，在进行sql查询时往往可能消耗大量的时间，并且获取数据后还需要将数据发送给用户，这样就造成了程序响应时间过长，为了提高客户体验，数据库优化就必须进行（提高效率）
数据库优化提高效率大致分为三类：
1、硬件优化
提高数据库软件服务器硬件性能
2、软件优化
通过配置conf下my.ini进行属性的配置进行优化
3、sql语句优化
（1）尽量少进行计算
Mysql的作用是用来存取数据的，不是做计算的，做]]></description><category></category></item><item><title><![CDATA[函数、多表查询]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/110938860</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/110938860</guid><author>Relaxaaa</author><pubDate>Wed, 09 Dec 2020 19:41:41 +0800</pubDate><description><![CDATA[子查询
当多个表中数据存在关联，且需要先由另一个表数据查询后使用进行当前表数据的查询
由多条sql语句组成用于返回指定数据


子查询中的sql语句一般返回一列数据并且有时可能返回唯一数据
函数
聚合函数
聚合函数：对一组值进行计算，并返回计算后的值 ，具有统计数据的作用，将多行数据进行聚合操作返回一个指定值
注意：在使用聚合函数时一般不会再对其他数据进行单独查询，因为聚合函数执行后仅返回一条数据，所以在进行查询时，如果其他数据存在多条也只返回第一条语句
sum()
求和，将指定列中所有数据求和后返回

a]]></description><category></category></item><item><title><![CDATA[dml、条件查询、模糊查询]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/110880005</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/110880005</guid><author>Relaxaaa</author><pubDate>Tue, 08 Dec 2020 19:26:07 +0800</pubDate><description><![CDATA[dml
数据管理语言，用于管理操作数据库中存储的数据
插入数据
关键字 insert
语法：
INSERT  [INTO]  表名  [(列名)] VALUES  (值列表)
1、基本写法（为全属性进行书写赋值）
insert into 表名 （列1，列2）values (值1，值2)

如果在进行输入插入时只想为某一属性赋值，其他使用默认值赋值可以只书写赋值属性（注意，如果设置了not null且没有设置默认值  那么会报错）
2、简略写法（为部分属性书写赋值）
insert into 表名(添加数据的列]]></description><category></category></item><item><title><![CDATA[数据库简介及安装，ddl语句]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/110825085</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/110825085</guid><author>Relaxaaa</author><pubDate>Mon, 07 Dec 2020 19:11:59 +0800</pubDate><description><![CDATA[数据库
数据库的作用
存储大量数据，方便检索和访问
保持数据信息的一致、完整
共享和安全
通过组合分析，产生新的有用信息
数据库的分类
按照数据（多个数据是否存在联系）关系进行划分
①关系型数据库
用于存储存在一定关联的数据库，存储形式类似于表，存储的数据拥有统一的类型与名称

②非关系型数据库
存储数据以一定形式进行存储，数据与数据之间没有关联关系,类似于map
MongDB
Redis
数据存储的方式
数据库就是“数据”的“仓库”
数据库中包含表、关系以及操作对象
数据存放在表中
所有数据存储在相应的表]]></description><category></category></item><item><title><![CDATA[XML解析]]></title><link>https://blog.youkuaiyun.com/Relaxaaa/article/details/110561190</link><guid>https://blog.youkuaiyun.com/Relaxaaa/article/details/110561190</guid><author>Relaxaaa</author><pubDate>Thu, 03 Dec 2020 19:08:15 +0800</pubDate><description><![CDATA[XML（可扩展标记语言）
Extensive Markup Language
概述：
xml:即可扩展标记语言，xml是互联网数据传输的重要工具，它可以跨越互联网任何的平台，不受编程语言和操作系统的限制，可以说它是一个拥有互联网最高级别通行证的数据携带者。xml是当前处理结构化文档信息中相当给力的技术，xml有助于在服务器之间穿梭结构化数据，这使得开发人员更加得心应手的控制数据的存储和传输。
xml用于标记电子文件使其具有结构性的标记语言，可以用来标记数据、定义数据类型，是一种允许用户对自己的标记语言进行定]]></description><category></category></item></channel></rss>