构建高性能J2EE应用的10个技巧

视觉·编程 No Comments »

来源:97xxoo教程网

构建高性能的J2EE应用不但需要了解常用的实施技巧。下面介绍最常用的10种有效方法,可帮助架构设计师们快速成为这方面的专家。

Java性能的基础—-内存治理

任何Java应用,单机的或J2EE的性能基础都可归结到你的应用是如何治理内存的问题。Java的内存治理包括两个重要任务:内存的分配和内存的回收。在内存的分配中,目标是要减少需要创建的对象。内存回收是导致性能下降的普遍原因。也就是说,内存中的对象越多,垃圾回收越困难。所以我们对创建对象的态度应该越保守越好。

在J2EE应用中常见的两个内存有关的问题是:游离的对象(也被称为内存泄露)和对象循环(指大量频繁创建和删除-在Java中体现为解除引用—对象)。
Read the rest of this entry »

Java编程思想 附录A 使用非JAVA代码

视觉·编程 No Comments »

返回目录

JAVA语言及其标准API(应用程序编程接口)应付应用程序的编写已绰绰有余。但在某些情况下,还是必须使用非JAVA编码。例如,我们有时要访问操作系统的专用特性,与特殊的硬件设备打交道,重复使用现有的非Java接口,或者要使用“对时间敏感”的代码段,等等。与非Java代码的沟通要求获得编译器和“虚拟机”的专门支持,并需附加的工具将Java代码映射成非Java代码(也有一个简单方法:在第15章的“一个Web应用”小节中,有个例子解释了如何利用标准输入输出同非Java代码连接)。目前,不同的开发商为我们提供了不同的方案:Java 1.1有“Java固有接口”(Java Native Interface,JNI),网景提出了自己的“Java运行期接口”(Java Runtime Interface)计划,而微软提供了J/Direct、“本源接口”(Raw Native Interface,RNI)以及Java/COM集成方案。
各开发商在这个问题上所持的不同态度对程序员是非常不利的。若Java应用必须调用固有方法,则程序员或许要实现固有方法的不同版本——具体由应用程序运行的平台决定。程序员也许实际需要不同版本的Java代码,以及不同的Java虚拟机。
另一个方案是CORBA(通用对象请求代理结构),这是由OMG(对象管理组,一家非赢利性的公司协会)开发的一种集成技术。CORBA并非任何语言的一部分,只是实现通用通信总线及服务的一种规范。利用它可在由不同语言实现的对象之间实现“相互操作”的能力。这种通信总线的名字叫作ORB(对象请求代理),是由其他开发商实现的一种产品,但并不属于Java语言规范的一部分。
本附录将对JNI,J/DIRECT,RNI,JAVA/COM集成和CORBA进行概述。但不会作更深层次的探讨,甚至有时还假定读者已对相关的概念和技术有了一定程度的认识。但到最后,大家应该能够自行比较不同的方法,并根据自己要解决的问题挑选出最恰当的一种。
Read the rest of this entry »

Java编程思想 第15章 网络编程

视觉·编程 No Comments »

返回目录

历史上的网络编程都倾向于困难、复杂,而且极易出错。
程序员必须掌握与网络有关的大量细节,有时甚至要对硬件有深刻的认识。一般地,我们需要理解连网协议中不同的“层”(Layer)。而且对于每个连网库,一般都包含了数量众多的函数,分别涉及信息块的连接、打包和拆包;这些块的来回运输;以及握手等等。这是一项令人痛苦的工作。
但是,连网本身的概念并不是很难。我们想获得位于其他地方某台机器上的信息,并把它们移到这儿;或者相反。这与读写文件非常相似,只是文件存在于远程机器上,而且远程机器有权决定如何处理我们请求或者发送的数据。
Java最出色的一个地方就是它的“无痛苦连网”概念。有关连网的基层细节已被尽可能地提取出去,并隐藏在JVM以及Java的本机安装系统里进行控制。我们使用的编程模型是一个文件的模型;事实上,网络连接(一个“套接字”)已被封装到系统对象里,所以可象对其他数据流那样采用同样的方法调用。除此以外,在我们处理另一个连网问题——同时控制多个网络连接——的时候,Java内建的多线程机制也是十分方便的。
本章将用一系列易懂的例子解释Java的连网支持。
Read the rest of this entry »

Java编程思想 第8章 对象的容纳

视觉·编程 No Comments »

返回目录

“如果一个程序只含有数量固定的对象,而且已知它们的存在时间,那么这个程序可以说是相当简单的。”

通常,我们的程序需要根据程序运行时才知道的一些标准创建新对象。若非程序正式运行,否则我们根本不知道自己到底需要多少数量的对象,甚至不知道它们的准确类型。为了满足常规编程的需要,我们要求能在任何时候、任何地点创建任意数量的对象。所以不可依赖一个已命名的句柄来容纳自己的每一个对象,就象下面这样:

MyObject myHandle;

因为根本不知道自己实际需要多少这样的东西。
为解决这个非常关键的问题,Java提供了容纳对象(或者对象的句柄)的多种方式。其中内建的类型是数组,我们之前已讨论过它,本章准备加深大家对它的认识。此外,Java的工具(实用程序)库提供了一些“集合类”(亦称作“容器类”,但该术语已由AWT使用,所以这里仍采用“集合”这一称呼)。利用这些集合类,我们可以容纳乃至操纵自己的对象。本章的剩余部分会就此进行详细讨论。
Read the rest of this entry »

J2EE技术简单介绍

视觉·编程 No Comments »

java2的企业版是一系列中间件服务组合起来的强健的系统,这使得服务器方应用程序开发人员的工作非常简单。j2ee包括的技术如下:

Enterprise JavaBeans (EJB)
EJB定义了服务器方组件编写的规则和,同时定义了如何管理组件和应用程序以及他们之间如何通信。EJB促进了组件交易市场的发展,在这里,组件提供商可以出售可重用的组件。

Java Remote Method Invocation (RMI) and RMI-IIOP
RMI允许内部通信并且提供和其他服务通信的能力。RMI-IIOP是使用IIOP协议的RMI的精简扩充,可以和corba整合在一起。

Java Naming and Directory Interface (JNDI)
JNDI鉴别组件或者其他网络资源的位置。
Read the rest of this entry »

Q网志 , powered by 七十二松 (72pines). WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS 登录