<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[代码充实生活的博客]]></title><description><![CDATA[用键盘敲出代码，用代码丰富生活~]]></description><link>https://blog.youkuaiyun.com/use_admin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; use_admin]]></copyright><item><title><![CDATA[对软件建模的全面认识]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/126905069</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/126905069</guid><author>use_admin</author><pubDate>Sat, 17 Sep 2022 14:29:04 +0800</pubDate><description><![CDATA[软件建模就是对一个系统的抽象化（并不是一个完全的表示），属于解决方案域，在需求和实现之间架起一座桥梁，通过模型指导一个软件系统的具体实现。简单来说，软件建模就是对软件系统设计思想的一个体现。]]></description><category></category></item><item><title><![CDATA[软件代码坏味道之滥用switch]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/126552337</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/126552337</guid><author>use_admin</author><pubDate>Sat, 27 Aug 2022 00:26:39 +0800</pubDate><description><![CDATA[switch是一种开关，是一种选择语句，用法简单，就是多分支选择语句，就是与多个if语句一样，功能上，switch与if两者可以完全可以相互取代，如果嵌套的if比较少时（三个以内），使用if比较简单，如果选择的分支比较多时，使用if会导致层数比较深，程序冗长，可读性下降；如果分支选择比较多，并且选择的类型码也比较固定的时候，可以使用switch来处理。...]]></description><category></category></item><item><title><![CDATA[对软件代码坏味道的认识]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/126475776</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/126475776</guid><author>use_admin</author><pubDate>Mon, 22 Aug 2022 23:44:12 +0800</pubDate><description><![CDATA[指代码表面的腐化现象，对需求易变性的估计不足、功能重复出现、片段式植入等代码腐化现象。（1）滥用面向对象（2）膨胀剂（3）可有可无（4）难以修改和耦合。]]></description><category></category></item><item><title><![CDATA[对基本类型-整型数据结构的认识]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/126457610</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/126457610</guid><author>use_admin</author><pubDate>Mon, 22 Aug 2022 00:04:22 +0800</pubDate><description><![CDATA[int和int是java的基本数据类型，用于直接存储数据值，存储放在栈空间中。]]></description><category></category></item><item><title><![CDATA[对软件重构的认识与重构原则]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/125550960</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/125550960</guid><author>use_admin</author><pubDate>Fri, 01 Jul 2022 00:58:49 +0800</pubDate><description><![CDATA[一、什么是重构重构就是在不改变软件的可观察行为的前提下，对代码进行修改，改进程序的内部结构。有两层含义：二、为什么要重构技术不断发展，程序会慢慢老化，老程序会存在以下问题：当一个软件产品出现了以上问题的，就需要重构该软件产品了。三、重构的好处四、重构的分类重构有多个层次，每一层的重构意义不同：具体的重构类别：...]]></description><category></category></item><item><title><![CDATA[[算法]【刷题笔记】链表专题]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/123807927</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/123807927</guid><author>use_admin</author><pubDate>Mon, 28 Mar 2022 22:16:35 +0800</pubDate><description><![CDATA[必备知识

链表是一种兼具递归和迭代性质的数据结构



一、合并两个有序链表（虚拟头结点）


/**

*Definitionforsingly-linkedlist.

*publicclassListNode{

*intval;

*ListNodenext;

*ListNode(){}

*ListNode(intval){this.val=val;}

*ListNode(intval,Li...]]></description><category></category></item><item><title><![CDATA[设计模式之代理模式（golang）]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/122401309</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/122401309</guid><author>use_admin</author><pubDate>Sun, 09 Jan 2022 23:00:11 +0800</pubDate><description><![CDATA[代理模式

代理模式（Proxy Pattern）指为其他对象提供一种代理，以控制对这个对象的访问，属于结构型设计模式。使用代理模式主要有两个目的：一是保护目标对象，二是增强目标对象。
_

场景

某订单管理系统, 允许用户对订单进行增删改查
	后增加日志需求, 要求对订单的Save和Delete操作, 记录操作日志
	后再增加权限需求, 要求对订单的Save操作, 检查order.save权限; Delete操作, 检查order.delete权限
设计

IUser: 定义用户信息及权限信息
	Ord]]></description><category></category></item><item><title><![CDATA[设计模式之静态代理]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/122400961</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/122400961</guid><author>use_admin</author><pubDate>Sun, 09 Jan 2022 22:37:56 +0800</pubDate><description><![CDATA[一、什么是静态代理

静态代理是代理模式中的一种，静态跟动态相对，静态是指代理类在编译阶段生成，在程序运行之前就已经存在了，动态代理则是在运行期生成代理类。静态代理都是我们在Java代码中定义的。目前静态代理主要有AspectJ静态代理和JDK静态代理（动态代理有JDK动态代理和Cglib动态代理）

关系图：



二、AspectJ静态代理（相当是幕后代理）

AspectJ是一个Java实现的面向切面的框架，它拓展了Java语言。AspectJ有自定义的语法，所以它有一个专门的编译器用来生成遵守Jav]]></description><category></category></item><item><title><![CDATA[设计原则-依赖倒置原则]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/118917409</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/118917409</guid><author>use_admin</author><pubDate>Mon, 19 Jul 2021 23:54:37 +0800</pubDate><description><![CDATA[一、什么是依赖倒置原则

Dependence Inversion Principle,简称DIP，是指高层模块（直接调用层）不应该依赖底层模块（具体的实现层），反过来也是，它们之间应该依赖抽象层。

也就是说在高层模块与底层模块之间，使用抽象层做桥梁，高层模块只管使用抽象层的东西，底层模块只管基于抽象层拓展各种个性功能，高层模块依赖抽象，底层模块依赖抽象，在运行态中传入不同的实例即可无缝地完成各种需求（借助了里氏替换原则），同时也是开闭原则的基础。

在java中具体点就是，在一个调用类（高层模块）中只调]]></description><category></category></item><item><title><![CDATA[设计原则-开闭原则]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/118880726</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/118880726</guid><author>use_admin</author><pubDate>Sun, 18 Jul 2021 18:23:32 +0800</pubDate><description><![CDATA[一、什么是开闭原则

Open-Close Principle,简称OCP，指的是一个软件实体（包括一个模块、类和方法）都应该对修改关闭、对拓展开放，也就是对修改和拓展这两个行为的原则；

在面向对象中，强调的是用抽象构建框架（关闭修改），用实现拓展新功能（开放拓展）；

在Java中具体点就是，使用抽象类或接口定义整体系统框架，然后使用子类或具体类去重写抽象类或实现接口相关方法，达到不用修改原来代码就可以拓展新的功能。

二、开闭原则的优点


	提高软件实体的可复用性
	
使用抽象构建的框架，那么抽象出]]></description><category></category></item><item><title><![CDATA[Java常用的7大设计原则]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/118634635</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/118634635</guid><author>use_admin</author><pubDate>Sat, 10 Jul 2021 14:39:28 +0800</pubDate><description><![CDATA[一、开闭原则OCP

简介

指的是一个软件实体（类或接口、模块和函数）对外拓展开放，对修改关闭，在Java面向对象中使用抽象思想达到目的。
	强调使用抽象构建框架，用实现拓展细节。
	抽象出一个类，使用不同的子类去继承或实现该类，面对不同需求只需子类去拓展该类即可，不必而需求变化而去修改该类的方法或属性


二、依赖倒置原则

简介

也叫依赖注入。高层模块不依赖底层模块，两者都依赖抽象，也是使用抽象的基本思想。
	高层使用者只拥有一个抽象出来的顶层类，顶层类的实现者有很多，高层不关心这些实现者，只需要这]]></description><category></category></item><item><title><![CDATA[Docker之Linux安装与卸载(简单的几行命令)]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/118618933</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/118618933</guid><author>use_admin</author><pubDate>Sat, 10 Jul 2021 01:15:26 +0800</pubDate><description><![CDATA[一、linux安装docker（centos7）

安装必要的依赖包：sudo yum install -y yum-utils device-mapper-persistent-data lvm2
	设置稳定的镜像仓库（推荐使用阿里云）：sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
	安装最新版的docker：sudo yum install docke.]]></description><category></category></item><item><title><![CDATA[详谈如今的Servlet]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/118616400</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/118616400</guid><author>use_admin</author><pubDate>Fri, 09 Jul 2021 23:32:10 +0800</pubDate><description><![CDATA[一、前言

现如今流行的web服务器如tomcat，既可以是HTTP服务器（处理静态资源，当性能比不上Nginx等专业），也可以是一个web容器，web容器就是一个servlet容器，而servlet容器就是实现了servletAPI规范的一组服务。

Servlet API规范中，定义了其生命周期的三个方法：init(),service(),destroy()，还有过滤器filter，监听器listener。这些servletAPI规范定义在javax.servlet-api包中，它是单独一个jav...]]></description><category></category></item><item><title><![CDATA[手把手使用VirtualBox创建centOS7虚拟机并完成网络配置-实现固定连接IP以及内外网络访问]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/118501398</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/118501398</guid><author>use_admin</author><pubDate>Tue, 06 Jul 2021 00:12:35 +0800</pubDate><description><![CDATA[一、需求

安装使用centOS7虚拟机。
	在主机上VirtualBox软件安装虚拟机后，需要实现主机与虚机相互通信，并可以使用SSH工具在主机上连接虚机，保证连接虚机的IP地址固定。
	主机与虚机相互可以连接后，还需要虚机也能连接网。
二、基本思路

需要下载指定系统版本的centOS镜像并使用VirtualBox创建centOS实例。
	本地配置一个虚拟网卡与主机网络共享，与虚拟机网卡绑定实现网络连接。
	配置虚拟机使用两种网卡类型：NAT模式和Host-Only模式，生成两个虚机网卡。
	在虚机中对]]></description><category></category></item><item><title><![CDATA[Java工具 Maven 一文搞定Maven]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/118345476</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/118345476</guid><author>use_admin</author><pubDate>Tue, 29 Jun 2021 23:15:49 +0800</pubDate><description><![CDATA[一、什么是Maven

Maven是Apache下的一个纯Java开发的开源项目，是一个项目管理工具，用于构建和管理任何基于java的项目：

构建：Maven通过一套统一标准的构建方法来构建maven项目，并明确定义项目的组成结构。
	管理：Maven根据其生命周期去管理项目，包括依赖、测试、打包、发布等；可以实现多个项目共享jar包。
Maven提供仓库管理、依赖管理、插件拓展、继承和聚合等特性为项目的构建和管理提供了一整套完善的解决方案。

二、Maven使用场景

希望统一的方式构建java...]]></description><category></category></item><item><title><![CDATA[Docker之详解Dockerfile 05]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/118252840</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/118252840</guid><author>use_admin</author><pubDate>Sat, 26 Jun 2021 18:19:50 +0800</pubDate><description><![CDATA[Dockerfile文件是定义镜像的每一层是如何构建的，因为Dockerfile是分层构建并且每一条Dockerfile指令就表示构建一层，当前层是基于上一层为基础构建而来，因此每条Dockerfile指令都需要深思熟虑的编写，确保每一层构建的镜像都不存在无用的东西；Dockerfile语法格式支持Shell类的行尾添加“\”的命令换行、行首“#”进行注释等格式。支持使用“&amp;&amp;”将各个所需命令串联起来作为一条Dockerfile指令。Dockerfile提供了十多个指令：

1. FR...]]></description><category></category></item><item><title><![CDATA[Docker之定制镜像 04]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/118252828</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/118252828</guid><author>use_admin</author><pubDate>Sat, 26 Jun 2021 18:17:50 +0800</pubDate><description><![CDATA[所谓定制镜像就是以一个镜像为基础，在其上进行定制；定制镜像常用方法：

一、利用docker commit命令定制镜像

镜像是容器的基础，镜像是多层存储，每一层是在前一层的基础上进行的修改而来；二容器同样也是多层存储，是在以镜像为基础，在其基础上加一层作为容器运行时的存储层；利用docker commit命令可以将该容器的基础镜像加上运行容器的存储层打包构建成新的镜像。

步骤：

使用docker run命令运行现有的一个docker镜像，启动一个容器
	使用docker exec -it  /...]]></description><category></category></item><item><title><![CDATA[Docker之基本使用 03]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/118252799</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/118252799</guid><author>use_admin</author><pubDate>Sat, 26 Jun 2021 18:15:20 +0800</pubDate><description><![CDATA[一、基本命令使用

1. docker run -d -p 80:80 images_name 后台独立运行一个容器:

参数说明：

-d --在隔离模式下后台运行一个docker容器

-p 80:80 --将宿主机的80端口映射到容器的80端口

images_name --需要运行的镜像

2. Docker exec 

二、docker基本使用

制作docker镜像

镜像的制作常用两种方法：

第一种，使用dockerfile文件制作镜像：

制作镜像之前，需要有一个应...]]></description><category></category></item><item><title><![CDATA[Docker之命令字典 02]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/118252674</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/118252674</guid><author>use_admin</author><pubDate>Sat, 26 Jun 2021 18:11:11 +0800</pubDate><description><![CDATA[一、docker命令图解：



二、docker命令详解

命令总共分为六个部分，分别为Images,Container,TarFiles,Dockerfile,Registry,Engine；将按照这六各部分逐渐拆分讲解。注入如果遇到命令后面不知道使用那些参数，可以在后面加-h查看所有参数选项，例如：想要查看images后面可带参数，可以使用docker images --help查看

注意：docker run 就相当于docker create+docker attach 两个命令的叠加。do..]]></description><category></category></item><item><title><![CDATA[Docker之基础入门 01]]></title><link>https://blog.youkuaiyun.com/use_admin/article/details/118252587</link><guid>https://blog.youkuaiyun.com/use_admin/article/details/118252587</guid><author>use_admin</author><pubDate>Sat, 26 Jun 2021 17:58:40 +0800</pubDate><description><![CDATA[一、docker介绍

docker是一个快速交付、开发和运行应用程序的平台。

docker提供一个独立的运行应用程序环境，应用程序不依赖其环境就可以部署运行应用程序，可以将业务程序和基础架构进行隔离，具有隔离性。隔离原理是底层利用linux内核命名空间namespaces和cgroups功能来达到容器工作空间的隔离性。

docker通过快速交付、测试和部署代码的方法，可以减少编写代码和生产环境运行程序的时延。

docker具有隔离性和安全性，并且docker是轻量级的，因此可以运行多个dock...]]></description><category></category></item></channel></rss>