- 博客(31)
- 资源 (20)
- 收藏
- 关注
原创 ThreadLocal和线程同步机制相比有什么优势呢?
ThreadLocal和线程同步机制相比有什么优势呢?ThreadLocal和线程同步机制都是为了解决多线程中相同变量的访问冲突问题。在同步机制中,通过对象的锁机制保证同一时间只有一个线程访问变量。这时该变量是多个线程共享的,使用同步机制要求程序慎密地分析什么时候对变量进行读写,什么时候需要锁定某个对象,什么时候释放对象锁等繁杂的问题,程序设计和编写难度相对较大。而ThreadLocal则
2013-04-30 16:02:20 788
原创 精妙的单例类(Singleton)
Effective Java》中给出了一种精妙Singleton的解决方法,充分利用了Java虚拟机的特性 Java代码 public class Singleton { // an inner class holder the uniqueInstance. private static class Si
2013-04-30 16:00:52 726
原创 javassist:增强型的java反射工具,获取方法参数名
java的反射是不能获取方法的参数名的。比如:public String concatString(String param1,String param2){ return param1+param2; } 想获取"param1",和"param2"这个参数名,貌似是不行的。借助第三方包javaassist就可以获得。 整合原
2013-04-30 15:59:21 4029
原创 log4j xml模式配置
Xml代码 xml version="1.0" encoding="UTF-8"?> > log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> appender name="CONSOLE" class="org.apac
2013-04-30 15:56:30 993
原创 Java集合的Stack、Queue、Map的遍历
Java集合的Stack、Queue、Map的遍历 在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack、Queue、Map类型的遍历,还是有一些讲究的。下面是常用的写法: 一、Map的遍历Java代码 import java.util.HashMap; import jav
2013-04-30 15:54:31 3281
原创 Tomcat启报错,error:too many open files
原因:tomcat下面工程太多,其它一些项目正常启动,但我们的项目启动不了,并且项目报出的错误根本找不到原因,因为报出的错是开源项目里的。项目错误:Java代码 SEVERE: Servlet.service() for servlet default threw exception java.lang.NoClassDefFoundError:
2013-04-30 15:52:18 1194
原创 滕振宇谈如何进行单元测试
说起单元测试的好处相信大家都能列举出不少,可是很多时候,开发人员面对自己产品的代码,想写单元测试却无从下手,久而久之,便会有人大喊:“我讨厌单元测试。”资深敏捷咨询师腾振宇(Daniel Teng)在GTUG-TopGeek开发工程管理沙龙就以此为题,结合最近的一个项目,和大家分享了他对单元测试的一些看法。Daniel先介绍了下最近的一个项目,虽然不是遗留系统,但代码已经惨不忍睹,而且缺乏
2013-04-30 15:50:03 1193
原创 Java 8 的重要新特性以及 Java 9、10 的发展规划
我们一直在期待着Java 8的新功能,虽然很大一部分是对Java 7的扩展,发布时间也一推再推。但如今甲骨文终于承诺:新版本将是彻底的变革而不仅仅是Java 7的扩展。那Java 8到底是什么样的呢? 甲骨文的Java总架构师马克•雷纳德在2011年JavaOne大会上为大家透露了Java 8的新功能,同时也谈到了一些关于Java 9的计划。他说,Java 7未能实现五个关键的功能是非
2013-04-30 15:46:41 767
原创 Java 7已经完成的七大新功能
Java 7已经完成的7大新功能:1)对集合类的语言支持;2)自动资源管理;3)改进的通用实例创建类型推断;4)数字字面量下划线支持;5)switch中使用string;6)二进制字面量;7)简化可变参数方法调用。 下面我们来仔细看一下这7大新功能: 对集合类的语言支持Java将包含对创建集合类的第一类语言支持。这意味着
2013-04-30 15:46:05 976
原创 Velocity字符串模板替换
Java代码 public class VelocityTest { private static Properties props = new Properties(); static { props.setProperty(Velocity.INPUT_ENCODING, "UTF-8");
2013-04-30 15:43:57 6373 1
转载 RMI、Hessian、Burlap、Httpinvoker、WebService的比较
一、综述本文比较了RMI、Hessian、Burlap、Httpinvoker、WebService5这种通讯协议的在不同的数据结构和不同数据量时的传输性能。RMI是java语言本身提供的远程通讯协议,稳定高效,是EJB的基础。但它只能用于JAVA程序之间的通讯。Hessian和Burlap是caucho公司提供的开源协议,基于HTTP传输,服务端不用开防火墙端口。协议的规范公开,可以
2013-04-30 15:40:36 894
原创 关于ThreadLocal
正确理解ThreadLocal: http://www.iteye.com/topic/103804 简明扼要,再谈ThreadLocal和synchronized:http://www.iteye.com/topic/179040 关于ThreadLocal模式的体会:http://www.iteye.com/topic/617368 Thread
2013-04-30 15:38:18 645
原创 apache 关于对象数据的复制工具PropertyUtils类和 BeanUtils类的 copyProperties方法
PropertyUtils类和 BeanUtils类的 copyProperties方法语法一致,功能也几乎一样。它们的区别,很多人已经给出了很专业的归纳,今天我又多发现了一个,这个问题纠结了很久,分享出来供大家参考。BeanUtils.copyProperties(A,B);如果B中的Integer类型的数据是null的,那么通过这个方法复制给A后,这个null的Inte
2013-04-30 15:33:07 873
原创 使用Simple-Spring-Memcached注解做缓存操作
之前自己写过一个通过注解和AOP来实现缓存的代码,当时这段代码写得比较简单,之后重构时发现之前的功能实现有很大的局限。主要问题在于:key的生成规则update 与 query 的参数不一样,如何让其生成一样的key列表缓存如何定义key及失效最近同事推荐了一个开源项目:Simple-Spring-Memcached,它也是一个通过Annatation与AOP来完成缓存数据操作的开
2013-04-30 15:28:32 2948
原创 使用Simple-Spring-Memcached的demo示例
要使用Simple-Spring-Memcached首先需要确认使用哪种memcached客户端,在这里将使用XMemcached。第一步,将依赖jar导入项目中,推荐使用maven。具体的依赖可以参照SSM源码的pom.xml配置。具体步骤如下1、创建一个maven项目,在pom.xml添加上Simple-Spring-Memcached的依赖,还有其它Spring,aop,Xmemca
2013-04-30 15:23:06 2557
原创 Simple-Spring-Memcached使用Protobuf序列化Java对象
本文提供一段代码示例,演示如何在Simple-Spring-Memcached中使用Protobuf序列化Java对象。主要解决的问题有:Protobuf序列化Map对象实现SSM中CacheTranscoder接口的Protobuf实现在SSM中为需要序列化的对象配置相应的TranscoderProtobuf序列化Java对象在项目中使用Protobuf序列化时,需要编写
2013-04-30 15:18:19 1987
原创 Java应用的Memcached统一使用策略
使用simple-spring-memcached统一缓存的使用如何在一个中型的Java应用中使用Memcached缓存数据不是个简单的问题。当某个缓存数据需要在多个系统间共享和失效时,必须要有统一的规划才能保证不出错。经过各种实践,目前系统在使用Memcached缓存数据全部采用Simple-Spring-Memcached框架来完成,并统一规划各系统Spring和Cache key
2013-04-30 15:09:07 1391
原创 simple-spring-memcached-3.0.x 注解详解
@CacheName: 指定缓存实例注解@CacheKeyMethod:缓存key生成注解---------------------------------读取-------------------------------------------@ReadThroughAssignCache(assignedKey = "SomePhatKey", namespace =
2013-04-30 15:00:32 918
原创 Apache Common-validator验证框架
Commons-Validator(一) Commons -Validator包用来把验证规则程序提取出来,以供重复使用。这个包可以使用在Struts中,也可以独立的应用在任何其它的应用中。用户可以通过 java类的方式自定义验证方法,也可以在配置文件中通过正则表达式配置验证方法。它不但支持服务器端的验证,客户端的验证也支持,具体需要使用tag把 相应的js方法写入相应的页面
2013-04-30 14:56:44 8488
原创 java几种对象验证框架
(1) Apache Commons Validator Commons -Validator包用来把验证规则程序提取出来,以供重复使用。这个包可以使用在Struts中,也可以独立的应用在任何其它的应用中。用户可以通过 java类的方式自定义验证方法,也可以在配置文件中通过正则表达式配置验证方法。它不但支持服务器端的验证,客户端的验证也支持,具体需要使用tag把 相应的js方法
2013-04-30 14:52:46 3269
原创 利用MQ实现大文件交换
本文介绍了如何利用ActiveMQ提供的机制,实现大文件断点续传,从而可以在低速网络的情况下,不会因为网络的故障而使整个大文件重新传输。本文介绍的这个实现可以大大的提高业务处理效率,并且可以对本文提供的思路进行扩展以完成更加复杂的功能。1引言在低速的网络环境中,上传或者下载一个大文件需要花费很长的时间并且网络出现故障的机率很高。如果网络出现故障的话,这个传输将会从头开始;如果经常出
2013-04-29 11:38:45 6296
原创 Apache ActiveMQ简介
ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveMQ使用Apache提供的授权,任何人都可以对其实现代码进行修改。 ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。ActiveMQ实现了JMS标准并提供了很多附加的特性。
2013-04-29 11:31:40 1439
原创 MQ消息队列
AMQP协议介绍AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP在消息提供者和客户端的行为进行了强制规定,使得不同卖商之间真正实现了互操作能力。JMS是早期消息中间件进行标准化的一个尝
2013-04-29 11:26:55 7824
原创 MongoDB索引管理
虽然MongoDB的索引在存储结构上都是一样的,但是根据不同的应用层需求,还是分成了唯一索引(unique)、稀疏索引(sparse)、多值索引(multikey)等几种类型。唯一索引唯一索引在创建时加上 unique:true 的选项即可,创建命令如下:db.users.ensureIndex({username:1}, {unique:
2013-04-27 15:52:02 1102
原创 MongoDB的内部构造
对于大多数的MongoDB的用户来说,MongoDB就像是一个大黑盒,但是如果你能够了解到MongoDB内部一些构造的话,将有利于你更好地理解和使用MongoDB。BSON在MongoDB中,文档是对数据的抽象,它被使用在Client端和Server端的交互中。所有的Client端(各种语言的Driver)都会使用这种抽象,它的表现形式就是我们常说的BSON(Binary JSON )。
2013-04-27 15:50:51 892
原创 MongoDB与内存
但凡初次接触MongoDB的人,无不惊讶于它对内存的贪得无厌,至于个中缘由,我先讲讲Linux是如何管理内存的,再说说MongoDB是如何使用内存的,答案自然就清楚了。先看一个MongoDB服务器的top命令结果:shell> top -p $(pidof mongod)Mem: 32872124k total, 30065320k use
2013-04-27 15:49:22 727
原创 Kafka&MetaQ
Memorphosis介绍:Memorphosis是一个消息中间件,它是linkedin开源MQ------kafka的Java版本,针对淘宝内部应用做了定制和优化。Memorphosis做到了啥:顺序(没做到,只能保证先进先出)安全(部分如磁盘掉电会最多丢失1000条消息或10秒内信息)性能(性能很好单台meta,10个同组256大小每秒4.5W)消耗(消耗低单台
2013-04-27 15:44:36 3444
转载 服务治理过程演进
在大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。(1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。此时需要一个服务注册中心,动态的注册和发现服务,使服务的位置透明。并通过在消费方获取服务提供方地址列表,实现软负载均衡和Fa
2013-04-23 17:00:47 1470 2
原创 openssl从PFX导出私钥、公钥
从pfx提取密钥信息,并转换为key格式(pfx使用pkcs12模式补足)1、提取密钥对(如果pfx证书已加密,会提示输入密码。) openssl pkcs12 -in 1.pfx -nocerts -nodes -out 1.key2、从密钥对提取私钥 openssl rsa -in 1.key -out 1_pri.key3、从密钥对提取公钥
2013-04-23 15:31:51 9221 1
转载 SSL-用OpenSSL命令行生成证书文件-稍加补充
也许很多人和本人一样深有体会,使用OpenSSL库写一个加密通讯过程,代码很容易就写出来了,可是整个工作却花了了好几天。除将程序编译成功外(没有可以使用的证书文件,编译成功了,它并不能跑起来,并不表示它能正常使用,所以......),还需生成必要的证书和私钥文件使双方能够成功验证对方。找了n多的资料,很多是说的很模糊,看了n多的英文资料,还是没有办法(不知道是不是外国朋友都比较厉害,不用说明得
2013-04-23 13:39:26 1029
原创 Linux中shell文件操作大全
1.创建文件夹#!/bin/shmkdir -m 777 "%%1"2.创建文件#!/bin/shtouch "%%1"3.删除文件#!/bin/shrm -if "%%1"4.删除文件夹#!/bin/shrm -rf "%%1"5.删除一个目录下所有的文件夹#!/bin/bashdirec="%%1" #$(pwd)fo
2013-04-23 13:37:05 1540
SoapUI Pro4.5.1 破解补丁_已测试可用
2013-07-22
人工神经网络原理及应用
2013-06-26
企业私有云架构和实施蓝图
2013-04-05
尽管去做——无压工作的艺术
2013-04-05
【经典版】数据仓库设计
2013-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人