<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[GreatDistance的博客]]></title><description><![CDATA[一个努力中的学生]]></description><link>https://blog.youkuaiyun.com/GreatDistance</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; GreatDistance]]></copyright><item><title><![CDATA[springmvc入门]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/93177210</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/93177210</guid><author>GreatDistance</author><pubDate>Fri, 21 Jun 2019 11:33:55 +0800</pubDate><description><![CDATA[springmvc入门
一、开发环境
​	JDK：		jdk1.8
​	IDE：		IDEA 2019.1
​	Tomcat:	tpmcat 8.5
​	spring:	  4.3.8
二、开发步骤
2.1创建maven项目导入pom
&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;project xmlns="http://maven.apac...]]></description><category></category></item><item><title><![CDATA[贪心算法]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/91358636</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/91358636</guid><author>GreatDistance</author><pubDate>Sun, 09 Jun 2019 22:46:57 +0800</pubDate><description><![CDATA[贪心算法
一、定义
贪心算法（又称贪婪算法）是指，在对问题求解时，总是做出在当前看来是最好的选择。也就是说，不从整体最优上加以考虑，他所做出的是在某种意义上的局部最优解。
贪心算法不是对所有问题都能得到整体最优解，关键是贪心策略的选择，选择的贪心策略必须具备无后效性，即某个状态以前的过程不会影响以后的状态，只与当前状态有关。
贪心策略适用的前提是：局部最优策略能导致产生全局最优解。
二、LeetC...]]></description><category></category></item><item><title><![CDATA[Spring的事务管理--声明式事务]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/90900200</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/90900200</guid><author>GreatDistance</author><pubDate>Wed, 05 Jun 2019 12:01:39 +0800</pubDate><description><![CDATA[Spring的事务管理–声明式事务
一、XML方式的声明式事务

搭建Spring的事务管理环境,演示转账

创建maven项目引入pom
创建数据库与表，初始化一些数据
创建实体对象
创建Service的接口和实现类
创建Dao的接口和实现类
配置Service和Dao，交给Spring，及其他




创建数据库与表

CREATE TABLE `account` (
      `id` i...]]></description><category></category></item><item><title><![CDATA[Spring的事务管理]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/90900183</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/90900183</guid><author>GreatDistance</author><pubDate>Wed, 05 Jun 2019 12:00:46 +0800</pubDate><description><![CDATA[Spring的事务管理
一、事务回顾

什么是事务

事务：逻辑上的一组操作，组成这组操作的各个单元，要么全做，要么全不做


事务的特性

原子性：事务不可分割
一致性：事务执行前后数据完整性保持一致
隔离性：一个事务的执行不应该受到其他事务的干扰
持久性：事务一旦成功，数据就用持久化到数据库


如果不考虑隔离性引发的安全性问题


读问题

脏读：一个事物读到了另一个事务未提交的数据
不可重...]]></description><category></category></item><item><title><![CDATA[Spring的JDBC的模板使用]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/90900166</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/90900166</guid><author>GreatDistance</author><pubDate>Wed, 05 Jun 2019 11:59:59 +0800</pubDate><description><![CDATA[Spring的JDBC的模板使用
一、原始方法使用Spring的JDBC的模板
新建maven项目导入pom
&lt;properties&gt;
        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
        &lt;maven.compiler.source&gt;1....]]></description><category></category></item><item><title><![CDATA[Spring AOP 入门 注解]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/90654970</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/90654970</guid><author>GreatDistance</author><pubDate>Wed, 29 May 2019 01:44:42 +0800</pubDate><description><![CDATA[Spring AOP 入门 注解
一、注解方式开发AOP

创建Maven项目引入相应的pom
引入Spring的配置文档 applicationContext.xml
编写目标类以文章的增删改查为例，并完成配置
ArticleDao.java

public class ArticleDao {
    public void save() {
        System.out.printl...]]></description><category></category></item><item><title><![CDATA[Spring AOP 入门 AspectJ + XML]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/90654877</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/90654877</guid><author>GreatDistance</author><pubDate>Wed, 29 May 2019 01:42:13 +0800</pubDate><description><![CDATA[Spring AOP 入门 AspectJ + XML
一、AOP开发相关术语

JoinPoint:连接点。可以被拦截到的点(增删改查的方法都可以被增强，这些方法就可以成为是连接点)
Pointcut:切入点。真正被拦截到的点。
Advice:通知、增强。对方法做权限校验、日志功能的方法称为是通知。
Introduction:引介。类层面的增强。
Target:被增强的对象。
Weaving:织...]]></description><category></category></item><item><title><![CDATA[spring Bean的获取与注入]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/90545558</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/90545558</guid><author>GreatDistance</author><pubDate>Sat, 25 May 2019 12:39:55 +0800</pubDate><description><![CDATA[#spring Bean的获取与注入
##一、spring Bean的注入
准备：

Bean Students类

public class Students {
    private int sid;
    private String username;
    private String gender;
    private Date birthday;
    public St...]]></description><category></category></item><item><title><![CDATA[Spring字符串转日期]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/90519300</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/90519300</guid><author>GreatDistance</author><pubDate>Fri, 24 May 2019 16:52:26 +0800</pubDate><description><![CDATA[Spring字符串转日期

Spring中我们的Bean有些属性是Date 但是通过容器注入属性的时候我们通过xml配置的属性，Spring容器无法将字符串转为Data给Bean属性注入。



JavaBean


public class Students {
    private int sid;
    private String username;
    private Stri...]]></description><category></category></item><item><title><![CDATA[事务及事务隔离级别]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/90417330</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/90417330</guid><author>GreatDistance</author><pubDate>Tue, 21 May 2019 23:07:19 +0800</pubDate><description><![CDATA[事务及事务隔离级别

1、什么是事务

数据库事务是指作为单个儿逻辑工作单元执行一些列操作，这些操作要么全做，要么全不做，是一个不可分割的工作单位。

2、事务的特性

（1）原子性：指一个事务要么全执行要么全不执行。

（2）一致性：一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态，也就是说一个事务执行之前和执行之后都必须处于一致性状态。

（3）隔离性：主要描述多个事务之间的关...]]></description><category></category></item><item><title><![CDATA[死锁的定义、必要条件和处理方法]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/90412639</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/90412639</guid><author>GreatDistance</author><pubDate>Tue, 21 May 2019 18:44:39 +0800</pubDate><description><![CDATA[死锁的定义、必要条件和处理方法

死锁的定义
多个进程在执行过程中，因争夺同类资源且资源分配不当而造成的一种互相等待的现象，若无外力作用，它们都将永远无法继续执行，这种状态称为死锁，这些处于等待状态的进程称为死锁进程。

2、产生死锁的必要条件

互斥条件：进程对所分配到的资源进行排他性使用，即一段时间内，某资源只能被一个进程占用。如果此时还有其他进程请求该资源，则进程只能等待，直至占有资源的进程...]]></description><category></category></item><item><title><![CDATA[面向对象六大原则]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/90236312</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/90236312</guid><author>GreatDistance</author><pubDate>Wed, 15 May 2019 14:42:46 +0800</pubDate><description><![CDATA[文章来源：https://www.fangzhipeng.com/javainterview/2019/02/20/objetc-principle.html

面向对象六大原则

1、单一职责原则(Single-Resposibility Principle)

2、开放封闭原则(Open-Closed principle)

3、Liskov替换原则(Liskov-Substituion Pr...]]></description><category></category></item><item><title><![CDATA[面向对象的特征]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/90233826</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/90233826</guid><author>GreatDistance</author><pubDate>Wed, 15 May 2019 12:49:46 +0800</pubDate><description><![CDATA[面向对象的特征

1、封装

2、继承

3、多态

封装：

封装是面向对象的特征之一，是对象和类概念的主要特性，也就是把客观事物封装成抽象的类，并且类可以把自己的数据和方法只让可信的类或者对象操作，对不可信的进行信息隐藏。

封装的实现：

成员变量私有（private）
	对外提供setter和getter方法（setXXX，getXXX）
继承：

面向对象编程 (OOP) 语言的一个主要...]]></description><category></category></item><item><title><![CDATA[Linux安装redis（云服务器同样）]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/89448213</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/89448213</guid><author>GreatDistance</author><pubDate>Mon, 22 Apr 2019 11:29:54 +0800</pubDate><description><![CDATA[Linux安装redis，云服务器下套路相同

step1：安装前准备 保证有gcc-c++

可使用命令：


 yun install gcc-c++

上传压缩包（我是用的是FileZilla）

我所上传的路径是： /usr/redis

step2:解压


tar  -zxvf  redis-5.0.4.tar.gz

进入解压后的文件


cd redis-5.0.4

step3:...]]></description><category></category></item><item><title><![CDATA[单例设计模式]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/89335706</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/89335706</guid><author>GreatDistance</author><pubDate>Tue, 16 Apr 2019 18:53:24 +0800</pubDate><description><![CDATA[单例设计模式：

单例设计模式：保证类在内存中只有一个对象。

怎样保证类在内存中只有一个对象？

 构造方法私有，控制类的创建，不让其他类来创建本类的对象。
	 在本类中定义一个本类的对象。
	 对外提供公共的访问方式
单例的写法：

(1)饿汉式


class Singleton {
    // 1.构造方法私有
    private Singleton() {
   ...]]></description><category></category></item><item><title><![CDATA[java线程控制]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/89317113</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/89317113</guid><author>GreatDistance</author><pubDate>Mon, 15 Apr 2019 17:55:12 +0800</pubDate><description><![CDATA[java线程控制

1、线程睡眠 sleep()

2、线程优先级 setPriority()

3、线程让步 Thread.yield()

4、守护线程 setDaemon(true)

5、线程合并 join()

一、线程睡眠 sleep() Thread.sleep(long millis) 单位：毫秒（ms）

如果需要让当前正在执行的线程暂停一段时，并进入阻塞状态，则可以通过...]]></description><category></category></item><item><title><![CDATA[java创建线程的方式]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/89309605</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/89309605</guid><author>GreatDistance</author><pubDate>Mon, 15 Apr 2019 12:36:26 +0800</pubDate><description><![CDATA[java创建线程的三种方式

1、继承Thread类创建线程类

定义Thread类的子类，并重写该类的run方法，该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。
	创建Thread子类的实例，即创建了线程对象。
	调用线程对象的start()方法来启动该线程。
2、通过Runnable接口创建线程类

定义runnable接口的实现类，并重写该接口的run()方法...]]></description><category></category></item><item><title><![CDATA[java中 == 与equals()的区别]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/89304884</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/89304884</guid><author>GreatDistance</author><pubDate>Mon, 15 Apr 2019 01:14:49 +0800</pubDate><description><![CDATA[java中==与equals的区别是什么？

1、==

对于基本类型和引用类型 == 的作用是不同的

基本类型：比较的是值是否相同；
	引用类型：比较的是引用是否相同；
代码示例：


String str1 = "Hello World!";

String str2 = "Hello World!";

String str3 = new String("Hello World!");

...]]></description><category></category></item><item><title><![CDATA[TCP三次挥手与四次挥手]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/89302979</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/89302979</guid><author>GreatDistance</author><pubDate>Sun, 14 Apr 2019 22:06:51 +0800</pubDate><description><![CDATA[TCP三次握手过程

 刚开始客户端处于CLOSED的状态，服务端处于LISTEN状态。

 1、第一次握手：客户端给服务端发一个SYN (SynchronizeSequenceNumbers)报文，并指明客户端的初始化序列号ISN(seq)。此时客户端处于SYN_SEND状态。

 2、第二次握手：服务端收到客户端的SYN报文之后，会以自己的SYN报文作为应答，并且也是指定...]]></description><category></category></item><item><title><![CDATA[前后端分离小案例，动态生成菜单]]></title><link>https://blog.youkuaiyun.com/GreatDistance/article/details/89288918</link><guid>https://blog.youkuaiyun.com/GreatDistance/article/details/89288918</guid><author>GreatDistance</author><pubDate>Sat, 13 Apr 2019 21:23:07 +0800</pubDate><description><![CDATA[前后端分离动态生成菜单小案例

1、开发工具

 后端开发工具：IntelliJ IDEA 2019.1 x64

 前端开发工具：JetBrains WebStorm 2019.1 x64

2、技术选型：

 后端：SpringBoot+JPA+Redis+ MySQL

 前端：NodeJs+Vue+layui

3、后端程序的开发步骤

 1.创建Spr...]]></description><category></category></item></channel></rss>