自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 收藏
  • 关注

原创 Ubuntu 14.04 (降级)安装 SVN 1.6

因项目原因,需要将Ubuntu 14.04上的SVN(原本是1.8.8)降级为1.6方法一、Add deb http://us.archive.ubuntu.com/ubuntu precise main to your /etc/apt/sources.list. Remove your current SVN by apt-get remove libsvn1 subver

2015-04-15 18:41:52 2368

转载 maven + eclipse 问题记录

1、警告:The tag handler class for "s:form" (org.apache.struts2.views.jsp.ui.FormTag) was not found on the Java Build Path这个问题终于可以解决了, 在出问题的页面  标签前后删除空格后保存文件 警告即可消失,即为改行的起始,然后保存。 2、Eclipse下Java com

2015-04-14 20:18:37 955

原创 Spring事务与自定义多线程陷阱

Spring事务与自定义多线程陷阱

2015-04-08 16:04:18 7028

原创 Spring AOP+自定义注解实现缓存

Spring AOP+自定义注解实现缓存

2015-04-07 14:00:52 4670

转载 初探ThreadLocal类

1、ThreadLocal并不是一个Thread,而是Thread的局部变量,当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本.2、ThreadLocal类中的方法:(JDK5版本之后支持泛型):      一、void set(T value)

2015-04-01 15:33:31 748

原创 使用spring aop+自定义注解实现动态使用DataSource

Spring AOP的两种实现方式:JDK动态代理和CGLIB动态代理1、JDK动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。2、CGLIB动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP。2、如果目

2015-04-01 10:47:45 5158

转载 动态代理:JDK动态代理和CGLIB代理

JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为

2015-03-28 17:20:46 386

转载 Spring Transaction属性之Propagation

Spring Transaction中有一个很重要的属性:Propagation。主要用来配置当前需要执行的方法,与当前是否有transaction之间的关系。我晓得有点儿抽象,这也是为什么我想要写这篇博客的原因。看了后面的例子,大家应该就明白了。一、Propagation取值:REQUIRED(默认值):在有transaction状态下执行;如当前没有transaction,

2015-03-28 15:45:35 415

原创 Ubuntu 主机名IP映射

在Ubuntu系统中,主机名是在etc/hostname文件中的,主机名与IP的映射关系是在etc/hosts文件中的,格式如下:127.0.0.1   localhost.localdomain  localhost      hosts文件格式是一行一条记录,分别是IP地址 hostnamealiases,三者用空白字符分隔,aliases可选。       Linux

2015-03-17 18:05:38 6339

转载 Java clone详解

Java中对象的创建clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢?1 使用new操作符创建一个对象2 使用clone方法复制一个对象那么这两种方式有什么相同和不同呢? new操作符的本意是分配内存。程序执行

2015-03-17 10:24:00 362

转载 linux下校正系统时间的方法

校正系统的时间,以root权限运行:aptitude install ntpdatentpdate clock.cuhk.edu.hkhwclock --systohccrontab:*/1 * * * * /usr/sbin/ntpdate -s clock.cuhk.edu.hk; /sbin/hwclock --systohc修改系统时间date -s

2015-03-13 15:30:44 3614

转载 让你提升命令行效率的 Bash 快捷键

生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率。编辑命令Ctrl + a :移到命令行首Ctrl + e :移到命令行尾Ctrl + f :按字符前移(右向)Ctrl + b :按字符后移(左向)Alt + f :按单词前移(右向)Alt + b :按单词后移(左向)Ctrl + xx:在命令行首和光标之间移动Ctrl + u :从光标处删除

2015-03-13 15:29:25 419

转载 linux小工具分享

系统配置相关:查看内核/操作系统/CPU信息: uname -a查看操作系统版本: head -1 /etc/issue查看网卡信息:cat /sbin/ifconfig查看cpu配置: cat /proc/cpuinfo查看mem配置:cat /proc/meminfo查看环境变量 资源: env查看各分区使用情况: df -h查看指定目录的大小: du -sh

2015-03-13 15:28:07 528

转载 Maven理解与使用

项目管理工具    http://blog.csdn.net/happylee6688/article/details/38798669

2015-03-12 18:43:57 350

转载 close wait 问题收藏

感谢各位网友提供资料,在此进行整理后放到自己的文章中:Google了半天,发现关于CLOSE_WAIT的问题一般是C的,Java似乎碰到这个问题的不多(这有一篇不错的,也是解决CLOSE_WAIT的,但是好像没有根本解决,而是选择了一个折中的办法)。接着找,由于使用了NIO,所以怀疑可能是这方面的问题,结果找到了这篇。顺着帖子翻下去,其中有几个人说到了一个问题—— 一端的Socket调用c

2015-03-12 16:47:29 450

转载 ZooKeeper使用--分布式锁

分布式锁服务在大家的项目中或许用的不多,因为大家都把排他放在数据库那一层来挡。当大量的行锁、表锁、事务充斥着数据库的时候。一般web应用很多的瓶颈都在数据库上,这里给大家介绍的是减轻数据库锁负担的一种方案,使用zookeeper分布式锁服务。        zookeeper是hadoop下面的一个子项目, 用来协调跟hadoop相关的一些分布式的框架, 如hadoop, hive, pig等

2015-03-12 14:35:58 584

转载 设置最佳线程数总结

最佳线程数:性能压测的情况下,起初随着用户数的增加,QPS会上升,当到了一定的阀值之后,用户数量增加QPS并不会增加,或者增加不明显,同时请求的响应时间却大幅增加。这个阀值我们认为是最佳线程数。 为什么要找最佳线程数1.过多的线程只会造成,更多的内存开销,更多的CPU开销,但是对提升QPS确毫无帮助2.找到最佳线程数后通过简单的设置,可以让web系统更加稳定,得到最高,最稳

2015-03-12 13:28:26 1414

转载 ExecutorService Executors 认识

对于多线程有了一点了解之后,那么来看看java.lang.concurrent包下面的一些东西。在此之前,我们运行一个线程都是显式调用了Thread的start()方法。我们用concurrent下面的类来实现一下线程的运行,而且这将成为以后常用的方法或者实现思路。         看一个简单的例子:public class CacheThreadPool { public

2015-03-11 17:35:30 635

转载 ExecutorService理解与使用

接口 java.util.concurrent.ExecutorService 表述了异步执行的机制,并且可以让任务在后台执行。壹個 ExecutorService 实例因此特别像壹個线程池。事实上,在 java.util.concurrent 包中的 ExecutorService 的实现就是壹個线程池的实现。ExecutorService 样例 这里有壹個简单的使用Java 实现的

2015-03-11 17:24:34 816

转载 CountDownLatch使用

1、类介绍一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。 一个线程(或者多个), 等

2015-03-11 16:34:23 744

转载 消息队列之JMS和AMQP对比

AMQP & JMS对比初次接触消息队列时,在网上搜索,总是会提到如JMS、AMQP等一些术语。查看了一些文档,对JMS和AMQP的一些理解记录如下。JMS         通常而言提到JMS(Java MessageService)实际上是指JMS API。JMS是由Sun公司早期提出的消息标准,旨在为java应用提供统一的消息操作,包括create、send、receive等。

2015-03-11 14:19:18 568

转载 servlet webservice 比较

首先比较下servlet和webservice下请求:   servlet:提供了请求/响应模式,是JAVA的一种规范,只能使用于java上,用来替代早期使用的难懂的CGI,是一种无状态的请求响应,客户端访问一个服务器的url,只需要发送简单的httprequest即可。 规定了四个范围:pageContext、request、session、application。一定依赖于各种SERV

2015-03-11 13:09:40 630

转载 Hadoop安装文档

安装方式:tar包安装一、安装规范安装帐号:新建操作系统帐号,推荐HBase帐号,集群间ssh该帐号免互联安装目录:/opt/,EC2由于opt目录较小,可以安装在/mnt/,(下文的示例是安装在/usr/local下)安装版本:Hadoop-2.4,HBase-0.96数据存放地址:数据磁盘挂载在/vobiledata,大小一致,目录命名/vobiledata/Had

2015-03-11 11:13:34 402

转载 java并发面试题

多线程java中有几种方法可以实现一个线程?           答:在Java中实现一个线程有两种方法,第一是实现Runnable接口实现它的run()方法,第二种是继承Thread类,覆盖它的run()方法。这两种方法的区别是,如果你的类已经继承了其它的类,那么你只能选择实现Runnable接口了,因为Java只允许单继承的。如何停止一个正在运行的线程?        答:当不

2015-03-09 00:18:28 319

转载 JAVA并发编程--守护线程(Damon Thread)

在Java中有两类线程:用户线程 (User Thread)、守护线程 (Daemon Thread)。所谓守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。用户线

2015-03-05 22:48:34 1536

原创 Mysql ON DUPLICATE KEY UPDATE 用法

如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果:INSERT INTO TABLE (a,c) VA

2015-03-03 14:50:52 647

转载 java rabbitMQ demo

rabbitMQ是一个在AMQP基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License 开源协议。  关于amqp可参考http://www.oschina.net/p/rabbitmq/ rabbitmq是一个消费的代理;通过生产者客户端生产一个信息,转送给消费者客户端;在这个传输过程中,根据你的需要可以经过路由、缓冲、持久化来得到这个消息。

2015-02-28 15:24:28 1103

原创 Mysql innodb 分析定位DeadLock的方法

mysql> show engine innodb status \G*************************** 1. row ***************************  Type: InnoDB  Name: Status: =====================================150228 14:36:02 INNODB M

2015-02-28 14:40:36 2522

原创 Linux下导出Mysql数据库数据的方法

当查询到的数据结果数据量非常大的情况(假设超过1W条),这时,如果想要对查询到的结果进行分析,就会变的非常困难。而如果可以将结果导入到一个csv/txt文件中,就相对容易多了。方式一、mysql -h192.168.1.134 -uroot -p123 colanderselect * from workingKeywordSearchTask where task_p

2015-02-27 15:50:44 1412

转载 linux文件创建、查看、编辑命令

一、创建文件命令1、touch命令linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。touch   [-acm][-r   ref_file(参照文件)|-t   time(时间值)]   file(文件名)example:touch file1.txt 更新file1.txt的存取和修改时间touch -c fil

2015-02-27 14:19:07 809

转载 linux硬链接与软链接

Linux 系统中有软链接和硬链接两种特殊的“文件”。软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录。硬链接则透过文件系统的inode来产生新档名,而不是产生新档案。创建方法都很简单:软链接(符号链接) ln -s   source  target 硬链接 (实体链接)ln       source  targetinode要解释清楚两者的

2015-02-27 14:03:17 433

转载 Spring事务传播属性和隔离级别

一、Spring事务的隔离级别 1. ISOLATION_DEFAULT: 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.      另外四个与JDBC的隔离级别相对应 2. ISOLATION_READ_UNCOMMITTED: 这是事务最低的隔离级别,它充许令外一个事务可以看到这个事务未提交的数据。      这种

2015-02-15 17:07:45 507

转载 Java 理论与实践: 正确使用 Volatile 变量

转载地址:http://www.ibm.com/developerworks/cn/java/j-jtp06197.htmlvolatile 变量使用指南 Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错

2015-02-15 15:11:46 329

转载 RabbitMQ 三种Exchange

Direct Exchange – 处理路由键。需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。如果一个队列绑定到该交换机上要求路由键 “dog”,则只有被标记为“dog”的消息才被转发,不会转发dog.puppy,也不会转发dog.guard,只会转发dog。Channel channel = connection.createChannel();

2015-02-13 17:13:44 497

转载 详解spring 每个jar的作用

spring.jar 是包含有完整发布模块的单个jar 包。但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar。spring-src.zip就是所有的源代码压缩包。除了spring.jar 文件,Spring 还包括有其它21 个独立的jar 包,各自包含着对应的Spring组件,用户可

2015-02-12 17:10:18 348

转载 Web项目HA部署方法

HA(High Available):高可用性群集,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点(master)及备用节点(slave)。当master出现问题,导致正在运行的业务(任务)不能正常运行时,slave此时就会侦测到,并立即接续活动节点来执行业务。从而实现业务的不中断或短暂中断,在此过程中,用户使用不会受到任何影响。测试机器3台:1.nginx:部

2015-02-11 15:16:36 1343

转载 Mysql explain详解

explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。先解析一条sql语句,看出现什么内容EXPLAINSELECTs.uid,s.username,s.name,f.email,f.mobile,f.phone,f.postalcode,f.addressFROM uchome_space ASs,u

2015-02-11 15:13:18 377

原创 Jmap+MAT 排查内存泄漏

最近在项目中自测的时候(压力测试)遇到内存泄漏的情况,想查看具体是哪个模块甚至哪个类引起的问题,经同事推荐使用Jmap+MAT的组合进行了一次尝试,下面记录一下,以便今后深入学习使用。这里可以用一个linux下的命令(jps)查看所有Java相关线程的pid等信息。然后使用jmap命令,jmap是一个可以

2015-01-25 20:17:22 5030

转载 JVM内存管理

这些日子一直在研究jvm内存管理的东西,网上的知识很多,总结一下,以备后用。    首先,刚学java的时候就知道java类文件是以 .java为后缀的文件,经过javac命令编译后,编译成class文件,class文件中都是二进制格式的数据,所以想要看编译后的内容是什么,可以采用jdk自带的javap命令查看。   记得刚学java的时候觉得java虚拟机厉害的很,java的风光正是建立

2015-01-25 18:02:26 373

转载 ThreadPoolExecutor运转机制详解

一、原理:最近,在工作中接触到ThreadPoolExecutor,在这里记录一下相关的知识点,以便今后使用。先看一下新建一个ThreadPoolExecutor的构建参数:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,

2015-01-22 14:43:55 861

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除