JAVA
sdbany
I am who I am
展开
-
java里,enum对象的反射创建
Java 的 enum 是 singleton class (只能有一个 instance)。Java 通过编译器和 JVM 联手来防止enum 产生超过一个class:不能利用 new、clone()、de-serialization、以及 Reflection API 来产生enum 的 instance。 所以想通过反射来创建枚举型对象则需要其他途径:举个例子:public原创 2008-01-26 20:13:00 · 15099 阅读 · 2 评论 -
Java通讯框架介绍
Java通讯框架介绍 Java通讯框架,有时也被称为网络服务器,其实就是封装IO操作,并提供更高级的API接口。目前比较流行的框架就是:MINA、Cindy、QuickServer等。前段时间为了缩短开发时间,也在项目中加入了这些框架,从最开始使用QuickServer 1.4.7出现的报文接收不全异常;到用Cindy 2.4.4作为临时过渡,到最后确定使用MINA 1.0.1,也经历了一个艰辛而转载 2008-05-29 02:01:00 · 9938 阅读 · 0 评论 -
Grizzly与MINA比较
在《程序员》最新一期有个专题介绍java开源nio框架,其中谈到了mina和grizzly。mina我还算比较熟悉,写过一些代码,也尝试去读过源码。而grizzly是第一次听说,这个项目是sun的一个开源nio框架,是2004年在GlassFish项目中诞生的,一开始是一个http web server,用于取代Tomcat的Coyote Connector和Sun WebServer,20转载 2008-05-29 02:14:00 · 4357 阅读 · 0 评论 -
高性能的HTTP引擎—— Grizzly(二) Grizzly简介
Grizzly简介 正如前文所说,用Java技术来编写一个扩展性能很高的服务器软件是件很困难的事情。Java虚拟机的线程管理机制使得纯Java写的HTTP引擎很难响应成千上万的并发用户。正如Tomcat一样,在并发用户数不是很高的情况下能够获得很高的吞吐量,但是在高并发的情况下性能下降很快,变得不太稳定。 在JDK 1.4推出NIO之后,有很多基于NIO的框架出现,利用NIO的新特性,来编写高性能转载 2008-05-29 02:17:00 · 3087 阅读 · 0 评论 -
Apache MINA 项目介绍
Apache MINA是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可靠性的网络应用程序。它提供了一个通过Java NIO在不同的传输例如TCP/IP和UDP/IP上抽象的事件驱动的异步API。 Apache MINA 也称为: ● NIO 框架库 ● 客户端服务器框架库 ● 一个网络套接字库 MINA虽然简单但是仍然提供了全功能的网络应用程序框架: ● 为不同的传输转载 2008-05-29 02:29:00 · 1987 阅读 · 0 评论 -
Apache Mina 与 Openfire 不得不说的故事
关注 Apache Mina 已经有些时日了,也用 Mina 做了不少实验,尤其喜欢其简洁优雅的接口以及对 Spring 和 JMX 的良好集成。简而言之, Mina 是一个高性能的 Java 异步网络通讯框架。当前已有多个开源项目使用 Mina 构建底层 I/O 设施,或是正将底层 I/O 设施转用 Mina 实现。对于后者,据传多半会有大幅的性能提升,比较典型的一个例子是开源 XMPP 服务器转载 2008-05-29 02:30:00 · 1432 阅读 · 0 评论 -
Apache MINA 应用进阶
作者:终南 li.zhongnan@hotmail.com> 1。MINA 框架简介下图为本人根据对MINA的简要理解,所画出来的框架简图:当客户首次访问采用MINA编写的程序时,IoAcceptor作为线程运行,负责接受来自客户的请求。当有客户请求连接时,创建一个Session,该Session与IoProcessor、SocketChannel以及IOS转载 2008-05-29 02:39:00 · 899 阅读 · 0 评论 -
NIO服务器框架(MINA、CXF、Mule、JBoss/Geronimo,Grizzly,Cindy)
作者:江南白衣,原文地址:http://blog.csdn.net/calvinxiu/archive/2007/04/28/1588852.aspx,版权所有,转载请保留。假如冬夜,一个旅人,要开发一个美好的Java后台服务器。所谓美好,就是要高性能,千万级的用户;高可靠性,failover虽死犹生;高扩展性,跟周围那帮Tuxedo,IBM MQ,WebService的邻居要好好打交道。这是个毫转载 2008-05-29 01:52:00 · 5780 阅读 · 0 评论 -
grizzly精要
NIO的框架玩的不少,mina, jproactor, 不久前也耍了耍Grizzly. Grizzly的主开发是Jean-Francois Arcand, 挺厉害的. 从此人blog中可见一斑. 以下是其的blog链接: http://weblogs.java.net/blog/jfarcand/archive/2005/06/grizzly_an_http.html Grizzlly grizz转载 2008-05-29 02:26:00 · 3720 阅读 · 5 评论 -
Apache MINA 从1.x到2.x的一些改变
在Apache MINA 2.x中提供了新的API,并且有一部分不能向前兼容,这主要是一些处理复杂的部分,这里只介绍一下不兼容的内容,因为大部分还是兼容的。1 ThreadModel已经被移除ThreadModel最初是为了简化应用预定义的线程模型到IoService的处理的。然而,配置线程模型因为简单而引入很多构造来,这样其产生的混乱多于其易用性了,所以移除。2 IoService配转载 2008-05-29 02:34:00 · 1286 阅读 · 0 评论 -
Hibernate使用自己设定的应用层缓存时,一些优化操作
自己实现的应用层缓存,效率高,但提交更新时,都要把全部数据更新到数据库,很耗资源。改良如下:1、充分使用Hibernate的脏数据检查功能,这样只会更新被修改了的数据字段,大大减少提交到数据库的流量。在数据修改之前,从自己设计的缓存中PO重新关联到session里,把PO从脱管状转换为持久状,这样才能使用Hibernate的脏数据功能。语句为:session.lock(Object,LockM原创 2008-05-09 16:43:00 · 674 阅读 · 0 评论 -
Hibernate的Batch update returned unexpected row count from update错误
运行Hibernate时,有时会出现Batch update returned unexpected row count from update的异常。主要是因为处理的对象存在级联关系,如一对多、多对多。此时从数据库读取对象时,不加事务管理,有时就会抛出这个异常。解决的方法也很简单,在操作PO时加上事务,不论是读取还是保存更新原创 2008-05-09 16:31:00 · 1089 阅读 · 0 评论 -
Hibernate性能优化1
本文依照HIBERNATE帮助文档,一些网络书籍及项目经验整理而成,只提供要点和思路,具体做法可以留言探讨,或是找一些更详细更有针对性的资料。 初用HIBERNATE的人也许都遇到过性能问题,实现同一功能,用HIBERNATE与用JDBC性能相差十几倍很正常,如果不及早调整,很可能影响整个项目的进度。 大体上,对于HIBERNATE性能调优的主要考虑点如下: ? 数据库设计调整转载 2008-04-13 11:44:00 · 719 阅读 · 2 评论 -
千万级的数据库
千万级的数据库设计有什么注意?一个用户表有千万个记录,但活跃用户不到十万个,怎么样可以加快活跃用户的速度?个人想法,通过缓存表或临时表来实现,只把用户表的活跃用户映射到缓存表或临时表,这样速度会得到加速。原创 2007-12-09 00:23:00 · 874 阅读 · 0 评论 -
JAVA线程相关
以下程序运行,会输出什么?public class TestThread {public static void main(String[] args) { Mythread mt=new Mythread(); MyRunable mr=new MyRunable(); Thread thread=new Thread(mr); mt.start(); thread.原创 2007-12-09 00:26:00 · 503 阅读 · 0 评论 -
如何避免SQL注入漏洞
使用String来拼装SQL语句,会容易产生注入漏洞。而使用参数来传递SQL参数值,则可以避免注入漏洞,这个和用什么工具框架没有关系。在JAVA里,可以使用preparedStatement来避免的:PreparedStatement pstmtDelete = conn.prepareStatement( "DELETE FROM student WHERE stu_id>=?");原创 2007-12-09 00:20:00 · 2974 阅读 · 0 评论 -
Java单例注意事项
单例,顾名思义是一个类只能有一个实例对象。跟普通类有所不同: 必须有一个或以上的private构造函数,不能有public的构造函数。这样才能保证不能在外面通过new生成一个对象。 实例对象的建立是在类内部建立,内部实例对象应该是静态的(static)。 所以应该有一个获取实例对象的公开(public)方法(如getInstance()),并保证实例对象不重复原创 2007-12-19 11:41:00 · 840 阅读 · 0 评论 -
在 Eclipse 3.1 中体验 J2SE 5.0 的新特性: 第三部分 :范型
邹青 (qingzou@cn.ibm.com), 软件工程师, IBM 中国软件开发中心普及运算部门吴嫣 (wuyan@cn.ibm.com), 软件工程师, IBM 中国软件开发中心普及运算部门吴疆 (wujiangj@cn.ibm.com), 软件工程师, IBM 中国软件开发中心普及运算部门2005 年 7 月 01 日本文将介绍J2SE 5.0中三个比较重要的特性: 枚举类型, 注转载 2007-12-19 11:30:00 · 754 阅读 · 0 评论 -
Hibernate的游离态与持久态转换
在Hibernate中,一个PO可能经过长时间的操作,session已过时关闭,此时PO已经是一个游离态的对象,这时要转换为持久战态,有以下几种方法:1、session.saveOrUpdate(object)。这语句会把游离态的PO转为持久态的PO并提交给数据库2、session.merge(object)。这语句会把游离态的PO转为持久态的PO,并进行合并操作。3、session.原创 2008-04-07 17:00:00 · 7523 阅读 · 0 评论 -
Java性能的优化(上)
黄伟峰Java在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评。赢得的赞叹主要是Java的跨平台的操作性,即所谓的”Write Once,Run Anywhere”.但由于Java的性能和运行效率同C相比,仍然有很大的差距,从而引来了很多的批评。 对于服务器端的应用程序,由于不大涉及到界面设计和程序的频繁重启,Java的性能转载 2008-04-12 22:54:00 · 491 阅读 · 0 评论 -
Java性能的优化(下)
黄伟峰三.优化JAVA程序设计和编码,提高JAVA程序性能的一些方法。 通过使用一些前面介绍过的辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。一般有两种方案:即优化代码或更改设计方法。我们一般会选 择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。转载 2008-04-12 22:56:00 · 478 阅读 · 0 评论 -
Hibernate的二级缓存
与Session相对的是,SessionFactory也提供了相应的缓存机制。SessionFactory缓存可以依据功能和目的的不同而划分为内置缓存和外置缓存。 SessionFactory的内置缓存中存放了映射元数据和预定义SQL语句,映射元数据是映射文件中数据的副本,而预定义SQL语句是在Hibernate初始化阶段根据映射元数据推导出来的。SessionFac转载 2008-04-13 14:12:00 · 2500 阅读 · 0 评论 -
JAVA层次结构开发
JAVA层次结构开发 一、包的层次结构清晰例如包的结构如下:Com.mfinder.search.promotion 二、包的层次结构要清晰1、 ACTION表示层。用来做一个控制器,不出现业务逻辑,只是把前台的参数传到后台的SERVICE业务逻辑层去,逻辑由后台去做,实现MVC的分层2、 SERVICE业务逻辑层。对外提供服务的业务层,往往会调度若干DAO类完原创 2008-06-20 01:27:00 · 2245 阅读 · 0 评论