- 博客(48)
- 资源 (12)
- 收藏
- 关注
原创 发生死锁的线程dump日志
2018-01-03 19:38:30Full 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
2018-01-03 19:43:44
1467
原创 redis-cluster主流客户端驱动不支持pipeline,该怎么解决。
redis-cluster,是基于redis的基础上开发分布式缓存数据库系统。1、redis-cluster集群的特点:1)无中心节点(share-nothing)架构,各个节点对等,每个节点存储集群数据的一部分。2)集群数据分布在所有master节点上的16384个slots中,无冗余。3)通过redis配置slave节点,完成数据备份存储以及提供failover
2017-07-23 16:05:05
5809
原创 使用filter解决xss攻击
使用filter解决xss攻击的实现思路,其实是通过正则的方式对请求的参数做脚本的过滤,但是这需要对所要过滤的脚本做很多的枚举。下面这个demo是我在工作中用到的,希望对大家有所帮助。public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { HttpServletRequest org
2017-06-25 00:08:07
9387
3
原创 Elasticsearch5 centos 中文搜索搭建
Elasticsearch是一个实时分布式搜索和分析引擎,简称es。它让你以前所未有的速度处理大数据成为可能。它用于全文搜索、结构化搜索、分析以及将这三者混合使用。最近在参与了一个即时通信项目,目前日均聊天对话为5w通,假设每通对话最少20句对话,则日均产生数据为100w条记录。如此大的数据量,如何实现聊天记录的模糊搜索呢?聊天记录是备案到mysql数据表的,当然直接查询数据库,也是可以的,但是性
2017-04-15 13:24:30
1242
原创 简单分析Synchronized(同步锁)、Lock
Synchronized(同步锁) 在Java中使用多线程,同步锁这个概念是十分重要的。平时的开发过程中,你必然会遇到一个问题:多个线程共享一个或者一组资源,这资源包括内存、文件等,在多个线程对这组资源进行读写操作时,如何保持数据的准确性同步一致,这是至关重要的。很常见的一个例子是,张三在银行账户存有1000元,李四和张三同时对这个账号在不同取款机多次的存取100,在这
2016-12-14 09:19:54
577
原创 java中强引用、软引用、弱应用、虚引用
在一次面试经历中,被问到java中的四种引用类型,平时工作中没有去深入的学习,只是在一次安卓开发过程中为了解决内存泄漏问题,使用到了弱引用。现在对java中的四种引用类型做一下简单的介绍。从JDK1.2开始,对象的引用被分为了四个级别:强引用、软引用、弱引用、虚引用,从而使程序更加灵活的控制对象的生命周期。强引用:在我们平时编程中,用的最多的其实就是强引用,比如 User user = new
2016-12-08 23:03:03
1604
转载 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
http://blog.youkuaiyun.com/hguisu/article/details/7558249/
2016-12-04 19:10:07
330
原创 Spring+mabatis配置文件
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
2015-06-17 14:17:03
899
原创 Ubantu14.04上面安装Tomcat7!
Javaweb开发中,大部分都采用的tomcat服务器,而大部分公司都是采用的linux系统部署服务器,下面是linux系统下安装tomcat的详细过程。第一步,首先我们必须去tomcat官网下载apache-tomcat-7.0.59.tar.gz,当然现在也有tomcat8了,都一样的,指示为了演示这个过程。下载好服务器软件后,我们得对它进行解压。第二步,将
2015-04-03 11:29:12
1804
原创 Ubantu下如何安装mysql数据库,以及如何备份sql文件和运行sql文件!
ubuntu上安装mysql其实比起window下面安装还简单,就下面几条命令,中间只需输入一次密码,其他的操作都有系统自动完成。 1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client 3. sudo apt-get install libmysqlclient-dev
2015-04-02 22:01:17
930
转载 Mysql海量数据存储和解决方案之一—分布式DB方案
1) 分布式DB水平切分中用到的主要关键技术:分库,分表,M-S,集群,负载均衡2) 需求分析:一个大型互联网应用每天几十亿的PV对DB造成了相当高的负载,对系统的稳定性的扩展性带来极大挑战。3) 现有解决方式:通过数据切分提高网站性能,横向扩展数据层 水平切分DB,有效降低了单台机器的负载,也减小了宕机的可能性。 集群方案:解决DB宕
2015-01-03 22:59:51
4966
转载 Oracle建立表空间和用户
建立表空间和用户的步骤:用户建立:create user 用户名 identified by "密码";授权:grant create session to 用户名; grant create table to 用户名; grant create tablespace to 用户名; grant crea
2014-12-29 10:41:49
432
原创 使用maven定制原型项目
在此半年以前,曾经用maven定制过原型项目,步骤不是很复杂,而且比较实用。今天突然想起来,想重新定制一个,后来发现忘记了很多,结果还鼓捣了大半个小时。现在我把这个步骤介绍给大家,希望对大家有用。我这里用的工具是myeclipse2014,就不像别人讲的了用命令行操作了。 第一步:我们之所以会想要做一个原型项目,那都是因为想在以后的开发中能够节约一定的时间,把自己之前封装好的东
2014-09-14 21:54:04
2711
原创 使用hibernate的优点
1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从
2014-09-12 14:35:35
1241
原创 hibernate如何管理缓存
Hibernate 中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。 Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存。
2014-09-12 14:28:52
1619
原创 Hibernate中对象的三种状态,以及三种状态间的转化方法
在Hibernate中有三种状态,对它的深入理解,才能更好的理解hibernate的运行机理,刚开始不太注意这些概念,后来被别人问到了,说是面试题,才发现它是重要的。对于需要持久化的JAVA对象,在它的生命周期中有三种状态,而且互相转化。Hibernate三种状态之一:临时状态(Transient):也叫瞬时状态,在一个对象刚被创建的时候,比如People people = new Peo
2014-09-12 10:55:06
2752
转载 JAVA中的final关键字
一、final用于构建不可变对象。根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量二、final用法1、在class上加入final,表示此class不可以被继承,没有子类,final类中的方法默认是final的,常用于专用的工具类,或者业务实现类,以防止改变原来的实现。p
2014-09-05 16:48:46
487
转载 hibernate的注解属性mappedBy详解
mappedBy: 1>只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性; 2>mappedBy标签一定是定义在被拥有方的,他指向拥有方; 3>mappedBy的含义,应该理解为,拥有方能够自动维护跟被拥有方的关系,当然,如果从被拥有方,通过手工强行来维护拥有方的关系也是可以做到的; 4>mappedBy跟jo
2014-07-18 19:23:39
573
原创 线程间通信,生产者消费者问题!
线程之间的通信简介:一般而言,在一个应用程序中(即进程),一个线程往往不是孤立存在的,常常需要和其它线程通信,以执行特定的任务。如主线程和次线程,次线程与次线程,工作线程和用户界面线程等。这样,线程与线程间必定有一个信息传递的渠道。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的。线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程
2014-06-03 19:41:41
2078
转载 Struts2 OGNL表达式
基本介绍OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。这样可以更好的取得数据。OGNL可以让我们用非常简单的表达式
2014-05-21 16:52:57
608
原创 ssh+ajax 注册验证 以及struts2+json注意事项
在我们日常开发中,经常会遇到注册时进行用户名异步验证这一步,下面是我开发时的一个小例子,希望能对大家有帮助。需要注意的是,我们后台是利用json返回json字符串,struts2整合json我们需要加入以下jar包: org.apache.struts struts2-json-plugin 2.3.16 net.sf.json-lib json-l
2014-04-24 17:11:03
1339
转载 四则运算表达式求值(栈的应用)
1.前/中/后缀表达式的转换(首先需要明白三者之间的转换) 自然表达式转换为前/中/后缀表达式,其实是很简单的。首先将自然表达式按照优先级顺序,构造出与表达式相对应的二叉树,然后对二叉树进行前/中/后缀遍历,即得到前/中/后缀表达式。 举例说明将自然表达式转换成二叉树: a×(b+c)-d ① 根据表达式的优先级顺序,首先计算(b+c),形成二
2014-04-08 17:05:41
1083
原创 SSH整合时出现的Unable to instantiate Action异常
在ssh框架整合的时候,尽管你按照官方网站上的做法一步一步的整合了struts2,hibernate,spring,但是当你运行的时候,还是经常会出现一个异常,那就是Unable to instantiate Action。此异常表达的意思很明显,那就是不能初始化你的action。而出现以下异常,普遍都是因为以下原因:一、在web.xml中没有配置spring的监听器或者没有配置spring配
2014-04-05 11:01:34
2208
转载 时间复杂度计算实例
表示时间复杂度的阶有:O(1) :常量时间阶 O (n):线性时间阶O(㏒n) :对数时间阶 O(n㏒n) :线性对数时间阶O (nk): k≥2 ,k次方时间阶例1 两个n阶方阵的乘法 for(i=1,i<=n; ++i) for(j=1; j
2014-03-14 18:49:58
3214
转载 Spring3之 bean Lazy-initialized beans
Lazy-initialized beans延迟初始化ApplicationContext默认会实例化singleton的bean,如果想延迟初始化它则在bean标签中用lazy-init="true"同时也可以在beans标签中指定default-lazy-init="true"来将所有的延迟初始化:Spring3官方配置: Java代码 "
2014-03-03 18:51:36
1146
转载 小米3观感:说说时下手机圈里的那些人和事
9月5日,终于见到了小米3的真容!从硬件参数来看,也确实值得发烧友们的追捧,其中电信和联通版采用高通最强大的骁龙800系列(8974AB)四核CPU,最高频率为2.3GHz,堪称目前最快的手机。而且这次发货的周期不再是倍受诟病的“期货”,下周就有移动版的工程机出售,10月上旬就有正式机出售。会不会改变原有的“饥饿营销模式” 对小米3是否会改变原有的“饥饿营销模式”,我持有怀疑
2014-03-01 22:47:40
1545
原创 Maven学习笔记之maven插件的配置
Maven的插件配置,我们主要是去参考maven的官网提供的plugins信息。上面提供了各种插件配置源码,我们只需要复制到我们项目的配置文件中修改就行了。我的项目里面用到了继承关系,下面是我在父类中的配置方式,代码如下:maven的插件配置 -->build>pluginManagement>plugins>plugin>groupId>org.apache.mave
2014-03-01 22:44:30
1188
转载 Maven学习笔记之maven的生命周期
1. Maven的生命周期 Maven的生命周期其实是指它对所有的构建过程进行了反复的推敲、反思,之后总结了一套高度抽象过程。这个过程是高度完善的、容易扩展的。基本上包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署、、站点生成等步骤,几乎所有的项目生命周期也就这样。Maven项目周期是一个抽象的概念,这个概念性的东西意味着它并不做任何实质性的事情,也就是说:它就像接口,只
2014-03-01 22:43:21
693
原创 Maven学习笔记之Maven项目的发布
我们可以通过maven将自己所做好的模块发布到自己本地的nexus上面去进行管理。首先我们必须声明一个用户名和密码,这样我们才有权限去发布项目。具体在maven的setting.xml中配置,如下:为工厂授权,设置用户名,密码--> user-release deployment deployment123
2014-03-01 22:40:49
832
原创 Maven学习笔记之mavne的仓库---私服
安装本地私服nexus。去官网上下载nexus,然后在环境变量中配置,如图: 然后通过cmd操作,安装和启动。 安装好以及启动之后,我们便可以通过http://localhost:8081/nexus/index.html访问nexus主页了。 Nexus其实就是一个本地的工厂,我们可以通过它下载我们所需要的jar包到我们本地,这样我们自己就可以管理所需
2014-03-01 22:39:23
1590
原创 Maven学习笔记之maven的聚合和继承问题
聚合:将多个模块聚合到一个模块里面,然后同时进行编译,运行。如下: 将user-core和user-log、user-service聚合到user模块中。只需要在user的pom.xml中进行如下操作 运行情况将按照先后顺序依次运行。 继承:将pom.xml的共同的部分放到一个父项目中,比如 只要在我们的父项目中声明同样的:
2014-03-01 22:32:30
930
原创 单例模式和工厂模式
http://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.6.lZNUC4&id=18800856374&_u=1nmsbjv7aa5&areaId=430100&user_id=791872703&is_b=1&cat_id=2&q=%C7%C7%B5%A4&rn=62210339bedf5a1b303ac3978eefbefc1.
2014-02-25 15:00:32
14821
转载 Java设计模式之装饰者模式
Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。意图:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。设计原则:1. 多用组合,少用继承。利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合
2014-02-24 23:26:14
786
原创 java设计模式之责任链
在 面向对象程式设计里, 责任链模式是一种软件设计模式,它包含了一些命令对象和一系列的处理对象。每一个处理对象决定它能处理哪些命令对象,它也知道如何将它不能处理的命令对象传递给该链中的下一个处理对象。该模式还描述了往该处理链的末尾添加新的处理对象的方法。下面通过一个小例子来演示该模式。package com.flj.main;public class Main { /**package c
2013-11-16 00:06:12
652
原创 @Component @Service @Controller @Repository注解使用
@Component 相当于实例化类的对象,相当于在配置文件中注入了一个bean要使用自动扫描机制,我们在spring的配置文件中应该如下配置: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schem
2013-11-02 00:32:08
1570
原创 MD5加密算法,在网上看了看,整理了一段小代码,以后直接拿来用
package com.test;import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class Md5Util {publ
2013-11-02 00:31:26
911
原创 java中深拷贝和浅拷贝的区别
今天上课学到了Cloneable接口,自然我们在使用clone()方法的时候,涉及到了java中的浅拷贝和深拷贝的问题。下面通过在网上看一下资料,做一个小小的总结。(1)浅拷贝浅拷贝是指对象中基本数据类型得到拷贝,而引用数据类型并没有拷贝。看下面一段代码:public class Person implements Cloneable{
2013-11-02 00:30:24
842
原创 java关键字new和newInstance()的区别
我们都知道要初始化一个类,生成一个实例的时候,可以用通过new关键字来创建一个对象,同样我们也可以调用newInstance()方法来创建一个对象。但是二者又有什么区别呢?其最主要是,前者在创建对象的时候,是创建了一个新类,而后者是使用了类加载机制。从jvm的角度,我们使用关键字new创建一个类的时候,这个类可以没有事先加载。但是我们使用newInstance()方法的时候,我们必须保证此类已
2013-11-02 00:29:56
764
原创 解决JfreeChart中文乱码问题
jfreechart中文乱码问题一直困扰很多的朋友,我学习得时候也一样,下面几段代码可以用来解决这个问题。TextTitle textTitle = chart.getTitle();textTitle.setFont(new Font("宋体", Font.BOLD, 20));LegendTitle legend = chart.getLegend();if (le
2013-11-02 00:28:39
745
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人