
Java
文章平均质量分 57
kiral
这家伙很帅
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Google Guava官方教程(中文版)
原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,武祖 校对:方腾飞引言Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations]...2014-10-24 23:48:51 · 369 阅读 · 0 评论 -
Opencomet之Session设计
本文主要介绍Opencomet 里的Session设计。见附件!2011-06-24 13:08:20 · 214 阅读 · 0 评论 -
单点登录设计
使用独立的单点登录应用程序来做单点登录,这样可扩展性和安全性会更好。1:用户访问App1的某个URL,App1通过cookie(必须加密)去单点登录服务器验证当前用户是否已经登录,如果没有登录,则跳转到单点登录应用的登录页面,并传递用户访问的URL。2:用户提交用户名和密码,单点登录应用验证登录成功后跳转回App1,并传递token和sign(用于防止token被篡改)。3:App...原创 2011-09-25 15:20:56 · 526 阅读 · 0 评论 -
单元测试用例设计
测试用例设计的原则是短,精和易读。 如何做到短:如果发现测试代码需要写得很长,很复杂,则说明实现代码很复杂,需要重构实现代码。一个测试用例,只走一个分支。这样在测试代码里就不会出现if,else。 如何做到精测试数据足够即可。往往几条数据就足够测到所有的流程。边写测试,边写代码。如果后补测试,可能你已经忘了当时的设计思路,测试会不够...2011-06-15 22:42:51 · 260 阅读 · 0 评论 -
使用AOP做权限控制
见附件!2011-06-06 20:49:18 · 253 阅读 · 0 评论 -
开发中的小心得
总结一下自己在开发上的一些小心得,持续更新,欢迎大家补充! 测试需要注意的问题:1:测试需要涵盖所有的业务逻辑: 自动化测试不需要覆盖所有的代码,但需要覆盖所有的业务逻辑,因为一处的修改可能造成其他业务逻辑的不可用。考虑所有情况如单个删除,批量删除。一对一移动,多对多移动。2:浏览器:测试产品支持的浏览器,具体到浏览器版本号,如支持IE6,IE7和IE8。3:分辨率:测试产品支...2011-02-04 01:13:08 · 118 阅读 · 0 评论 -
单元测试利器之Jtester
名词解释:Junit:众所周知的单元测试。 官方网址:http://junit.sourceforge.net/。Junit从4.0开始提供基于注解的配置方式。Dbunit: 一个针对数据库测试的框架,通过Excel准备数据并插入数据库。官方地址:http://www.dbunit.org/ TestNG:从字面上可以理解为下一代单元测试,和Junit的功能有一部分重叠和区别。...2011-02-04 00:30:50 · 288 阅读 · 0 评论 -
图表组件设计思路
从项目经历来分析,客户经常会需要各种图表来分析网络现状及业务影响,导致我们针对于不同的项目会要定制开发不同的图表,而这部分图表大部分不能产品化。 从技术角度分析,往往一个图表涉及到多个模块,考虑到松耦合,各个模块自己封装自己的接口,而最终需要组合不同模块的接口来获取图表需要的数据。 从重复造轮子的角度分析,业内的报表组件都比较庞大,且使用他们的实施成本和集成成本比较大,如皮...2010-11-02 19:01:26 · 369 阅读 · 0 评论 -
Java虚拟机
JVM JVM即Java虚拟机,它是一个想象中的机器,通过它Java可以实现编译后的跨平台运行。 主要的JVM有Oracle的HostSpot。(原来叫Sun HostSpot)Oracle的JRockit。(原来叫Bea JRockit,本称为世界上最快的JVM)Google的Dalvik。(Google android的虚拟机,特点编译后dex文件比j...2011-08-25 19:50:43 · 135 阅读 · 0 评论 -
HttpClient
HttpClient是一个模拟HTTP请求的工具类,目前我们在两个地方用到了HttpClient。Eclipse插件调用第三方的HTTP接口。Action自动化测试。我们对HttpClient进行了一个简单的封装: package com.alibaba.itu.tala.util;import static org.apache.commons.httpclien...2011-08-16 15:27:06 · 155 阅读 · 0 评论 -
Eclipse插件开发
插件开发工具 我觉得进行RCP开发还是用专门的IDE比较好,自己的Eclipse装的插件太多,Debug时候启动非常慢。 Eclipse插件开发IDE: http://www.eclipse.org/downloads/packages/eclipse-rcp-and-rap-developers/indigorwindow Builder插件:http://dl.g...2011-07-22 11:15:54 · 156 阅读 · 0 评论 -
AOP的实现机制
附件中有本文的源代码和Pdf版。本文写的很长的原因,是不希望大家学习AOP时到处找资料,大家有时间可以按照本文动手实践下,相信会有非常大的收获的,有什么问题互相交流,有问必答!1 AOP各种的实现 AOP就是面向切面编程,我们可以从几个层面来实现AOP。在编译器修改源代码,在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码,以下是各种实现机制的比较。 ...2011-10-18 10:15:06 · 673 阅读 · 0 评论 -
《Java 7 并发编程指南》中文版
原文链接 作者: Javier Fernández González 译者:郑玉婷,许巧辉 校对:方腾飞,欧振聪 申明:本书由并发编程网组织翻译,只供研究和学习之用,禁止任何人用于商业用途。当你用计算机工作的时候,你在同时做多样事情。你可以边听音乐边写文档边读取邮件。可以这样做的原因是你的操作系统运行并发任务。并发编程是关于基础与进程的一个提供了多任务或者多程序同时运行还...2013-11-03 17:00:54 · 328 阅读 · 0 评论 -
《Storm入门》中文版
本文翻译自《Getting Started With Storm》译者:吴京润 编辑:郭蕾 方腾飞本书的译文仅限于学习和研究之用,没有原作者和译者的授权不能用于商业用途。译者序Storm入门终于翻译完了。首先感谢并发编程网同意本人在网站上首发本书译文,同时还要感谢并发编程网的各位大牛们的耐心帮助。这是本人翻译的第一本书,其中必有各种不足请诸位读者朋友不吝斧正。译完此书之...2014-05-28 12:38:42 · 313 阅读 · 0 评论 -
[并发译文]Java内存模型手册
原文地址:http://gee.cs.oswego.edu/dl/jmm/cookbook.html 作者:Doug Lea。由 JMM邮件组的成员提供帮助. [email protected]. 译者:潘曦,丁一,古圣昌,欧振聪,方腾飞 校对:欧振聪,方腾飞 前言:从最初的探索至今已经有十年了。在此期间,很多关于处理器和语言的内存模型的规范和问题变得更清楚,更容易理解,...2013-01-20 21:13:10 · 194 阅读 · 0 评论 -
构建JSONP字符串
1.咱们需要一个这样的JSONP字符串 var callbackP = "{\"msg\": [ \"<a href='#' target='_blank'><span class='notifyFn'>未受理<span class='notifyCount'>(50)</span></span></2012-09-21 10:28:07 · 232 阅读 · 0 评论 -
Java NIO系列教程
原文地址:http://tutorials.jenkov.com/java-nio/index.html 作者:Jakob Jenkov 译者:郭蕾等 校对:方腾飞,丁一等 Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: C...2013-06-25 17:03:00 · 182 阅读 · 0 评论 -
[并发编程]聊聊并发
聊聊并发系列文章是我在InfoQ发表的并发编程连载文章。聊聊并发(一)深入分析Volatile的实现原理聊聊并发(二)Java SE1.6中的Synchronized聊聊并发(三)Java线程池的分析和使用聊聊并发(四)深入分析ConcurrentHashMap聊聊并发(五)原子操作的实现原理 希望大家能喜欢!...2012-12-23 03:44:42 · 173 阅读 · 0 评论 -
聊聊并发(一)深入分析Volatile的实现原理
本文属于作者原创,原文发表于InfoQ中文站。 地址为:http://www.infoq.com/cn/articles/ftf-java-volatile 声明: 本文已经首发于InfoQ中文站,版权所有,原文为《深入分析Volatile的实现原理》,如需转载,请务必附带本声明,谢谢。 InfoQ中文站是一个面向中高端技术人员的在线独立社区,为Java、.N...2012-02-22 09:39:10 · 111 阅读 · 0 评论 -
聊聊并发(二)Java SE1.6中的Synchronized
本文属于作者原创,原文发表于InfoQ中文站。 地址为:http://www.infoq.com/cn/articles/java-se-16-synchronized 声明: 本文已经首发于InfoQ中文站,版权所有,原文为《Java SE1.6中的Synchronized》,如需转载,请务必附带本声明,谢谢。 InfoQ中文站是一个面向中高端技术人员的在线独...2012-05-24 13:51:23 · 119 阅读 · 0 评论 -
JVM运行时数据区(2011年6月的JVM规范)
本文是《The Java Virtual Machine Specification (Java SE 7 Edition)》运行时区的翻译,原文参见:http://download.oracle.com/javase/7/specs/jvms/JVMS-JavaSE7.pdf JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁...2011-10-18 13:30:52 · 129 阅读 · 0 评论 -
JAVA6可以使用字符串累加
在JAVA6中,编译器会始终对字符串的累加操作做优化编译。编译器将字符串累加编译成StringBuilder。源代码String aa = "aa";String bb = "bb";String cc = "cc";String result = aa + bb + cc; 编译后NEW StringBuilder ...2011-05-12 10:42:05 · 240 阅读 · 0 评论 -
我是如何写Service的
马上要告别研发了,所以写一些自己积累的经验,用来纪念4年的似水流年,本篇为第一张,用来介绍自己是如何写Service的,当然我总结的不一定合理,大家一起讨论下。 笔者认为,Service及服务层,服务可以分为功能服务和业务服务,功能服务不易改变,业务服务易改变。所以功能服务添加得多,修改的少,那么我们可以考虑不使用接口。而业务服务,修改和更新都很频繁,所以应该提取接口,用不同的实现来屏蔽业...原创 2010-03-03 10:37:42 · 724 阅读 · 0 评论 -
如何解决SVN不能成功打补丁的问题?
[b]问题:[/b]如果文件是是UTF-8编码的,打补丁的时候,补丁中带有中文字符的话,不能打成功。[b]原因:[/b]可能是SVN比较器,默认按照系统默认编码,进行代码比较。[b]解决方法:[/b]将补丁文件XXX.diff (如revision17187.diff)使用editplus等工具修改为gb2312编码后,能成功打上补丁。...2009-12-23 17:07:31 · 746 阅读 · 0 评论 -
在Spring中使用JMX
为什么使用JMXJMX能够让运行在不同的JAVA虚拟机中进行方法调用。 如何使用一 .注册JMX 1.定义一个接口,接口的名字以MBean结尾,如:UserServiceMBean 2.定义实现类java 代码public class UserService implements UserServiceMBean 3.配置bea...2007-07-03 13:54:26 · 243 阅读 · 0 评论 -
使用Filter控制页面的权限
众所周知,如果没有对页面进行权限控制,用户只要输入URL就能进入任何页面。 下面就演示一下最基本的使用Fiter来控制页面的权限。 1.写一个FILTER,用来判断用户是否有权限进入指定页面。java 代码 import java.io.IOException; import javax.servlet.Filter;...2007-06-29 11:23:56 · 249 阅读 · 0 评论 -
Java 规格书(小结)
1。Unicodejava程序是用unicode编码编写的。 2。Indentifier标识符是由不限制长度的字母和数字组成。两个标识符只有它们的每个字母和数字的Unicode相同时才是相同的。 3。literal文字是代表基本类型,String类型和null类型的值的源代码。 4。类型和值java是强类型语言,类型分为基本类型和引用类型。基本类型分为:数据类型(int,by...2007-06-21 12:46:00 · 162 阅读 · 0 评论 -
使用spring手动控制事务
[b]前言:[/b] 建议不要使用spring自动控制事务,一般不需要回滚的DAO方法(如查询),建议不要使用事务,由于使用事务的时候,会锁住表,过多的使用事务,可能会出现死锁的现象。单条更新语句也不需要使用事务,数据库会自动回滚。[b]使用spring手动控制事务[/b] [code="java"]private DataSourceTransactionManager t...2007-06-21 12:43:14 · 782 阅读 · 0 评论 -
技术文章
1.利用java操作Excel http://www-128.ibm.com/developerworks/cn/java/l-javaExcel/index.html2.使用jdbcTemplate操作数据库 http://www.iteye.com/topic/535263.RMI入门 ...2007-05-18 11:19:51 · 128 阅读 · 0 评论 -
javabean和pojo(使用mindManager来做学习笔记)
今天突然想到,可以使用mindManager来做学习笔记,训练自己的发散思维,而且总结出来的内容,印象更加深刻。 自己小结了下,javabean和pojo.2007-04-18 11:46:42 · 187 阅读 · 0 评论 -
告别myeclipse下部属web应用程序
1.使用myeclipse部署web应用程序的弊端 开发效率低: 新增文件,必须关闭服务器,然后重新部署。 浪费空间:部属时,应用程序必须部署一份到tomcat的webapps下。 2。如何解决 使用外挂的方式,部署应用程序 3. 具体做法 ...2007-04-09 17:26:17 · 96 阅读 · 0 评论 -
在应用服务器下启动HSQL数据库
说明: 在应用服务器(tomcat,jboss,weblogic)启动的时候,启动HSQL数据库。 步骤: 1。在web.xml下配置监听器 xml 代码 <listener> <listener-class> ...2007-04-09 16:59:14 · 224 阅读 · 0 评论 -
如何处理异常?
当我们捕获到一个Exception时,如下[code]void init(){ try{ loadFile(); } catch(Exception e) {}} [/code]那么我们首先应该分析,我能不能处理这个异常,假如我能够处理,那么我就处理,并且记录日志。假如我不能处理,那么应该继续向上抛出。尽量使用u...2006-12-28 16:34:17 · 267 阅读 · 0 评论 -
在Spring中使用JMS
什么是JMS?JMS即java消息服务,JMS通过消息的形式来降低组件之间的耦合度。JMS由两部分组成消息发送者和消息监听者。 JMS的运用场景? 用户系统负责维护用户信息,文档系统负责维护文档信息,但是当用户删除的时候,需要将他所撰写的文档信息也删除的时候,在用户管理模块调用文档管理模块的接口,会造成用户模块和业务模块紧耦合。 这个时候可以使用JMS技术来将紧耦合...2007-07-05 10:18:20 · 191 阅读 · 0 评论 -
JNDI
什么是JNDI:说白了,JNDI就是一棵树,上面挂着很多对象。你可以往这颗树上,添加(绑定)对象,摘掉(解绑定)对象,查找对象。为什么要使用JNDI:这棵树是活在内存里的,所以你能很快速的得到你需要的对象,并把你的对象添加到这个树里面,进行统一的管理。 在Tomcat下使用JNDI数据源1:增加JNDI数据源配置。在tomcat6\conf的server.xml里增加下列...2007-07-05 17:23:38 · 197 阅读 · 0 评论 -
SpringLDAP Quick Start
[b]1:前言[/b]本例只在spring-ldap-1.2-RC1.jar下测试通过,sping下的LDAP配置和操作,都类似于JdbcTemplate,所以只要熟悉JdbcTemplate,那么LDAP的配置就显得非常简单。LDAP本身不提供事务,但是Spring使用删除操作来模仿事务。[b]2:配置LDAP数据源和LdapTemplate[/b][code="XML"]...2008-12-16 14:00:59 · 135 阅读 · 0 评论 -
是时候升级了
1:struts升级到2.1使用注释的方式来配置Action。参考地址:http://cwiki.apache.org/WW/convention-plugin.html2:spring升级到2.5.6,也使用注释的方式来配置bean。参考地址:http://static.springframework.org/spring/docs/2.0.x/reference/metadat...2009-05-26 14:46:25 · 110 阅读 · 0 评论 -
再谈事务
[b]1.事务的传播类型[/b]当一个方法(A)中,调用了另一个具有事务的方法(B)。事务的传播会有以下6中情况。"required":默认的事务类型。如果方法A启动了事务,方法B会运行在当前方法范围内。如果方法A没有启动事务,方法B将创建一个新的事务。"supports":如果方法A启动了事务,方法B会运行在当前方法范围内。如果方法A没有启动事务,方法...2008-05-09 17:27:47 · 118 阅读 · 0 评论 -
周日学习笔记
[b]1:Eclipse的快捷键[/b]Alt+shirt+X 打开执行窗口Ctral+alrt+上(下) 选定代码在这个代码的上面或者下面进行CopyCtrl+F11 执行上一次Alt+Shirt+C 修改方法名Ctrl+End 到行尾2:Spring2.5使用注释的方式来配置如@Autowired 表示注入Bean@Service 表示配置为一个Bean...2008-11-03 10:10:14 · 167 阅读 · 0 评论 -
Struts2的JSON插件
Struts可以返回为JSON的形式。 [b]文档[/b]中文文档:http://webservices.ctocio.com.cn/tips/424/7670924.shtml英文文档:http://cwiki.apache.org/S2PLUGINS/json-plugin.html(详细些)[b]有几个需要注意的地方:[/b]1: 如果不序列化某个属性需要在get...2008-10-20 18:07:40 · 115 阅读 · 0 评论