<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LwOOw_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LwOOw_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LwOOw_]]></copyright><item><title><![CDATA[7大设计原则与UML图笔记]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/118874068</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/118874068</guid><author>LwOOw_</author><pubDate>Sun, 18 Jul 2021 10:28:55 +0800</pubDate><description><![CDATA[接口使用规范


开发代码的程序员分为两种角色

作者（服务端程序员-提供接口服务的人）
用户（客户端程序员-使用接口提供的服务的人）



一般使用第三方提供的服务时，使用者手里是没有源码的，即使有也不能修改。


7大设计原则


开闭原则

解释：

当应用的需求改变时，在不修改软件实体的源代码或者二进制代码的前提下，可以扩展模块的功能，使其满足新的需求。对于扩展是开放的，但是对于修改是封闭的。


作用：开闭原则是面向对象程序设计的终极目标，它使软件实体拥有一定的适应性和灵活性的同时具备稳定性和延续]]></description><category></category></item><item><title><![CDATA[JAVA的hashcode与equals]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/118070119</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/118070119</guid><author>LwOOw_</author><pubDate>Sun, 20 Jun 2021 15:11:46 +0800</pubDate><description><![CDATA[java内有散集合HashSet、HashMap以及HashTable，它们的底层都是源于hash实现的，hash即通过映射像 y=ax+b 一样将对象与某个值映射起来这样查找起来就快了很多，理论上查找时间是O(1)，即查找每个元素花费的时间都一样，hashcode就相当于y，x就是具体的某个对象或基础数据，基于hashcode我们可以实现hash查找。
以HashMap为例，HashMap的具体实现中会用一个table保存已经存进去的对象的hashcode值，当我们存入数据会经过一下过程：
1、比较tab]]></description><category></category></item><item><title><![CDATA[RPC与RMI]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/117197486</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/117197486</guid><author>LwOOw_</author><pubDate>Sun, 30 May 2021 12:07:36 +0800</pubDate><description><![CDATA[简介
RPC(Remote Procedure Call)远程过程调用，是一种通信模式，与本地调用相区分，一块代码要调用另一个服务器上的接口，RPC像是一个实现标准，不局限于语言，通过RPC可以使两个不同程序记进行相互调用，是C/S结构，其封装了底层网络通信，像调用本地方法一样调用远程服务器上运行程序的方法，区别于HTTP服务，RPC基于TCP/IP协议，而HTTP服务基于应用层的HTTP协议，效率上RPC会更高。
RMI(Remote Method Invocation)远程方法调用，它是java实现用于]]></description><category></category></item><item><title><![CDATA[RPC初了解]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/117185829</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/117185829</guid><author>LwOOw_</author><pubDate>Sun, 23 May 2021 10:28:42 +0800</pubDate><description><![CDATA[前言
    RPC(Remote Procedure Call)远程过程调用，是一种通信模式，与本地调用相区分，一块代码要调用另一个服务器上的接口，对于java而言，要调用另一个服务器上的资源，可以使用socket通信或者Http/Https访问，因此对于RPC来说，其实现需求之一就是，必须要选择一种通信协议。
    因为java远程调用传输调用信息因此，其实现需求之二就是实现信息的序列化。其发展可如下所示：
RPC流程优化

原始socket通信需要了解client与server的详细细节(数据类型、]]></description><category></category></item><item><title><![CDATA[SeLinux]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/116564202</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/116564202</guid><author>LwOOw_</author><pubDate>Sun, 09 May 2021 14:09:17 +0800</pubDate><description><![CDATA[SeLinux安全性

信息安全评估等级四类七级：D\C1,C2\B1,B2,B3\A，SeLinux隶属于B1级别
SeLinux特点：

MAC 强制性访问控制，对访问的控制彻底化，对文件、目录、端口。
	RBAC 基于角色的访问控制，对用户赋予最小权限。 角色具备权限，root不再最大。
	TE 类型标签 类型执行，对进程赋予最小运行权限。对文件赋予type类型的标签，对进程赋予domain类型的标签，可规定某进程只能执行某类文件 。
SeLinux的执行模式：

enforcing 强制模式，只要S]]></description><category></category></item><item><title><![CDATA[java的Socket编程]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/115280722</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/115280722</guid><author>LwOOw_</author><pubDate>Sun, 28 Mar 2021 14:44:59 +0800</pubDate><description><![CDATA[1、TCP通信
客户端：
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;

/**
 * @Author: LiuJiaChao
 * @Description: java网络编程-客户端
 * @Date： Created in 21:37 2021/3/27
 */
public class Client {

    public static void main(String[] args) throws ]]></description><category></category></item><item><title><![CDATA[socket通信过程]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/114221663</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/114221663</guid><author>LwOOw_</author><pubDate>Sun, 28 Feb 2021 14:17:43 +0800</pubDate><description><![CDATA[一、网络字节序与主机字节序

1、主机字节序：

就是自己的主机内部，内存中数据的保存顺序，可以分为两种：

小端字节序（little-endian）：低位字节排放在内存的低地址端，高位字节排放在内存的高地址端。

大端字节序（big-endian）：高位字节排放在内存的低地址端，低位字节排放在内存的高地址端。

2、网络字节序

大端字节序即网络字节序

3、数据传输过程

a的固有数据存储-------标准化--------转化成b的固有格式

II

a的主机字节序----------网络字节序 --]]></description><category></category></item><item><title><![CDATA[Spring Security(原理解析:简单入门)]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/111773045</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/111773045</guid><author>LwOOw_</author><pubDate>Sun, 27 Dec 2020 10:17:13 +0800</pubDate><description><![CDATA[Spring Security(简单入门)

内容两部分：1. spring security的链；2. spring security的使用

Spring Security的链
     Spring Security的实现依靠的是链，用户发起请求，客户端接受请求，再经过Web  Filter的过滤请求最终传到Servlet上，而spring security就是再原有的链新添加了一条链，这条链专门用来处理用户的安全认证与授权。如图：

     FilterChainProxy即spring secu]]></description><category></category></item><item><title><![CDATA[linux命令记录]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/111416180</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/111416180</guid><author>LwOOw_</author><pubDate>Sun, 20 Dec 2020 13:26:43 +0800</pubDate><description><![CDATA[linux笔记
基础命令
1、init 0关机  init 3符文界面    init 5图形界面  init 6重启
    starx切换到图形 与init 5相比不用登录
2、 tty 查看当前终端窗口  uname -r查看系统内核 lscpu查看CPU信息
3、whoami查看谁登陆的 who am i谁登录并且附带时间 who查看所有正在登陆的人
3、runlevel查看当前init等级
4、id -u查看uid
5、内部命令：shell自带的命令
    外部命令：外部文件所带的命令
    ]]></description><category></category></item><item><title><![CDATA[java正则表达式零宽断言(预搜索) 详解(附图)]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/110333813</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/110333813</guid><author>LwOOw_</author><pubDate>Mon, 30 Nov 2020 11:18:36 +0800</pubDate><description><![CDATA[java预搜索分为两种：

正向预搜索（正向的含义是预搜索匹配的位置后）
a. 正向预搜索匹配(?=exp)（匹配位置后不能出现被表达式exp匹配的字符）
b. 正向预搜索不匹配(?!exp) (（匹配位置后有被表达式exp匹配的字符）)
反向预搜索（反向的含义是预搜索匹配的位置前）
a. 反向预搜索(?&lt;=exp)（匹配位置前不能出现被表达式exp匹配的字符）
b. 反向预搜索不匹配(?&lt;!exp) (匹配位置前有被表达式exp匹配的字符)
上面是解释不好理解，下面是演示：

public c]]></description><category></category></item><item><title><![CDATA[java注解初了解]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/110121063</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/110121063</guid><author>LwOOw_</author><pubDate>Wed, 25 Nov 2020 11:40:09 +0800</pubDate><description><![CDATA[前言
写java经常会遇见@ano这样的东西，这个就叫做注解，注解就像是一个标记，我们在一个类，一个方法或者一个成员变量上面写上注解时就表示这个东西
被这个注解标记了，假设有一个类Stu有public String name属性，我们在这个属性上写@ano("张三")，就表示name被ano标记了，我们标记是还记录
了一个参数，是"张三"，那么我们只要再去写一个解析类，去分析Stu这个类的name属性是否被ano标记了，如果被标记了，是否有参数，这样我们就能去
通过注解去执行一些东西了，接下来就可以了解下我]]></description><category></category></item><item><title><![CDATA[java注解深入学习]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/110109688</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/110109688</guid><author>LwOOw_</author><pubDate>Wed, 25 Nov 2020 09:07:56 +0800</pubDate><description><![CDATA[一、自定义注解分为三个步骤：

注解类定义
使用注解
对注解进行解释说明

1.1、注解定义：
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Eat {
    String fruit() default "香蕉"; //在注解类中，这些抽象方法叫属性
    String vegetable() default "茄子"; //default 表示默]]></description><category></category></item><item><title><![CDATA[java类加载顺序]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/109744866</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/109744866</guid><author>LwOOw_</author><pubDate>Tue, 17 Nov 2020 16:16:03 +0800</pubDate><description><![CDATA[java有枚举类：
// 定义一个星期的枚举类
public enum WeekEnum {
    // 在第一行显式地列出7个枚举实例(枚举值)，
    //系统会自动添加 public static final 修饰
    MONDAY, TUESDAY, WEDNESDAY;
} 

枚举类本质是：
public final class WeekEnum extends Enum {
    ...
    public static final WeekEnum MONDAY;
    pub]]></description><category></category></item><item><title><![CDATA[静态内部类非静态内部类特性与使用]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/109700691</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/109700691</guid><author>LwOOw_</author><pubDate>Sun, 15 Nov 2020 10:15:00 +0800</pubDate><description><![CDATA[注：只有内部类才能被声明为静态类，即静态内部类

静态内部类;

静态内部类能有静态成员变量、方法和非静态成员变量、方法。
	静态内部类能够访问外部类的所有成员变量，只能访问静态方法。
	可实例化（前提是权限修饰符的权限足够）。
	可重写构造方法。
	可以嵌套静态或非静态内部类
非静态内部类：

不能有静态成员(方法，变量)。
	可以访问外部的所有成员变量、方法。
	可实例化，实例化需要外部类的实例化对象（前提是权限修饰符的权限足够）。
	可重写构造方法。
	可以嵌套内部类，但不能嵌套静态内部类
	可被定义]]></description><category></category></item><item><title><![CDATA[session初了解]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/109559265</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/109559265</guid><author>LwOOw_</author><pubDate>Sun, 08 Nov 2020 14:43:30 +0800</pubDate><description><![CDATA[什么是Session

使用Cookie和附加URL参数都可以将上一次请求的状态信息传递到下一次请求中，但是如果传递的状态信息较多，将极大降低网络传输效率和增大服务器端程序处理的难度。

Session技术是一种将会话状态保存在服务器端的技术 ，它可以比喻成是医院发放给病人的病历卡和医院为每个病人保留的病历档案的结合方式 。

客户端需要接收、记忆和回送 Session的会话标识号，Session可以且通常是借助Cookie来传递会话标识号。

同一用户的不同页面共享数据（Session）







.]]></description><category></category></item><item><title><![CDATA[设计模式学前知识补充]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/109411593</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/109411593</guid><author>LwOOw_</author><pubDate>Sun, 01 Nov 2020 10:25:14 +0800</pubDate><description><![CDATA[接口使用规范

开发代码的程序员分为两种角色
作者（服务端程序员-提供接口服务的人）
	用户（客户端程序员-使用接口提供的服务的人）
一般使用第三方提供的服务时，使用者手里是没有源码的，即使有也不能修改。
7大设计原则

单一原则
	每个方法、每个类、每个框架只负责一件事情。
	
	里氏替换原则
	任何能使用父类对象的地方，都应该能替换为子类对象。
		替换后，语法不报错，逻辑无问题。
		保证了转型的正确性
	
	依赖倒置原则
	上层（0调用者）不能直接依赖下层（被调用者），它们都应该依赖于抽象。
		当]]></description><category></category></item><item><title><![CDATA[HTTP与HTTPS间的联系与如何由HTTP到HTTPS]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/109142762</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/109142762</guid><author>LwOOw_</author><pubDate>Sun, 18 Oct 2020 11:50:10 +0800</pubDate><description><![CDATA[一、HTTP(HyperText Transfer Protocol)

HTTP（超文本传输协议）是普遍使用的一种应用层协议，超文本意味着它能传输文本以外的资源，例如音频、视频等，对于前端开发人员来说是最常接触的协议，熟练使用它也是必备技能之一。

谈到HTTP就要说下GET和POST了（GET和POST能组合出其余所有的类型，例如PUT，DELET等），常见的理解是像账号密码之类的最好能使用POST，因为放到GET里会显示在导航栏内，不安全，但使用POST就一定安全吗？

无论使用GET还是POST都无]]></description><category></category></item><item><title><![CDATA[java反射机制与动态代理]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/108179058</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/108179058</guid><author>LwOOw_</author><pubDate>Sun, 11 Oct 2020 11:33:43 +0800</pubDate><description><![CDATA[反射相关：

Java反射机制是在运行状态中
	对于任意一个类，都能知道这个类的所以属性和方法；
	对于任何一个对象，都能够调用它的任何一个方法和属性；
	这样动态获取新的以及动态调用对象方法的功能就叫做反射。
	反射的基础是Class(java.lang.Class)类。


（1）、java代码在计算机里的三个时期

正在上传…重新上传取消正在上传…重新上传取消

class文件其实是字节码文件，也可认为是二进制文件。

class是由JVM在执行过程中动态加载的。JVM在第一次读取到一种class类.]]></description><category></category></item><item><title><![CDATA[mysql语句问题解决]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/108887843</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/108887843</guid><author>LwOOw_</author><pubDate>Wed, 30 Sep 2020 17:03:50 +0800</pubDate><description><![CDATA[1、left join数据筛选问题

 on后面的条件只能对left join右边的表进行筛选，左表匹配不到右表数据会在原右表位置处显示null，left join左边的表数据不受约束，将on后的条件加到where后会对所有数据进行筛选。

2、相同数据重复筛选使用问题

 with &lt;name&gt; as()

 mysql内可以使用with as生成临时表，&lt;name&gt;为临时表的名字，使用如下：


with arc as( 
    select id,arc.t...]]></description><category></category></item><item><title><![CDATA[有关DFA算法的简述]]></title><link>https://blog.youkuaiyun.com/LwOOw_/article/details/108547139</link><guid>https://blog.youkuaiyun.com/LwOOw_/article/details/108547139</guid><author>LwOOw_</author><pubDate>Sun, 13 Sep 2020 10:38:05 +0800</pubDate><description><![CDATA[学到敏感词匹配，了解到DFA算法，这个算法整体难度不大，依靠一些数据结构的的知识就能够构建代码，在这之前，先了解下DFA算法的思想。

 关于DFA算法名字的意义我并不能讲解具体，有能力者可以去了解下，名字也是了解一个东西的重要手段之一。

 说会正文，一般敏感词匹配都会有一个敏感词库，词库内依靠 ‘,’或者空格之类的符号隔开，通过解析文本字符串很容易得到每一个敏感词，现有敏感词如下：

 简书不

 简书不好用

 简书跟高永

 java最好用

...]]></description><category></category></item></channel></rss>