- 博客(23)
- 收藏
- 关注
转载 Java远程通讯可选技术及原理
<br /><br />在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来一探究竟,抛砖引玉,欢迎大家提供更多的实现远程通讯的技术和原理的介绍。<br />基本原
2010-10-19 15:14:00
832
转载 【译】构建可扩展的Java EE应用(一)
<br /><br />可扩展性作为系统的属性之一,是个很难定义的名词,经常会与性能混淆。当然,可扩展性和性能是有关系的,它的目的是为了达到高性能。但是衡量可扩展性和性能的方法是不一样的,在这篇文章中,我们采用wikipedia中的定义 <br />原文地址: http://www.theserverside.com/tt/articles/article.tss?l=ScalingYourJavaEEApplications<br /> <br />对于一个具备使用价值的应用而言,其使用者有可能会在一段时
2010-10-19 15:13:00
969
转载 由JSESSIONID谈cookie与SESSION的区别和联系
<br /><br />由JSESSIONID谈cookie与SESSION的区别和联系 <br /><br /> 在一些投票之类的场合,我们往往因为公平的原则要求每人只能投一票,在一些WEB开发中也有类似的情况,这时候我们通常会使用COOKIE来实现,例如如下的代码:<br /> < % cookie[]cookies = request.getCookies();<br /> if (cookies.lenght == 0 || cookies == null){<br />
2010-09-28 11:20:00
1577
转载 HashTable详解
<br /> Hashtables提供了一个很有用的方法可以使应用程序的性能达到最佳。 <br /> Hashtables(哈希表)在计算机领域中已不是一个新概念了。它们是用来加快计算机的处理速度的,用当今的标准来处理,速度非常慢,而它们可以让你在查询许多数据条目时,很快地找到一个特殊的条目。尽管现代的机器速度已快了几千倍,但是为了得到应用程序的最佳性能,hashtables仍然是个很有用的方法。 <br /><br /> 设想一下,你有一个包含约一千条记录的数据文件,比如一个小企业的客户记录,还
2010-09-06 00:02:00
2634
转载 ConcurrentHashMap之实现细节
<br /><br />ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之后,我觉得必须深入研究它的实现。面试中被问到读是否要加锁,因为读写会发生冲突,我说必须要加锁,我和面试官也因此发生了冲突,结果可想而知。还是闲话少说,通过仔细阅读源代码,现在总算理解ConcurrentHashMap实现机制了,其实现之精巧,令人叹服,
2010-09-04 23:42:00
1438
转载 HashMap深度分析
<br />java.util.HashMap是很常见的类,前段时间公司系统由于对HashMap使用不当,导致cpu百分之百,在并发环境下使用HashMap 而没有做同步,可能会引起死循环,关于这一点,sun的官方网站上已有阐述,这并非是bug。<br /><br />HashMap的数据结构<br /> HashMap主要是用数组来存储数据的,我们都知道它会对key进行哈希运算,哈系运算会有重复的哈希值,对于哈希值的冲突,HashMap采用链表来解决的。在HashMap里有这样的一
2010-09-04 22:47:00
1000
1
转载 深入理解JVM
<br /><br />1 Java技术与Java虚拟机<br />说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成: Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:<br /><br />图1 Java四个方面的关系<br />运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件)。最后字节码被装入内存, 一旦字节码进入虚
2010-09-02 21:46:00
731
转载 Quartz CronTrigger最完整配置说明
<br />CronTrigger配置格式:<br /><br />格式: [秒] [分] [小时] [日] [月] [周] [年]<br /><br /> 序号说明 <br /> 是否必填 允许填写的值允许的通配符 <br /> 1 秒 是 0-59 , - * / 2 分 是 0-59 <br /> , - * / 3小时 是 0-23 , - * / 4 日 是 1-31 , - * ? / L W 5 月 是 1-12 or JAN-DEC , - * / 6 周 是 1-7 or SU
2010-08-30 11:21:00
1258
转载 Hudson+Sonar
<br />安装步骤 ======================== 1. 下载hudson.war然后把它部署在jboss下面wget -c http://hudson-ci.org/latest/hudson.war 2. 启动jboss 3. 输入http://ip:8080/hudson进入hudson,配置jdk,maven参数 4. 下载sonar,然后解压。wget -c http://dist.sonar.codehaus.org/sonar-2.2.zip5. 安装mysql 创建一
2010-08-26 09:56:00
3346
2
转载 JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介
在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。一、简介线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit,BlockingQueue workQueue,RejectedExecutionHandler handler)co
2010-08-18 15:37:00
733
原创 编写自定义的PMD规则
<br /><br />前提:<br />1. 了解XPath:http://www.w3.org/TR/xpath<br />2. 对PMD 的实现原理有一定的了解<br />简单介绍一下pmd的实现原理:<br />Pmd利用javacc和EBNF文法产生一个分析器,用来分析java源代码(文本)。又在JavaCC的基础上加入了语义的概念也就是JJTree,这样就把java source转换成了一个抽象语法树(AST),AST是一个结构化的对象层次结构。我们可以用访问者模
2010-08-16 21:18:00
3701
转载 MySQL中的各种JOIN(CROSS JOIN, INNER JOIN, LEFT [OUTER]
<br />MySQL中的各种JOIN <br /><br />1. 笛卡尔积(交叉连接) <br />在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用’,’ <br />如 <br />SELECT * FROM table1 CROSS JOIN table2 <br />SELECT * FROM table1 JOIN table2 <br />SELECT * FROM table1,table2 <br /><br />由于其返回的结果为被连接的两个数据表的乘积,因
2010-08-16 15:47:00
12317
原创 mysql distinct 与 group by 的区别
<br />在数据表中记录了用户验证时使用的书目,现在想取出所有书目,用 DISTINCT和group by都取到了我想要的结果,但我发现返回结果排列不同,distinct会按数据存放顺序一条条显示,而group by会做个排序(一般是ASC)。<br /><br />DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别,同样可以通过松散索引扫描或
2010-08-16 15:24:00
1585
原创 linux 环境变量设置
<br /><br />在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量PATH的设置问题,而PATH的设置也是在linux下定制环境变量的一个组成部分。本文基于RedHat 9.0,详细讲解了环境变量定制的问题。<br />2、变量简介<br />Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境
2010-08-13 15:01:00
884
原创 setting文件配置
简介settings.xml文件中的settings元素包含了很多子元素,它们定义的值被用来配置Maven的执行情况。该settings文件的设置会被应用到很多个项目上,因此这里的设置不应该和任何一个特定的项目绑定,并且该设置的内容也不应该分发给它人。该文件定义的值包括本地仓库地址,候选的远程仓库仓库服务器,以及一些认证信息。settings.xml文件可位于两个地方:• Maven安装目录: $M2_HOME/conf/settings.xml• 用户特定的Settings文件: ~/.m2/settin
2010-08-10 17:28:00
5593
2
转载 Java 线程池的原理与实现
<br />最近在学习线程池、内存控制等关于提高程序运行性能方面的编程技术,在网上看到有一哥们写得不错,故和大家一起分享。<br /><br />[分享]Java 线程池的原理与实现<br /> <br />这几天主要是狂看源程序,在弥补了一些以前知识空白的同时,也学会了不少新的知识(比如 NIO),或者称为新技术吧。<br />线程池就是其中之一,一提到线程,我们会想到以前《操作系统》的生产者与消费者,信号量,同步控制等等。<br />一提到池,我们会想到数据库连接池,但是线程池又如何呢?<br /><b
2010-08-09 23:17:00
1311
原创 mave的依赖范围
compile(编译范围)compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath中可用,同时它们也会被打包。provided(已提供范围)provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用。例如,如果你开发了一个web应用,你可能在编译classpath中需要可用的Servlet API来编译一个servlet,但是你不会想要在打包好的WAR中包含这个Servlet API;这个Servlet API JAR由你的应用服务器或者
2010-08-04 23:49:00
17325
3
原创 maven核心,pom.xml详解
4.0.0 com.myproject.app myproject 1.0-SNAPSHOT myproject http://maven.apache.org D:/mavenworkspace/myproject/src/main/java src/main/scripts D:/mavenworkspace/myproject/src/test/java D:/mavenworkspace/myproject/target/
2010-08-04 17:00:00
252411
6
原创 maven常用命令集
创建maven项目命令:mvn archetype:generate列出所有可用的模板供选择并创建mvn dependency:analyze使用maven Dependency插件进行优化mvn dependency:resolve 已解决依赖的列表mvn dependency:tree 项目的整个依赖树mvn install -X 查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件(慎用,输出信息巨大)mvn scm:checkin -Dmessage="Message"提交mvn sc
2010-08-04 16:10:00
11349
原创 理解Java ClassLoader机制
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap classloader | extension classloader | system classloaderbootstrap classloader -引导(也称为原始)类加载器,它负责加载Ja
2010-05-14 15:24:00
1234
原创 JavaScript创建对象与构造函数的实现方法
function sayFirstName(){ alert(this.firstName.toUpperCase()); } function newClass(){ this.firstName="frank"; this.sayHello=function(){ alert("hello"); } } newClass.prototype.sayName=function(
2010-03-30 11:33:00
872
原创 Linux 中文乱码解决
修改 linux 系统/ect/profile 文件在最后面加 export LC_ALL="zh_CN.GB18030" 修改 /etc/sysconfig/i18n文件LANG="zh_CN.GB18030"LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_U
2009-12-31 13:47:00
859
原创 Ext.tree.ColumnTree 应用
HTML代码: 带复选框(checkbox)的树 <!--$(function() { var tree = new Ext.tree.ColumnTree({ width: 550, height: 300, rootVisible:false,
2009-10-19 11:12:00
5601
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人