将Flex集成到Java EE应用程序的最佳实践
构建高性能的J2EE应用不但需要了解常用的实施技巧。下面介绍最常用的10种有效方法,可帮助架构设计师们快速成为这方面的专家。
Java性能的基础—内存管理
任何Java应用,单机的或J2EE的性能基础都可归结到你的应用是如何管理内存的问题。Java的内存管理包括两个重要任务:内存的分配和内存的回收。在内存的分配中,目标是要减少需要创建的对象。
内存回收是导致性能下降的普遍原因。也就是说,内存中的对象越多,垃圾回收越困难。所以我们对创建对象的态度应该越保守越好。
在J2EE应用中常见的两个内存有关的问题是:游离的对象(也被称为内存泄露)和对象循环(指大量频繁创建和删除-在Java中体现为解除引用—对象)。
我们应注意确保所有可到达的对象实际是活的,即这些对象不但在内存中,而且也要在执行的代码中是存在的。当对象在应用中已经没有用了,而我们却忘记了删除对该对象的引用时,游离的对象就出现了。
我们知道垃圾回收会占用CPU时间。短期对象的大量创建增加了垃圾回收的频率会造成性能下降。
不要在Servlet中实现业务逻辑
在构建J2EE应用时,架构工程师通常会使用到J2EE的基本部分——Servlet。如果架构师不使用Session Beans,
Entity Beans, 或 Message Beans,
那么改进性能的方法就很少。只能采用增加CPU或更多的物理服务器等方法。EJB使用了缓存(cache)和资源池等方法可以提高性能和扩展性。
尽可能使用本地接口访问EJB
在早期的J2EE
(遵循EJB1.X规范)应用中,访问EJB是`通过RMI使用远程接口实现的。随着EJB2.0的出现,可以通过本地接口访问EJB,不再使用RMI,
在同一个JVM中使用远程方法已经少多了。但是现在还是有一些使用EJB1.X实现的应用和不知道使用本地接口的一些EJB新手。为说明这点,我们作个比
较:
1、客户端应用调用本地Stub
2、该Stub装配参数
3、该Stub传到skeleton
4、该skeleton分解参数
5、该skeleton调用EJB对象
6、EJB对象执行容器服务
7、EJB对象调用企业BEAN实例
8、企业BEA执行操作
9、执行组装/分解步骤然后返回
与远程接口处理相比较,本地接口的EJB方法是:
1、客户端调用本地对象
2、本地对象执行容器服务
3、本地对象调用企业Bean实例
4、企业Bean实例执行操作
5、没有其他返回步骤!
如果你不需要从远程的客户端访问一个特殊EJB,就应该使用本地方法。
在实现Session Bean的服务中封装对实体EJB的访问
从Servlet访问实体EJB不但效率低而且难
相关文档:
Java学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
<?xml version="1.0" encoding="utf-8"?>
<!-- Simple example to demonstrate the DateTimeAxis class. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
import mx.collections.ArrayCollection;
......
StringBuffer也是字符串,与String不同的是StringBuffer对象创建完之后可以修改内容。有如下构造函数:
n public StringBuffer(int);
n public StringBuffer(String);
n ......
String是比较特殊的数据类型,它不属于基本数据类型,但是可以和使用基本数据类型一样直接赋值,不使用new关键字进行实例化。也可以像其他类型一样使用关键字new进行实例化。下面的代码都是合法的:
String s1 = "this is a string!";
String s2 = new String("this is another string!");
另 ......