<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[FantasyWxw的博客]]></title><description><![CDATA[一个面向工资编程的程序猿]]></description><link>https://blog.youkuaiyun.com/u_ranfa</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u_ranfa]]></copyright><item><title><![CDATA[Oracle 删除表中完全相同的两条数据]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/102968774</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/102968774</guid><author>u_ranfa</author><pubDate>Fri, 08 Nov 2019 10:47:39 +0800</pubDate><description><![CDATA[在删除之前首先做好备份!!!
删除重复数据
DELETE 　　
  FROM table_name a 　　
 WHERE a.rowid != (
 SELECT max(b.rowid) 　　
   FROM table_name b 　　
  WHERE b.id = a.id)
  //根据rowid删除重复数据中较小的rowid


...]]></description><category></category></item><item><title><![CDATA[《精通Spring4.x》事务管理]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/102894209</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/102894209</guid><author>u_ranfa</author><pubDate>Mon, 04 Nov 2019 17:49:57 +0800</pubDate><description><![CDATA[一、数据并发问题
当数据库中相同数据被多个事务同时访问时，就可能会出现并发问题。这些问题可以归结为5类，包括三类数据读问题，以及2类数据更新问题。
1、脏读
A事务读取B事务尚未提交的更改数据，并在这个数据的基础上进行操作。

2、不可重复读
不可重复读是指A事务读取了B事务已经提交的更改 数据。

3、幻像读
幻想读是指A事务读取B事务已经提交的新增 数据。

不可重复读和幻像读的区别为更新和插...]]></description><category></category></item><item><title><![CDATA[《精通Spring-4.x》Spring AOP]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/101477994</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/101477994</guid><author>u_ranfa</author><pubDate>Thu, 26 Sep 2019 23:02:47 +0800</pubDate><description><![CDATA[一、AOP的相关概念

连接点 按照我的理解，连接点就是程序中的一个个方法(因为在Spring中仅支持方法的连接点)，只能在方法的调用前后，方法抛出异常等地方织入增强。Spring中使用切点对执行点进行定位，方位定义在增强中。
切点：因为程序中存在许多的连接点，则通过切点来定位特定的连接点，在Spring中切点通过org.springframework.aop.Pointcut接口进行描述。
增强...]]></description><category></category></item><item><title><![CDATA[Spring Bean 的生命周期]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/101195636</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/101195636</guid><author>u_ranfa</author><pubDate>Mon, 23 Sep 2019 15:52:23 +0800</pubDate><description><![CDATA[在Spring中，可以从两个层面定义Bean的生命周期。下面分别对BeanFactory和ApplicationContext中Bean的生命周期进行分析。
一、BeanFactory中Bean的生命周期

具体过程如下
1）当调用者调用getBean(beanName)向容器请求某一个Bean时，如果容器注册了InstantiationAwareBeanPostProcessor接口，则在实例化...]]></description><category></category></item><item><title><![CDATA[Spring 集成 slf4j + logback日志系统]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/100772376</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/100772376</guid><author>u_ranfa</author><pubDate>Thu, 12 Sep 2019 17:11:56 +0800</pubDate><description><![CDATA[首先将以下依赖添加到POM.xml中
&lt;dependency&gt;
      &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
      &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
      &lt;version&gt;1.7.25&lt;/version&gt;
&lt;/dependency&gt...]]></description><category></category></item><item><title><![CDATA[远程连接Redis数据库]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/100777668</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/100777668</guid><author>u_ranfa</author><pubDate>Thu, 12 Sep 2019 17:11:04 +0800</pubDate><description><![CDATA[一、找到Redis的配置文件
windows 一般是在你的redis目录下
redis.windows.conf ，redis.windows-service.conf
linux 一般是在 /etc/redis/redis.conf
二、主要修改两个配置
将 bind 127.0.0.1 注释      #bind 127.0.0.1
将protected-mode yes  改成  prote...]]></description><category></category></item><item><title><![CDATA[《码出高效：Java开发手册》学习笔记6]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/100159490</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/100159490</guid><author>u_ranfa</author><pubDate>Fri, 30 Aug 2019 15:18:06 +0800</pubDate><description><![CDATA[一、集合框架图
集合框架主要分为两类：第一类是按照单个存储的Collection，第二类是按照Key-Value存储的Map。

在集合框架图中，红色代表接口，蓝色代表抽象类，绿色代表并发包中的类，灰色代表早期线程安全的类。
1、List集合

...]]></description><category></category></item><item><title><![CDATA[《码出高效：Java开发手册》学习笔记8]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/100136352</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/100136352</guid><author>u_ranfa</author><pubDate>Thu, 29 Aug 2019 15:45:46 +0800</pubDate><description><![CDATA[单元测试的概念：计算机世界里的软件产品通常是由模块组合而成的，模块又可以分成诸多子模块。比如淘宝系统由搜索模块、商品模块、交易模块等组成，而交易模块又分成下单模块、支付模块、发货模块等子模块，如此细分下去，最终的子模块是由不可再分的程序单元组成的。对这些程序单元的测试，即称为单元测试（Unit Testing,简称单测）。
一、单元测试的基本原则
AIR原则：
A：Automatic（自动化）
I...]]></description><category></category></item><item><title><![CDATA[《码出高效：Java开发手册》学习笔记7]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/100102240</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/100102240</guid><author>u_ranfa</author><pubDate>Wed, 28 Aug 2019 23:32:43 +0800</pubDate><description><![CDATA[一、线程安全
线程在生命周期内的状态：
NEW(新建状态)、RUNNABLE(就绪状态)、RUNNING(运行状态)、BLOCKED(阻塞状态)、DEAD(终止状态)五种状态。

关于线程状态的具体介绍可以看以下博客，这里不再具体介绍。
线程的执行流程及各个阶段的状态
线程安全问题只在多线程环境下出现，为了保证高并发场景下的线程安全，可以从以下四个维度考量：


数据单线程内可见：单线程总是安全的...]]></description><category></category></item><item><title><![CDATA[《码出高效：Java开发手册》学习笔记5]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/100067026</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/100067026</guid><author>u_ranfa</author><pubDate>Sun, 25 Aug 2019 22:23:17 +0800</pubDate><description><![CDATA[一、异常分类
java中的异常分类结构如下图：

说明：

Error：一般是发生在JDK层面的一写系统层面的异常。比如StackOverflowError、OutOfMemoryError。此类错误结合虚拟机去理解更加容易。
在Exception中分为受检（checked）和非受检（unchecked）异常。 checked异常一般在IDE工具中在没有写明throws或try-catch捕捉时会...]]></description><category></category></item><item><title><![CDATA[《码出高效：Java开发手册》学习笔记4]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/100038423</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/100038423</guid><author>u_ranfa</author><pubDate>Fri, 23 Aug 2019 18:35:17 +0800</pubDate><description><![CDATA[PS：关于JVM，只是就本书做了整理。还需要接下来更加深入细致的学习。]]></description><category></category></item><item><title><![CDATA[《码出高效：Java开发手册》学习笔记3]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/100025214</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/100025214</guid><author>u_ranfa</author><pubDate>Thu, 22 Aug 2019 22:42:10 +0800</pubDate><description><![CDATA[一、命名规约
1、通过命名体现元素的特征：

类名采用大驼峰，即首字母大写，方法名采用小驼峰，即首字母小写。常量的命名单词全部大写，单词之间用下划线连接。
包名统一使用小写，点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式，但是类名如果有复数含义，则可以使用复数形式。
抽象类命名使用Abstract或Base开头；异常类命名使用Exception结尾；测试类命名以它要测试的类名开始...]]></description><category></category></item><item><title><![CDATA[《码出高效：Java开发手册》学习笔记2]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/99937211</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/99937211</guid><author>u_ranfa</author><pubDate>Thu, 22 Aug 2019 09:29:51 +0800</pubDate><description><![CDATA[一、面向对象相关概念
面向对象四大特性：抽象、封装、继承、多态。
本书将“抽象"作为面向对象的特性之一，支持面向对象“四大特性"的说法。
在面向对象的思维中，抽象分为归纳和演绎。 前者是从具体到本质， 从个性到共性，将一类对象的共同特征进行归一化的逻辑思维过程；**后者则是从本质到具体，从共性到个性，逐步形象化的过程。**在归纳的过程中，需要抽象出对象的属性和行为的共性，难度大于演绎。演绎是在已有...]]></description><category></category></item><item><title><![CDATA[《码出高效：Java开发手册》学习笔记1]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/99710532</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/99710532</guid><author>u_ranfa</author><pubDate>Sun, 18 Aug 2019 23:10:46 +0800</pubDate><description><![CDATA[一、数据在计算机中的存储方式以及相关运算
我们平常所使用的数据表示方法为十进制，而在计算机中的表示方法则是二进制，数字的表示通过0和1完成。
打个比方说，有8条电路，每个电路有高低两个电平状态。根据数学排列组和，他们之间有2^8 种情况，可以表示256种信号。表示的区间可以为0-255，最大数即为2^8-1。在计算机中因为存在正负的原因，一般将最高位作为符号为，0表示正数，1表示负数，这样8条电路...]]></description><category></category></item><item><title><![CDATA[Linux常用命令总结]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/99710092</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/99710092</guid><author>u_ranfa</author><pubDate>Sun, 18 Aug 2019 22:09:44 +0800</pubDate><description><![CDATA[一、关机相关指令
shutdown -h now 关闭系统
init 0 关闭系统
telinit 0 关闭系统
shutdown -h hours:minutes &amp; 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启
reboot 重启
logout 注销
二、文件目录相关指令
cd … 返回上一级目录
cd …/… 返回上两级目录...]]></description><category></category></item><item><title><![CDATA[线程的执行流程及各个阶段的状态]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/96430948</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/96430948</guid><author>u_ranfa</author><pubDate>Thu, 18 Jul 2019 15:01:19 +0800</pubDate><description><![CDATA[线程在一定条件下，状态会发生变化。线程一共有以下几种状态：
**1、新建状态(New)：**新创建了一个线程对象。
**2、就绪状态(Runnable)：**线程对象创建后，其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中，变得可运行，只等待获取CPU的使用权。即在就绪状态的进程除CPU之外，其它的运行所需资源都已全部获得。
**3、运行状态(Running)：**就绪...]]></description><category></category></item><item><title><![CDATA[Java根据不同系统动态获取换行符和盘分割符]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/89888533</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/89888533</guid><author>u_ranfa</author><pubDate>Mon, 06 May 2019 18:19:13 +0800</pubDate><description><![CDATA[1、获取盘分割符
File.separator

2、获取换行符
windows系统为\r\n，Linux系统为 \n
String lineSeparator = System.getProperty("line.separator", "\n");

默认为\n

]]></description><category></category></item><item><title><![CDATA[Centos7 开放8080端口]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/89888151</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/89888151</guid><author>u_ranfa</author><pubDate>Mon, 06 May 2019 17:58:24 +0800</pubDate><description><![CDATA[1、输入命令查看防火墙的状态
firewall-cmd --state;


2、如果没有开启，输入命令
systemctl start firewalld.service;

3、开启8080端口，输入：
firewall-cmd --zone=public --add-port=8080/tcp --permanent;


–zone=public：表示作用域为公共的；
–add-port=...]]></description><category></category></item><item><title><![CDATA[Centos关机与重启指令]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/89878859</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/89878859</guid><author>u_ranfa</author><pubDate>Mon, 06 May 2019 11:28:49 +0800</pubDate><description><![CDATA[Linux centos重启命令：
　　1、reboot   普通重启
　　2、shutdown -r now 立刻重启(root用户使用)
　　3、shutdown -r 10 过10分钟自动重启(root用户使用)
　　4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
　　如果是通过shutdown命令设置重启的话，可以用shutdown -c命令取消重启...]]></description><category></category></item><item><title><![CDATA[PlantUML画类图(五)其他语法]]></title><link>https://blog.youkuaiyun.com/u_ranfa/article/details/89647247</link><guid>https://blog.youkuaiyun.com/u_ranfa/article/details/89647247</guid><author>u_ranfa</author><pubDate>Tue, 30 Apr 2019 09:54:33 +0800</pubDate><description><![CDATA[一、隐藏类、属性、函数等
通过使用命令“hide/show”，你可以用参数表示类的显示方式。
基础命令是: hide empty members. 这个命令会隐藏空白的方法和属性。
除 empty members 外，你可以用:
empty fields 或者 empty attributes 空属性,
empty methods 空函数，
fields 或 attributes 隐藏字段或属性，...]]></description><category></category></item></channel></rss>