<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fangleijiang的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fangleijiang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fangleijiang]]></copyright><item><title><![CDATA[发生死锁的线程dump日志]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/78964710</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/78964710</guid><author>fangleijiang</author><pubDate>Wed, 03 Jan 2018 19:43:44 +0800</pubDate><description><![CDATA[2018-01-03 19:38:30
Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.79-b02 mixed mode):


"RMI TCP Connection(2)-10.100.227.115" daemon prio=6 tid=0x000000000d4e6000 nid=0x29c0 runnable [0x]]></description><category></category></item><item><title><![CDATA[redis-cluster主流客户端驱动不支持pipeline，该怎么解决。]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/75911685</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/75911685</guid><author>fangleijiang</author><pubDate>Sun, 23 Jul 2017 16:05:05 +0800</pubDate><description><![CDATA[redis-cluster，是基于redis的基础上开发分布式缓存数据库系统。
1、redis-cluster集群的特点：


1）无中心节点（share-nothing）架构，各个节点对等，每个节点存储集群数据的一部分。

2）集群数据分布在所有master节点上的16384个slots中，无冗余。

3）通过redis配置slave节点，完成数据备份存储以及提供failover]]></description><category></category></item><item><title><![CDATA[使用filter解决xss攻击]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/73696866</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/73696866</guid><author>fangleijiang</author><pubDate>Sun, 25 Jun 2017 00:08:07 +0800</pubDate><description><![CDATA[使用filter解决xss攻击的实现思路，其实是通过正则的方式对请求的参数做脚本的过滤，但是这需要对所要过滤的脚本做很多的枚举。下面这个demo是我在工作中用到的，希望对大家有所帮助。

public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
    HttpServletRequest org]]></description><category></category></item><item><title><![CDATA[Elasticsearch5 centos 中文搜索搭建]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/70183736</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/70183736</guid><author>fangleijiang</author><pubDate>Sat, 15 Apr 2017 13:24:30 +0800</pubDate><description><![CDATA[Elasticsearch是一个实时分布式搜索和分析引擎，简称es。它让你以前所未有的速度处理大数据成为可能。它用于全文搜索、结构化搜索、分析以及将这三者混合使用。最近在参与了一个即时通信项目，目前日均聊天对话为5w通，假设每通对话最少20句对话，则日均产生数据为100w条记录。如此大的数据量，如何实现聊天记录的模糊搜索呢？聊天记录是备案到mysql数据表的，当然直接查询数据库，也是可以的，但是性]]></description><category></category></item><item><title><![CDATA[简单分析Synchronized（同步锁）、Lock]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/53633970</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/53633970</guid><author>fangleijiang</author><pubDate>Wed, 14 Dec 2016 09:19:54 +0800</pubDate><description><![CDATA[Synchronized（同步锁） 


在Java中使用多线程，同步锁这个概念是十分重要的。

平时的开发过程中，你必然会遇到一个问题：多个线程共享一个或者一组资源，这资源包括内存、文件等，在多个线程对这组资源进行读写操作时，如何保持数据的准确性同步一致，这是至关重要的。

很常见的一个例子是，张三在银行账户存有1000元，李四和张三同时对这个账号在不同取款机多次的存取100，在这]]></description><category></category></item><item><title><![CDATA[java中强引用、软引用、弱应用、虚引用]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/53525525</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/53525525</guid><author>fangleijiang</author><pubDate>Thu, 08 Dec 2016 23:03:03 +0800</pubDate><description><![CDATA[在一次面试经历中，被问到java中的四种引用类型，平时工作中没有去深入的学习，只是在一次安卓开发过程中为了解决内存泄漏问题，使用到了弱引用。现在对java中的四种引用类型做一下简单的介绍。从JDK1.2开始，对象的引用被分为了四个级别：强引用、软引用、弱引用、虚引用，从而使程序更加灵活的控制对象的生命周期。
强引用：在我们平时编程中，用的最多的其实就是强引用，比如	User user = new]]></description><category></category></item><item><title><![CDATA[设计模式 ( 十八 ) 策略模式Strategy（对象行为型）]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/53455775</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/53455775</guid><author>fangleijiang</author><pubDate>Sun, 04 Dec 2016 19:10:07 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/hguisu/article/details/7558249/]]></description><category></category></item><item><title><![CDATA[Spring+mabatis配置文件]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/46533311</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/46533311</guid><author>fangleijiang</author><pubDate>Wed, 17 Jun 2015 14:17:03 +0800</pubDate><description><![CDATA[xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springfra]]></description><category></category></item><item><title><![CDATA[Ubantu14.04上面安装Tomcat7！]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/44852947</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/44852947</guid><author>fangleijiang</author><pubDate>Fri, 03 Apr 2015 11:29:12 +0800</pubDate><description><![CDATA[Javaweb开发中，大部分都采用的tomcat服务器，而大部分公司都是采用的linux系统部署服务器，下面是linux系统下安装tomcat的详细过程。
第一步，首先我们必须去tomcat官网下载apache-tomcat-7.0.59.tar.gz，当然现在也有tomcat8了，都一样的，指示为了演示这个过程。



下载好服务器软件后，我们得对它进行解压。



第二步，将]]></description><category></category></item><item><title><![CDATA[Ubantu下如何安装mysql数据库，以及如何备份sql文件和运行sql文件！]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/44837619</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/44837619</guid><author>fangleijiang</author><pubDate>Thu, 02 Apr 2015 22:01:17 +0800</pubDate><description><![CDATA[ubuntu上安装mysql其实比起window下面安装还简单，就下面几条命令，中间只需输入一次密码，其他的操作都有系统自动完成。

　　1. sudo apt-get install mysql-server
 
　　2. apt-get isntall mysql-client

 
　　3.  sudo apt-get install libmysqlclient-dev
]]></description><category></category></item><item><title><![CDATA[Mysql海量数据存储和解决方案之一—分布式DB方案]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/42374175</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/42374175</guid><author>fangleijiang</author><pubDate>Sat, 03 Jan 2015 22:59:51 +0800</pubDate><description><![CDATA[1)  分布式DB水平切分中用到的主要关键技术：分库，分表，M-S,集群，负载均衡



2) 需求分析：一个大型互联网应用每天几十亿的PV对DB造成了相当高的负载，对系统的稳定性的扩展性带来极大挑战。

3) 现有解决方式：通过数据切分提高网站性能，横向扩展数据层

      水平切分DB，有效降低了单台机器的负载，也减小了宕机的可能性。

      集群方案：解决DB宕]]></description><category></category></item><item><title><![CDATA[Oracle建立表空间和用户]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/42235353</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/42235353</guid><author>fangleijiang</author><pubDate>Mon, 29 Dec 2014 10:41:49 +0800</pubDate><description><![CDATA[建立表空间和用户的步骤：
用户
建立：create user 用户名 identified by "密码";
授权：grant create session to 用户名;
            grant create table to  用户名;
            grant create tablespace to  用户名;
            grant crea]]></description><category></category></item><item><title><![CDATA[使用maven定制原型项目]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/39273725</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/39273725</guid><author>fangleijiang</author><pubDate>Sun, 14 Sep 2014 21:54:04 +0800</pubDate><description><![CDATA[在此半年以前，曾经用maven定制过原型项目，步骤不是很复杂，而且比较实用。今天突然想起来，想重新定制一个，后来发现忘记了很多，结果还鼓捣了大半个小时。现在我把这个步骤介绍给大家，希望对大家有用。我这里用的工具是myeclipse2014，就不像别人讲的了用命令行操作了。
         第一步：我们之所以会想要做一个原型项目，那都是因为想在以后的开发中能够节约一定的时间，把自己之前封装好的东]]></description><category></category></item><item><title><![CDATA[使用hibernate的优点]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/39229619</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/39229619</guid><author>fangleijiang</author><pubDate>Fri, 12 Sep 2014 14:35:35 +0800</pubDate><description><![CDATA[1. 对JDBC访问数据库的代码做了封装，大大简化了数据访问层繁琐的重复性代码。 
2. Hibernate是一个基于JDBC的主流持久化框架，是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 
3. hibernate使用Java反射机制，而不是字节码增强程序来实现透明性。 
4. hibernate的性能非常好，因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库，从]]></description><category></category></item><item><title><![CDATA[hibernate如何管理缓存]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/39229503</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/39229503</guid><author>fangleijiang</author><pubDate>Fri, 12 Sep 2014 14:28:52 +0800</pubDate><description><![CDATA[Hibernate 中提供了两级Cache，第一级别的缓存是Session级别的缓存，它是属于事务范围的缓存。这一级别的缓存由hibernate管理的，一般情况下无需进行干预；第二级别的缓存是SessionFactory级别的缓存，它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改，并且可以动态加载和卸载。 Hibernate还为查询结果提供了一个查询缓存，它依赖于第二级缓存。
]]></description><category></category></item><item><title><![CDATA[Hibernate中对象的三种状态，以及三种状态间的转化方法]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/39226989</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/39226989</guid><author>fangleijiang</author><pubDate>Fri, 12 Sep 2014 10:55:06 +0800</pubDate><description><![CDATA[在Hibernate中有三种状态，对它的深入理解，才能更好的理解hibernate的运行机理，刚开始不太注意这些概念，后来被别人问到了，说是面试题，才发现它是重要的。对于需要持久化的JAVA对象，在它的生命周期中有三种状态，而且互相转化。

Hibernate三种状态之一：临时状态（Transient）：也叫瞬时状态，在一个对象刚被创建的时候，比如People people = new Peo]]></description><category></category></item><item><title><![CDATA[JAVA中的final关键字]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/39082707</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/39082707</guid><author>fangleijiang</author><pubDate>Fri, 05 Sep 2014 16:48:46 +0800</pubDate><description><![CDATA[一、final用于构建不可变对象。



根据程序上下文环境，Java关键字
final有“这是无法改变的”或者“终态的”含义，它可以修饰非抽象类、非抽象类成员方法
和变量

二、final用法

1、在class上加入final，表示此class不可以被继承，没有子类,final类中的方法默认是final的,常用于专用的工具类，或者业务实现类，以防止改变原来的实现。

p]]></description><category></category></item><item><title><![CDATA[SEO优化常见操作方法]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/38125475</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/38125475</guid><author>fangleijiang</author><pubDate>Fri, 25 Jul 2014 19:22:11 +0800</pubDate><description><![CDATA[从网站结构、内容建设方案、用户互动传播等角度进行合理规划。]]></description><category></category></item><item><title><![CDATA[hibernate的注解属性mappedBy详解]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/37936271</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/37936271</guid><author>fangleijiang</author><pubDate>Fri, 18 Jul 2014 19:23:39 +0800</pubDate><description><![CDATA[mappedBy： 
1>只有OneToOne，OneToMany，ManyToMany上才有mappedBy属性，ManyToOne不存在该属性； 
2>mappedBy标签一定是定义在被拥有方的，他指向拥有方； 
3>mappedBy的含义，应该理解为，拥有方能够自动维护跟被拥有方的关系，当然，如果从被拥有方，通过手工强行来维护拥有方的关系也是可以做到的； 
4>mappedBy跟jo]]></description><category></category></item><item><title><![CDATA[线程间通信，生产者消费者问题！]]></title><link>https://blog.youkuaiyun.com/fangleijiang/article/details/28279679</link><guid>https://blog.youkuaiyun.com/fangleijiang/article/details/28279679</guid><author>fangleijiang</author><pubDate>Tue, 03 Jun 2014 19:41:41 +0800</pubDate><description><![CDATA[线程之间的通信简介：

一般而言,在一个应用程序中（即进程），一个线程往往不是孤立存在的，常常需要和其它线程通信，以执行特定的任务。如主线程和次线程，次线程与次线程，工作线程和用户界面线程等。这样,线程与线程间必定有一个信息传递的渠道。这种线程间的通信不但是难以避免的，而且在多线程编程中也是复杂和频繁的。

线程通信的目标是使线程间能够互相发送信号。另一方面，线程通信使线程能够等待其他线程]]></description><category></category></item></channel></rss>