<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[胡根得 天行健，君子以自强不息。]]></title><description><![CDATA[为天地立心，为生民立命，为往圣继绝学，为万世开太平。]]></description><link>https://blog.csdn.net/fightfaith</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; fightfaith]]></copyright><item><title><![CDATA[Turnserver服务器搭建]]></title><link>https://blog.csdn.net/fightfaith/article/details/73276323</link><guid>https://blog.csdn.net/fightfaith/article/details/73276323</guid><author>fightfaith</author><pubDate>Thu, 15 Jun 2017 10:44:04 +0800</pubDate><description><![CDATA[1. 安装> 
    sudo apt-get install coturn2. 配置turnserver.conf路径:  
> 
    /etc/turnserver.conf内容: 
> 
    listening-port=3478 
    tls-listening-port=5349 
> 
    listening-ip=your ip 
    relay-ip=your]]></description><category></category></item><item><title><![CDATA[Redis]]></title><link>https://blog.csdn.net/fightfaith/article/details/52332491</link><guid>https://blog.csdn.net/fightfaith/article/details/52332491</guid><author>fightfaith</author><pubDate>Fri, 26 Aug 2016 23:55:32 +0800</pubDate><description><![CDATA[提到redis，首先要谈一下noSQL。
1、什么是noSQL？


　　NoSQL，泛指非关系型的数据库，NoSQL即Not-Only SQL，它可以作为关系型数据库的良好补充。传统关系数据库在应付web2.0网站，特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心，暴露了很多难以克服的问题，例如：


　　（1）High performance - 对数据]]></description><category></category></item><item><title><![CDATA[object references an unsaved transient instance]]></title><link>https://blog.csdn.net/fightfaith/article/details/51750323</link><guid>https://blog.csdn.net/fightfaith/article/details/51750323</guid><author>fightfaith</author><pubDate>Fri, 24 Jun 2016 10:13:30 +0800</pubDate><description><![CDATA[Hibernate报错：


原因是：当更新一个脱管态/持久态对象时，该对象关联了一个临时态对象。
解决方案：要更新谁，就在谁的映射文件中配置cascade属性，cascade取值：save-update，如下：


实例：
	@Test
	public void test2(){
		//数据准备
		CstCustomer c = new CstCustomer();//临时态]]></description><category></category></item><item><title><![CDATA[no currentsessioncontext configured！]]></title><link>https://blog.csdn.net/fightfaith/article/details/51750080</link><guid>https://blog.csdn.net/fightfaith/article/details/51750080</guid><author>fightfaith</author><pubDate>Fri, 24 Jun 2016 09:58:49 +0800</pubDate><description><![CDATA[使用Hibernate框架时候报错：no currentsessioncontext configured！


　　这个错误是当我们使用getCurrentSession();时候引起的，原因是currentSession配置错误，与事务有关，当我们使用currentSession的时候需要在hibernate.cfg.xml中进行如下事务配置：


　　1、如果是本地事务：]]></description><category></category></item><item><title><![CDATA[动态代理解决网站字符集编码]]></title><link>https://blog.csdn.net/fightfaith/article/details/51587049</link><guid>https://blog.csdn.net/fightfaith/article/details/51587049</guid><author>fightfaith</author><pubDate>Sun, 05 Jun 2016 01:04:41 +0800</pubDate><description><![CDATA[1、首先看一个装饰模式解决字符集编码问题


　　我们使用装饰者对request进行增强，从而使得get和post使用request.getParameter()获得的数据没有乱码：
　　首先来一个Servlet，用于处理客户端请求：
package 装饰者模式解决乱码;

import java.io.IOException;
import javax.servlet.ServletE]]></description><category></category></item><item><title><![CDATA[动态代理]]></title><link>https://blog.csdn.net/fightfaith/article/details/51586864</link><guid>https://blog.csdn.net/fightfaith/article/details/51586864</guid><author>fightfaith</author><pubDate>Sun, 05 Jun 2016 00:47:01 +0800</pubDate><description><![CDATA[1、什么是动态代理？


　　动态代理就是在运行时生成一个类，这个类会实现你指定的一组接口，而这个类没有.java文件，是在运行时生成的，你也不用去关心它是什么类型的，你只需要知道它实现了哪些接口即可。

　　平常实现一个接口需要写一个具体的实现类，而动态代理技术能够在运行期间动态的生成实现指定接口的实现类对象，底层使用的反射原理。在框架中经常使用，例如：Struts1、Struts2、]]></description><category></category></item><item><title><![CDATA[享元模式]]></title><link>https://blog.csdn.net/fightfaith/article/details/51477187</link><guid>https://blog.csdn.net/fightfaith/article/details/51477187</guid><author>fightfaith</author><pubDate>Mon, 23 May 2016 00:10:08 +0800</pubDate><description><![CDATA[1、什么是享元模式？


　　享元模式（Flyweight Pattern）：以共享的方式高效的支持大量的细粒度对象。通过复用内存中已存在的对象，降低系统创建对象实例的性能消耗。
　　享元的英文是Flyweight，是一个来自体育方面的专业用语，在拳击、摔跤和举重比赛中特指最轻量的级别。把这个单词移植到软件工程中，也是用来表示特别小的对象，即细粒度的对象。至于为什么把Flyweight翻译]]></description><category></category></item><item><title><![CDATA[命令模式]]></title><link>https://blog.csdn.net/fightfaith/article/details/51476337</link><guid>https://blog.csdn.net/fightfaith/article/details/51476337</guid><author>fightfaith</author><pubDate>Sun, 22 May 2016 21:13:46 +0800</pubDate><description><![CDATA[1、什么是命令模式？


　　命令模式（Commond Pattern）：将来自客户端的请求封装为一个对象，无需了解这个请求激活的动作或有关接受这个请求的处理细节。命令模式的根本目的在于将“请求者”与“实现者”之间解耦。
　　其实命令模式和其他许多设计模式一样，就是在请求者和实现者中间加一个中间人的角色，来达到解除耦合的目的。通过对中间人的特殊设置，从而形成不同的设计模式，命令模式也不例外]]></description><category></category></item><item><title><![CDATA[迭代器模式]]></title><link>https://blog.csdn.net/fightfaith/article/details/51356408</link><guid>https://blog.csdn.net/fightfaith/article/details/51356408</guid><author>fightfaith</author><pubDate>Tue, 10 May 2016 00:15:58 +0800</pubDate><description><![CDATA[1、什么是迭代器呢？
　　迭代器是一种取出元素的方式，也就是遍历某一元素集合内元素的方式。我们平常对于数组的遍历方式是通过下角标利用for循环等来操作数据，元素集合不止数组一种，例如还有ArrayList（底层为数组）、LinkedList（底层为链表）、HashSet（使用hash表）等，每一个集合内部的存储结构都是不同的，所以每一个集合存和取都是不一样，那么针对这些集合遍历就要分别使用对应的]]></description><category></category></item><item><title><![CDATA[抽象工厂模式]]></title><link>https://blog.csdn.net/fightfaith/article/details/51352205</link><guid>https://blog.csdn.net/fightfaith/article/details/51352205</guid><author>fightfaith</author><pubDate>Mon, 09 May 2016 18:47:23 +0800</pubDate><description><![CDATA[抽象工厂模式为创建一组对象提供了一种解决方案。与工厂方法模式相比，抽象工厂模式中的具体工厂不只是创建一种产品，它负责创建一个产品族。抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口，而无须指定它们具体的类。抽象工厂模式又称为Kit模式，其属于对象创建型模式。
　　抽象工厂模式中包含四个角色：抽象工厂用于声明生成抽象产品的方法；具体工厂实现了抽象工厂声明的生成抽象产品的方法，生成一组具体产品]]></description><category></category></item><item><title><![CDATA[线程的优先级]]></title><link>https://blog.csdn.net/fightfaith/article/details/51000231</link><guid>https://blog.csdn.net/fightfaith/article/details/51000231</guid><author>fightfaith</author><pubDate>Mon, 28 Mar 2016 19:06:40 +0800</pubDate><description><![CDATA[1、线程优先级简介


　　Java中线程可以有优先级的设定，高优先级的线程比低优先级的线程将会获得更高的执行几率，线程的优先级是一个整数，其取值范围是1 （Thread.MIN_PRIORITY ） - 10 （Thread.MAX_PRIORITY ）。线程默认的优先级是5。
　　获取线程优先级：public final int getPriority()；
　　更改线程优先级：pu]]></description><category></category></item><item><title><![CDATA[Daemon线程和Join线程]]></title><link>https://blog.csdn.net/fightfaith/article/details/50999450</link><guid>https://blog.csdn.net/fightfaith/article/details/50999450</guid><author>fightfaith</author><pubDate>Mon, 28 Mar 2016 17:36:43 +0800</pubDate><description><![CDATA[1、Daemon线程


　　Daemon线程称为守护线程（非常喜欢这个名字）。线程一旦被设置为守护线程，当非守护线程结束，守护线程即使没有执行完，也必须随之全部结束。例如我们曾经玩儿过的坦克大战，一旦守护的老巢完蛋了，其它守护坦克没死也要结束。
　　Daemon线程的实质作用是为主线程其他线程的运行提供服务。User Thread线程和Daemon Thread守护线程本质上来说去没啥区]]></description><category></category></item><item><title><![CDATA[计算机病毒]]></title><link>https://blog.csdn.net/fightfaith/article/details/50996161</link><guid>https://blog.csdn.net/fightfaith/article/details/50996161</guid><author>fightfaith</author><pubDate>Mon, 28 Mar 2016 11:04:15 +0800</pubDate><description><![CDATA[1、计算机病毒的分类


　　　　　　　　



　　计算机病毒的分类方法有许多种，按照最通用的区分方式，即根据其感染的途径以及采用的技术区分，计算机病毒可分为文件型计算机病毒、引导型计算机病毒、宏病毒和目录型计算机病毒。


2、病毒的感染方式


　　　　　　　　　　　



　　文件型计算机病毒感染可执行文件(包括exe和com文件)；
　　引导型计算机病]]></description><category></category></item><item><title><![CDATA[线程死锁问题]]></title><link>https://blog.csdn.net/fightfaith/article/details/50995748</link><guid>https://blog.csdn.net/fightfaith/article/details/50995748</guid><author>fightfaith</author><pubDate>Mon, 28 Mar 2016 10:44:46 +0800</pubDate><description><![CDATA[1、引言


　　5个哲学家的故事：
　　5个哲学家去吃饭，菜饭都上齐了，筷子也上了，但是一人只有一只筷子，每个人，先思考一会，把筷子借给别人，然后，别人吃完了，自己再吃。但是假如这5个人都饿了，他们就会拿起自己的筷子，而筷子只有一只，大家都在等待这个别人放下那一只筷子，然后好拿过来吃饭，而没有任何一个人愿意先放下筷子，所以，就出现了死锁。
　　所以，死锁就是两个线程都掌握着另一个线程下]]></description><category></category></item><item><title><![CDATA[递归解决汉诺塔问题]]></title><link>https://blog.csdn.net/fightfaith/article/details/50703780</link><guid>https://blog.csdn.net/fightfaith/article/details/50703780</guid><author>fightfaith</author><pubDate>Sat, 20 Feb 2016 15:40:34 +0800</pubDate><description><![CDATA[前言：汉诺塔问题是源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子，在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在第三根柱子上。并且规定，在小圆盘上不能放大圆盘，在三根柱子之间一次只能移动一个圆盘。


　　我们用递归算法来解决这个问题，在解决之前首先介绍一下什么是递归算法。




1、递归算法



]]></description><category></category></item><item><title><![CDATA[算法设计]]></title><link>https://blog.csdn.net/fightfaith/article/details/50700773</link><guid>https://blog.csdn.net/fightfaith/article/details/50700773</guid><author>fightfaith</author><pubDate>Sat, 20 Feb 2016 10:07:39 +0800</pubDate><description><![CDATA[（3）递推
递推，即是从已知的初始条件出发，逐次推出所要求的各个中间环节和最后结果。其中初始条件或问题本身已经给定，或是通过对问题的分析与化简而确定。
递推的本质也是一种归纳，递推关系式通常是归纳的结果。
例如，裴波那契数列，是采用递推的方法解决问题的。
（4）递归
在解决一些复杂问题时，为了降低问题的复杂程序，通常是将问题逐层分解，最后归结为一些最简单的问题。这种将问题逐层分解的过程，]]></description><category></category></item><item><title><![CDATA[数据流图]]></title><link>https://blog.csdn.net/fightfaith/article/details/50695560</link><guid>https://blog.csdn.net/fightfaith/article/details/50695560</guid><author>fightfaith</author><pubDate>Fri, 19 Feb 2016 10:25:24 +0800</pubDate><description><![CDATA[1、数据流图简介


　　　　　　　　　　



　　数据流图（数据流程图 Data Flow Diagram）：简称DFD，它从数据传递和加工角度，以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程，用于回答软件系统“做什么”的问题，是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。





2、数据流图基本符号


　　　]]></description><category></category></item><item><title><![CDATA[网络防火墙技术]]></title><link>https://blog.csdn.net/fightfaith/article/details/50685940</link><guid>https://blog.csdn.net/fightfaith/article/details/50685940</guid><author>fightfaith</author><pubDate>Thu, 18 Feb 2016 15:48:59 +0800</pubDate><description><![CDATA[1、防火墙简介


　　　　　　　　　　　　



　　防火墙有网络防火墙和计算机防火墙的提法。网络防火墙是指在外部网络和内部网络之间设置网络防火墙；计算机防火墙是指在外部网络和用户计算机之间设置防火墙。计算机防火墙也可以是用户计算机的一部分，我们这里说的都是网络防火墙。

　　所谓网络防火墙是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保]]></description><category></category></item><item><title><![CDATA[数据安全与保密]]></title><link>https://blog.csdn.net/fightfaith/article/details/50685116</link><guid>https://blog.csdn.net/fightfaith/article/details/50685116</guid><author>fightfaith</author><pubDate>Thu, 18 Feb 2016 14:08:37 +0800</pubDate><description><![CDATA[1、对称加密技术


　　　　　　　　　



　　对称加密技术：是指加密系统的加密密钥和解密密钥相同，或者虽然不同，但从其中的任意一个可以很容易的推导出另一个。
　　在对称加密算法中，数据发信方将明文（原始数据）和加密密钥一起经过特殊加密算法处理后，使其变成复杂的加密密文发送出去。收信方收到密文后，需要使用同一密钥及相同算法的逆算法解密，使其恢复成明文。在对称加密算法中，使用的密]]></description><category></category></item><item><title><![CDATA[TCP/IP协议簇]]></title><link>https://blog.csdn.net/fightfaith/article/details/50683090</link><guid>https://blog.csdn.net/fightfaith/article/details/50683090</guid><author>fightfaith</author><pubDate>Wed, 17 Feb 2016 23:50:06 +0800</pubDate><description><![CDATA[1、TCP/IP协议簇简介


　　TCP/IP协议模型（Transmission Control Protocol/Internet Protocol），包含了一系列构成互联网基础的网络协议，是Internet的核心协议，通过20多年的发展已日渐成熟，并被广泛应用于局域网和广域网中，目前已成为事实上的国际标准。TCP/IP协议簇是一组不同层次上的多个协议的组合，通常被认为是一个四层协议系统]]></description><category></category></item></channel></rss>