Eclipse 【Java开源 开发工具】
Eclipse平台是IBM向开发源码社区捐赠的开发框架,它之所以出名并不是因为IBM宣称投入开发的资金总数 —4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构。
CubicTest 【Java开源 Web测试工具】
CubicTest这个开源的Eclipse插件能够让Web应用程序的测试变得更加易于设计,理解和运行,即使是对于非技术人员。 CubicTest采用一个图形用户界面来让用户对测试进行建模而不是编写测试脚本。 这个工具主要是针对基于测试驱动的Web应用程序开发,但也能够用于测试现有Web应用程序。
Execute Query 【Java开源 数据库管理工具】
Execute Query一个开源的数据库管理工具,具有:查询编辑器,数据库浏览器,生成ERD,比较数据类型,创建表格,创建索引,生成SQL脚本,导入/导出数据,导入/导出XML数据,连接管理等功能。
MockCentral 【Java开源 测试工具】
MockCentral提供一种利用mock对象进行测试的新方式。它把mock对象定义在测试代码之外的XML文件中并允许开发人员创建,访问这些mock对象,这能够让测试案例变得简洁并有利于组织和复用mock对象。
Janissary 【Java开源 Web测试工具】
Janissary在是一个简单的Web站点负载与性能测试工具。根据配置,Janissary可以创建并发或非并发的HTTP Request然后报告这些Request的状态与响应时间。
JUnit 【Java开源 测试工具】
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
BlueJ 【Java开源 开发工具】
BlueJ是一个专门为入门级教学设计的JavaTM 开发环境。它是由澳大利亚墨尔本Monash大学BlueJ小组设计并开发的。
log4javascript 【Java开源 日记工具】
log4javascript是一个基于log4j的JavaScript日记框架。
STclass 【Java开源 测试工具】
STclass是一个基于Contract(由于B. Meyer在Design by Contract:合约设计方式中定义)的单元测试框架,它是JUnit的一个克隆,但是可与JUnit相匹敌。该框架能够把测试结果生成XML的报表格式,然后加工处理成漂亮的HTML报表。STclass集成JIP剖析器,可以在测试期间进行statisitic与 profiling分析,并把结果加到HTML报表中。
B. 请问用Java代码,怎样测试一段程序占用了多少内存
/*计算某一段程序消耗的内存和时间*/
Runtime r = Runtime.getRuntime();
r.gc();//计算内存前先垃圾回收一次
long start = System.currentTimeMillis();//开始Time
long startMem = r.freeMemory(); // 开始Memory
GBSort(array,1,len);//!!!!!被测的程序!!!!!
long endMem =r.freeMemory(); // 末尾Memory
long end = System.currentTimeMillis();//末尾Time
//输出
System.out.println("TimeCost: "+String.valueOf(end - start)+"ms");
System.out.println("MemoryCost: "+String.valueOf((startMem- endMem))+"KB");
C. 请问怎么测试一个java程序占用的内存和cpu消耗
只能查看JAVA 虚拟机占用的内存Runtime.getRuntime().maxMemory() 返回 Java 虚拟机试图使用的最大内存量。Runtime.getRuntime().freeMemory() 返回 Java 虚拟机中的空闲内存量。Runtime.getRuntime().totalMemory() 返回 Java 虚拟机中的内存总量。
D. 用Java怎么测试一个对象所占的内存的大小
这是一个测试的方法,参考网上的,具体可以看提供给你的网址
package com;
public class Sizeof {
public static void main(String[] args) throws Exception {
// Warm up all classes/methods we will use
runGC();
usedMemory();
// Array to keep strong references to allocated objects
final int count = 100000;
Object[] objects = new Object[count];
long heap1 = 0;
// Allocate count+1 objects, discard the first one
for (int i = -1; i < count; ++i) {
Object object = null;
// Instantiate your data here and assign it to object
object = new Object();
// object = new Integer (i);
// object = new Long (i);
// object = new String ();
// object = new byte [128][1]
if (i >= 0)
objects[i] = object;
else {
object = null; // Discard the warm up object
runGC();
heap1 = usedMemory(); // Take a before heap snapshot
}
}
runGC();
long heap2 = usedMemory(); // Take an after heap snapshot:
final int size = Math.round(((float) (heap2 - heap1)) / count);
System.out.println("'before' heap: " + heap1 + ", 'after' heap: "
+ heap2);
System.out.println("heap delta: " + (heap2 - heap1) + ", {"
+ objects[0].getClass() + "} size = " + size + " bytes");
for (int i = 0; i < count; ++i)
objects[i] = null;
objects = null;
}
private static void runGC() throws Exception {
// It helps to call Runtime.gc()
// using several method calls:
for (int r = 0; r < 4; ++r)
_runGC();
}
private static void _runGC() throws Exception {
long usedMem1 = usedMemory(), usedMem2 = Long.MAX_VALUE;
for (int i = 0; (usedMem1 < usedMem2) && (i < 500); ++i) {
s_runtime.runFinalization();
s_runtime.gc();
Thread.currentThread().yield();
usedMem2 = usedMem1;
usedMem1 = usedMemory();
}
}
private static long usedMemory() {
return s_runtime.totalMemory() - s_runtime.freeMemory();
}
private static final Runtime s_runtime = Runtime.getRuntime();
}
E. 常见的十五种Java开发工具是什么,有什么特点
1、JDK (Java Development Kit)Java开发工具集
从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。JDK的另一个显著特点是随着Java (J2EE、J2SE以及J2ME)版本的升级而升级。但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。
2、Java Workshop
3、NetBeans 与Sun Java Studio 5
NetBeans是开放源码的Java集成开发环境(IDE),适用于各种客户机和Web应用。
Sun Java Studio是Sun公司最新发布的商用全功能Java IDE,支持Solaris、Linux和Windows平台,适于创建和部署2层Java Web应用和n层J2EE应用的企业开发人员使用。
NetBeans是业界第一款支持创新型Java开发的开放源码IDE。开发人员可以利用业界强大的开发工具来构建桌面、Web或移动应用。同时,通过NetBeans和开放的API的模块化结构,第三方能够非常轻松地扩展或集成NetBeans平台。
NetBeans3.5.1主要针对一般Java软件的开发者,而Java One Studio5则主要针对企业做网络服务等应用的开发者。Sun不久还将推出Project Rave,其目标是帮助企业的开发者进行软件开发。NetBeans 3.5.1版本与其他开发工具相比,最大区别在于不仅能够开发各种台式机上的应用,而且可以用来开发网络服务方面的应用,可以开发基于J2ME的移动设备上的应用等。在NetBeans 3.5.1基础上,Sun开发出了JavaOne Studio5,为用户提供了一个更加先进的企业编程环境。在新的JavaOne Studio5里有一个应用框架,开发者可以利用这些模块快速开发自己在网络服务方面的各种应用程序。
4、Borland 的JBuilder
Jbuilder进入了Java集成开发环境的王国,它满足很多方面的应用,尤其是对于服务器方以及EJB开发者们来说。下面简单介绍一下Jbuilder的特点:
1)Jbuilder支持最新的Java技术,包括Applets、JSP/Servlets、JavaBean以及EJB(Enterprise JavaBeans)的应用。
2)用户可以自动地生成基于后端数据库表的EJB Java类,Jbuilder同时还简化了EJB的自动部署功能.此外它还支持CORBA,相应的向导程序有助于用户全面地管理IDL(分布应用程序所必需的接口定义语言Interface Definition Language)和控制远程对象。
3)Jbuilder支持各种应用服务器。Jbuilder与Inprise Application Server紧密集成,同时支持WebLogic erver,支持EJB 1.1和EJB 2.0,可以快速开发J2EE的电子商务应用。
4)Jbuilder能用Servlet和JSP开发和调试动态Web 应用。
5)利用Jbuilder可创建(没有专有代码和标记)纯Java2应用。由于Jbuilder是用纯Java语言编写的,其代码不含任何专属代码和标记,它支持最新的Java标准。
6)Jbuilder拥有专业化的图形调试介面,支持远程调试和多线程调试,调试器支持各种JDK版本,包括J2ME/J2SE/J2EE。
JBuilder环境开发程序方便,它是纯的Java 开发环境,适合企业的J2EE开发;缺点是往往一开始人们难于把握整个程序各部分之间的关系,对机器的硬件要求较高,比较吃内存,这时运行速度显得较慢。
5、Oracle 的JDeveloper
oracle9i JDeveloper(定为9.0版,最新为10g)为构建具有J2EE功能,XML和Webservices的复杂的,多层的Java应用程序提供了一个完全集成的开发环境。它为运用Oracle9i数据库和应用服务器的开发人员提供特殊的功能和增强性能,除此以外,它也有资格成为用于多种用途Java开发的一个强大的工具。
oracle9i JDeveloper的主要特点如下:
① 具有UML(Unified Modeling Language,一体化建模语言)建模功能。可以将业务对象及e-business应用模型化。
② 配备有高速Java调试器(Debuger)、内置Profiling工具、提高代码质量的工具“CodeCoach”等。
③ 支持SOAP(Simple Object Access Protocol)“简单对象访问协议”、UDDI(Universal Description, Discovery and Integration)“统一描述、发现和集成协议”、WSDL(Web Services Description Language)“WEB服务描述语言”等Web服务标准。
JDeveloper 不仅仅是很好的 Java 编程工具,而且是 oracle Web 服务的延伸,支持 Apache SOAP,以及 9iAS ,可扩充的环境和 XML 和 WSDL 语言紧密相关。Oracle9iJdeveloper完全利用Java编写,能够与以前的Oracle服务器软件以及其他厂商支持J2EE的应用服务器产品相兼容,而且在设计时着重针对Oracle9i,能够无缝化跨平台之间的应用开发,提供了业界第一个完整的、集成了J2EE和XML的开发环境,允许开发者快速开
发可以通过Web、无线设备及语音界面访问的Web服务和交易应用,以往只能通过将传统Java编程技巧与最新模块化方式结合到一个单一集成的开发环境中之后才能完成J2EE应用开发生命周期管理的事实,从根本上得到改变。缺点就是对于初学者来说,较复杂,也比较难。
6、IBM的Visual Age for Java
Visual Age for Java是一个非常成熟的开发工具,它的特性以于IT开发者和业余的Java编程人员来说都是非常用有用的。它提供对可视化编程的广泛支持,支持利用CICS连接遗传大型机应用,支持EJB的开发应用,支持与Websphere的集成开发,方便的bean创建和良好的快速应用开发(RAD)支持和无文件式的文件处理。
IBM为建设Web站点所推出的WebSphere Studio Advanced Edition及其包含的VisualAge for Java Professional Edition软件已全面转向以Java为中心,这样,Java开发人员对WebSphere全套工具的感觉或许会好了许多。Studio所提供的工具有:Web站点管理、快速开发 JDBC页向导程序、HTML编辑器和HTML语法检查等。这确实是个不错的HTML站点页面编辑环境。Studio和VisualAge集成度很高,菜单中提供了在两种软件包之间快速移动代码的选项。这就让使用Studio的Web页面设计人员和使用VisualAge的Java程序员可以相互交换文件、协同工作。
Visual Age for Java支持团队开发,内置的代码库可以自动地根据用户做出改动而修改程序代码,这样就可以很方便地将目前代码和早期版本做出比较。与Visual Age紧密结合的Websphere Studio本身并不提供源代码和版本管理的支持,它只是包含了一个内置文件锁定系统,当编辑项目的时候可以防止其他人对这些文件的错误修改,软件还支持诸如Microsoft Visual SourceSafe这样的第三方源代码控制系统。Visual Age forJava完全面向对象的程序设计思想使得开发程序非常快速、高效。你可以不编写任何代码就可以设计出一个典型的应用程序框架。Visual Age for Java作为IBM电子商务解决方案其中产品之一,可以无缝地与其他IBM产品,如WebSphere、DB2融合, 迅速完成从设计、开发到部署应用的整个过程。
Visual Age for Java独特的管理文件方式使其集成外部工具非常困难,你无法让Visual Age for Java与其他工具一起联合开发应用。
7、BEA 的 WebLogic Workshop
BEA WebLogic Workshop是一个统一、简化、可扩展的开发环境,使所有的开发人员都能在 BEA WebLogic Enterprise Platform之上构建基于标准的企业级应用,从而提高了开发部门的生产力水平,加快了价值的实现。
WebLogic Workshop除了提供便捷的Web服务之外,它能够用于创建更多种类的应用。作为整个BEA WebLogic Platform的开发环境。不管是创建门户应用、编写工作流、还是创建Web应用,Workshop 8.1都可以帮助开发人员更快更好地完成。
WebLogic Workshop的主要特点如下:
① 使 J2EE 开发切实可行,提高开发效率
BEA WebLogic Workshop 使开发人员远离 J2EE 内在的复杂性,集中精力专注业务逻辑,无须操心单调乏味的基础结构代码。这种创新意味着,已被企业验证的 J2EE 的强大功能,最终被大多数不熟悉 Java 和 J2EE 的应用开发人员所掌握,从而使 IT 部门的工作效率提高一个数量级。
可视化设计器以及直观的概念,如事件、属性和控件等,实现了基于事件的开发。Workshop 简化的程序设计模型,使开发人员不必掌握复杂的 J2EE API 和面向对象的程序设计原理。所有开发人员,包括 J2EE 专家和具有可视化和过程化语言技能的应用开发人员在内,都可以共同工作在 BEA WebLogic Enterprise Platform 之上。Workshop的可视化开发环境,创建带有代码注释的标准 Java 文件,用来说明由运行时框架实施的企业级需求。J2EE 和其他高级开发人员,借助功能强大的代码编辑功能,可以访问Java 源代码,从而弥补了可视化设计器的不足。
② 构建企业级应用
通过在可伸缩、安全可靠的企业级架构上实施各种应用,BEA WebLogicWorkshop 大大降低了开发风险。而且,所有应用的创建都使用标准的 J2EE 组件,既保护了您的技术投资,又保持了最大的灵活性。
BEA WebLogic Workshop 运行框架,是统一整个架构的汇聚层,使单一、简化的程序设计模型扩展到所有的 BEA WebLogic Enterprise Platform 应用类型。通过解释设计时创建的注释代码,运行时框架可以实现必要的 J2EE 组件,并且提取出与 J2EE 应用开发有关的所有底层细节。
③ 降低 IT 复杂性
BEA WebLogic Workshop 提供各种 Java 控件,使得与 IT 资源的连接更轻而易举。另外,在构建任何 BEA WebLogic Platform 的应用中,Java 控件不仅可扩展而且完全相同。这种强大、有效的方法能够:降低 IT 技术的复杂性,优化信息的可用性,推动包含"最佳业务方案"的可重用服务的开发,使开发人员能以更低的成本、更短的时间实现更大的产出。
利用 BEA WebLogic Workshop,任何开发人员都能以最大的生产效率,构建各种Web 服务、Web 应用、门户和集成项目。BEA WebLogic Workshop是BEA的产品战略核心,它帮助客户接触和利用面向服务架构SOA)的强大功能。BEA Weblogic Workshop8.1极大简化了当前实际企业集成环境中企业级应用和服务的构建,并成为全面支持关键企业级应用(如异步、真正松耦合和粗粒度消息传送等)的自然选择。它的缺点就是过于复杂,对于初学者来说,理解起来较为困难。
8、WebGain 的Visual Cafe for Java
Visual Cafe 是只能在Symantec公司的Java虚拟机、Netscape公司的Java虚拟机和Microsoft虚拟机上工作的调试器。这对于开发者来讲是一个重要的特性,因为用户开发的Java代码中的许多软件bug就可能中会在某种特定的虚拟机上起作用。
在修改后进行编译基继续进行调试时,Visual Cafe会自动将文件存盘,使用VisualCafe创建的原生应用具有许多特点。除了明显的速度提高之外,Symantec使类库的二进制方式比正常的JDK小Visual Cafe为所指定的关系自动生成或更新必要的Java代码。利用Visual Cafe,用户可以从一个标准对象数据库中集合完整的Java应用程序和Applet,而不必再编写源代码。Visual Cafe还提供了一个扩充的源代码开发工具集。
Visual Cafe综合了Java软件的可视化源程序开发工具,它允许开发人员在可视化视图和源视图之间进行有效地转换。在可视化视图中进行的修改立即反映在源代码中。对源代码的改变自动更新可视化视图。
Visual Cafe具有许多源文件方面的特性,如全局检索和替换。绝大多数Java开发工具的文献的问题在于简单地挨个介绍开发工具的每部分组件,但用户在开应用时还需要一个面向任务的手册,利用这个手册你可以不必知道工具每一部分的特定功能就可以开始创建自己的应用。Visual Cafe提供了非常全面的用户指南,它对最开始的安装到创建第一个Java应用和Applet都提供了全面的帮助,Visual Cafe将自动生成所指明关系的必要Java代码。Visual Cafe可以在Windows 95和Windows NT平台下运行,Symantec公司为Java开发工作提供一个在Macintosh操作系统下可以运行的RAD工具。Visual Cafe编译器速度很快,在国际化支持方面比较突出;缺点就是对于初学者来说,较复杂,也比较难。
9、Macromedia的JRUN
Macromedia公司的JRun是一个具有最广阔适用性的Java引擎,用于开发及实施由Java Servlets和JavaServer Pages编写的服务器端Java应用。JRun是第一个完全支持JSP1.0 规格书的商业化产品,全球有超过80,000名开发人员使用JRun在他们已有的Web服务器上添加服务器端Java的功能。其中Web服务器包括了Microsoft IIS,Netscape Enterprise Server,Apache等。
JRun是开发实施服务器端Java的先进引擎。如果我们希望在我们的Web应用中添加服务器端Java功能,那么JRun将成为我们的正确选择。
JRun目前有3个版本,它是第一个支持Java Server Pages(JSP)规格书1.0的商业化产品。JSP是一种强大的服务器端技术,它是用于创建复杂Web应用的一整套快速应用开发系统。JRun可以使我们开始开发并测试Java应用。它最多接受5个并发的连接并且包括全部Java Servlet API,支持JavaServer Pages(JSP),支持所有主要的Web servers和计算机平台。 JRun Pro能够在生产环境下承受大访问量的负载,帮助我们实施应用、服务或Web站点(包括内联网)。JRun Pro 支持无限量并发式连接运行多个Java虚拟机,包括多个并发的Java虚拟机(JVM)。提供一个远程管理applet以及一个远程可再分布式的管理applet。JRun Pro Unlimited包括了所有JRun Pro的功能,除次以外,还可以运行无限量的,并发的JVM。
JRun依靠其内置的JRun Web Server可以单独运行。使用服务器端Java,用户可以开发出复杂的商业应用系统。最重要的一点是,由于servlets的平台独立性,以及更加简单的开发、更快速的实施、更经济的维护成本,它是CGI(Common Gateway Interface)或Perl scripts的极佳的替代产品。缺点就是对于初学者来说,较复杂,也比较难。
10、JCreator
JCreator 是一个Java程序开发工具,也是一个Java集成开发环境(IDE)。无论你是要开发Java应用程序或者网页上的Applet元件都难不倒它。在功能上与Sun公司所公布的JDK等文字模式开发工具相较之下来得容易,还允许使用者自订义操作窗口界面及无限Undo/Redo等功能。
JCreator为用户提供了相当强大的功能,例如项目管理功能,项目模板功能,可个性化设置语法高亮属性、行数、类浏览器、标签文档、多功能编绎器,向导功能以及完全可自定义的用户界面。通过JCreator,我们不用激活主文档而直接编绎或运行我们的JAVA程序。
JCreator能自动找到包含主函数的文件或包含Applet的Html文件,然后它会运行适当的工具。在JCreator中,我们可以通过一个批处理同时编绎多个项目。JCreator的设计接近Windows界面风格,用户对它的界面比较熟悉。其最大特点是与我们机器中所装的JDK完美结合,是其它任何一款IDE所不能比拟的。它是一种初学者很容易上手的java开发工具,缺点是只能进行简单的程序开发,不能进行企业J2EE的开发应用。
11、Microsoft VJ++
Visual J++ 是Microsoft 公司推出的可视化的Java 语言集成开发环境(IDE),为Java 编程人员提供了一个新的开发环境,是一个相当出色的开发工具。无论集成性、编译速度、调试功能、还是易学易用性,都体现了Microsoft 的一惯风格。Visual J++ 具有下面的特点:
1)Visual J++ 把Java 虚拟机(JVM)作为独立的操作系统组件放入Windows,使之从浏览器中独立出来。
2)Microsoft 的应用基本类库(AFC,Application Foundation Class Library)对SUN 公司的JDK 作了扩展,使应用基本类库更加适合在Windows 下使用。
3) Visual J++ 的调试器支持动态调试,包括单步执行、设置断点、观察变量数值等。
4) Visual J++ 提供了一些程序向导(Wizards)和生成器(Builders),它们可以方便地帮助用户快速地生成Java 程序,帮助你在自己的工程中创建和修改文件。
5) Visual J++ 界面友好,其代码编辑器具有智能感知、联机编译等功能,使程序编写十分方便。Visual J++ 中建立了Java 的WFC,这一新的应用程序框架能够直接访问Windows 应用程序接口(API),使你能够用Java 语言编写完全意义上的Windows 应用程序。
6)Visual J++ 中表单设计器的快速应用开发特性使用WFC 创建基于表单的应用程序变得轻松、简单。通过WFC 可以方便地使用ActiveX 数据对象(ADO,ActiveX Data Objects)来检索数据和执行简单数据的绑定。通过在表单设计器中使用ActiveX 数据对象,可以快速地在表单中访问和显示数据。
Visual J++能结合微软的一贯的编程风格,很方便进行Java 的应用开发,但它的移植性较差,不是纯的Java 开发环境。
12、Eclipse
Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。
Eclipse框架的这种灵活性来源于其扩展点。它们是在XML中定义的已知接口,并充当插件的耦合点。扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。
利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。
Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。Eclipse联盟已经宣布将在2004年中期发布其3.0版软件。这是一款非常受欢迎的java开发工具,这国内的用户越来越多,实际上实用它java开发人员是最多的。缺点就是较复杂,对初学者来说,理解起来比较困难。
13、Ant
Another Neat Tool(Ant)是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。因为Ant的原作者在多种(硬件)平台上开发软件时,无法忍受这些工具的限制和不便。类似于make的工具本质上是基于shell(语言)的:他们计算依赖关系,然后执行命令(这些命令与你在命令行敲的命令没太大区别)。这就意味着你可以很容易地通过使用OS特有的或编写新的(命令)程序扩展该工具;
然而,这也意味着你将自己限制在了特定的OS,或特定的OS类型上,如Unix。Ant就不同了。与基于shell命令的扩展模式不同,Ant用Java的类来扩展。(用户)不必编写shell命令,配置文件是基于XML的,通过调用target树,就可执行各种task。每个task由实现了一个实现了特定Task接口的对象来运行。
Ant支持一些可选task,一个可选task一般需要额外的库才能工作。可选task与Ant的内置task分开,单独打包。这个可选包可以从你下载Ant的同一个地方下载。ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除了基于JAVA是平台无关的外,脚本的格式是基于XML的,比make脚本来说还要好维护一些。Ant是Apache提供给Java开发人员的构建工具,它可以在Windows OS和Unix OS下运行,它不仅开放源码并且还是一个非常好用的工具。Ant是Apache Jakarta中一个很好用的Java开发工具,Ant配置文件采用XML文档编写,所以Java程序员对其语法相当熟悉,Ant是专用于Java项目平台,能够用纯Java来开发,它能够运行于Java安装的平台,即体现了它的跨平台功能。它的缺点显示执行结果只能是DOS字符界面,不能进行复杂的java程序开发。
14、IntelliJ
Intellij IDEA是一款综合的Java 编程环境,被许多开发人员和行业专家誉为市场上最好的IDE。它提供了一系列最实用的的工具组合:智能编码辅助和自动控制,支持J2EE,Ant,JUnit和CVS集成,非平行的编码检查和创新的GUI设计器。IDEA把Java开发人员从一些耗时的常规工作中解放出来,显著地提高了开发效率。具有运行更快速,生成更好的代码;持续的重新设计和日常编码变得更加简易,与其它工具的完美集成;很高的性价比等特点。在4.0版本中支持Generics,BEA WebLogic集成,改良的CVS集成以及GUI设计器。
IntelliJ IDEA能尽可能地促进程序员的编程速度。它包括了很多辅助的功能,并且与Java结合得相当好。不同的工具窗口围绕在主编程窗口周围,当鼠标点到时即可打开,无用时也可轻松关闭,使用户得到了最大化的有效屏幕范围。以技术为导向的IDEA集成了调试器,支持本地和远程的调试,即使我们需要修改一些设置上的东西使我们的工作顺利进展。另外,它还提供了通常的监视,分步调试以及手动设置断点功能,在这种断点模式下,我们可以自动地在断点之外设置现场访问,甚至可以浏览不同的变量的值。IDE支持多重的JVM设置,几个编译程序和Ant建造系统,并且,它使得设置多重的自定义的类途径变得简单。
IntelliJ Idea是一个相对较新的Java IDE。它是Java开发环境中最为有用的一个。高度优化的IntelleJ Idea使普通任务变得相当容易,Idea支持很多整合功能,更重要的使它们设计的好容易使用。Idea支持XML中的代码实现,Idea同时还会校正XML,Idea支持JSP的结构。作用于普通Java代码的众多功能同样适用于JSP(比如整合功能),同时支持JSP调试;支持EJB,尽管它不包括对个别应用服务器的特殊支持。Idea支持Ant建立工具,不仅是运行目标它还支持编译与运行程序前后运行目标,另外也支持绑定键盘快捷键。在编辑一个Ant建立XML文件时,Idea还对组成Ant工程的XML部分提供支持。IntelliJ IDEA 被称为是最好的JAVA IDE开发平台,这套软件就是以其聪明的即时分析和方便的 refactoring 功能深获大家所喜爱。缺点是较复杂,对初学者来说,理解起来比较困难。
小结
现在常用的Java项目开发环境有:JBuilder、VisualAge for Java、Forte forJava, Visual Cafe、Eclipse、NetBeans IDE、JCreator +J2SDK、jdk+记事本、EditPlus+ J2SDK等等。一般开发J2EE项目时都需要安装各公司的应用服务器(中间件)和相应的开发工具,在使用这些开发工具之前,我们最好能熟知这些软件的优点和缺点,以便根据实际情况选择应用。编程工具只是工具,为了方便人们工作而开发的,各有特点,因此,选工具主要的依据自己将要从事的领域是什么,而不是盲目的认为那种工具好,那种工具不好。最后希望大家都能找到自己合适的java 开发工具。
F. 64位计算中的Java虚拟机(JVM)性能测试
随着DEC(Digital Equipment Corp)公司Alpha处理器在 年末的发布 就意味着这个世界开始进入 位计算的时代 紧接着 全球几大主要计算机公司 如IBM Hewlett Packard(惠普) Fujitsu(富士通) Sun Microsystems 也发布了各自相应的产品进入到 位 这个市场 在 年 Fujitsu旗下的HAL Computer发布了业界第一台基于 位SPARC CPU的工作站 SPARC 此后不久 Sun发布了大众期盼已久的Ultra Ultra 工作站 其内置了Sun的 位UltraSPARC处理器 时间转换到 年 IBM发布了其第一个 位PowerPC RISC芯片 RS 在 年 IBM对RS 进行改良 使其支持SMP 这就是Power 如今看起来 对 位计算来说 其整整花了五年的时间 才在 年开始大量进入市场 在本文中 将主要涉及两个现在广泛应用的 位平台 AMD 与PowerPC 并分别使用IBM与Sun Microsystems这两个Java语言巨头提供的Java虚拟机(JVM) 通过SPECjvm 与SPECjbb 的测试 来评价 位与 位中JVM的性能 (注 SPECjvm 与SPECjbb 来自Standard Performance Evaluation Corp )AMD 是Advanced Micro Devices(AMD)公司的 位平台 其扩展了工业标准的x 指令集架构 并设计在不降低任何性能的前提下 于 位模式中完全兼容现有的x 应用程序与操作系统 在 年 月 AMD发布了Opteron 遵循AMD 架构的第一款处理器 与其同时 年 IBM发布了PowerPC 其是源自IBM Power 双核CPU的单核处理器 从此 IBM把 位PowerPC架构带到了桌面系统与低端服务器领域 另外要说明一点 PowerPC 也像Power 一样 可在不降低性能的前提下 本地执行 位指令 不久之后 在 年 月 由Apple Computer公司设计 基于PowerPC CPU的Power Mac G 电脑上市 Java背景介绍 在第一款 位处理器诞生不久 Java技术也出世了 并由此改写历史 Java是一种健壮的 通用的 面向对象的 构架中立的 可移植的 安全的 多线程的编程语言 并带有隐式内存管理功能 Java面向对象的特性在很大程度上与C++相似 但加入了更多的接口与扩展以创建更具灵活性的解决方案 与C++不同的是 Java不支持操作符重载 多重继承和自动类型强制 Java通过广泛的运行时检查和内置的例外处理机制 达到健壮性的目的 编译器所生成的只是字节码指令 其是独立于任何特定平台的 这样就保证了架构中立性 可移植性是通过指定基本数据类型大小和其算术操作符的行为来达到的 例如 int总表示一个有符号的 位整数 而float总表示一个 位的IEEE 浮点数 Java同时也有一系列的同步原语 其基于广泛使用的条件变量范式 自动内存垃圾回收(GC)简化了Java编程的难度 并极大地降低了bug的数目 但也使运行机制稍微复杂了点 在 年 也就是DEC公司发布第一款 位处理器的前一年 Sun Microsystems开始了一个名为 the Green Project 的计划 目的是要抢占 下一波计算 的先机 并为此提前做好准备 计划得出的最初结论是 移动数字设备与计算机的融合将会很快出现 在 年的夏天 计划小组演示了* (星 ) 一个通过动画式触摸屏控制的交互性手持娱乐设备 通过使用Oak 一种全新的编程语言 这个设备可控制很多不同的平台 而由James Gosling开发的Oak 其最主要的特点在于它是一个彻底独立于处理器的语言 在往后的几年中 这种语言被用于Internet 之后成为大众所知的Java 而 Oak 这个名字则因为版权问题从此消失了 在 年 月 Sun正式宣布Java的诞生 这是一种程序员只需编写一次 但却可在多种操作系统及多种硬件平台上运行的语言 编写一次 随处运行 在 年 Sun发布了Java开发工具包(JDK ) 其后不久 个主要的操作系统开发商宣布支持Java技术 当中也包括Microsoft 其以每年大约 万美元取得五年时间的Java许可协议 在 年 月 Sun发布了Java平台的第一个即时(JIT)编译器 在 年 月 JDK 面世 在随后的三周时间里 达到了 万次的下载量 到了 年初 这个数字达到两百万 在 年末 Java 平台发布了 大概半年后 也就是 年年中 Sun发布了三个版本的Java平台 J ME(Java Micro Edition) 应用于移动 无线及有限资源的环境 J SE(Java Standard Edition) 应用于桌面环境 J EE(Java Enterprise Edition) 应用于基于Java的应用服务器 此后 广泛应用的Java技术出现了一些framework 如Enterprise JavaBeans (EJB)和JavaServer Pages (JSP) Java技术的随后一次升级 是出现在 年 月的J SE 几周后 其获得了Apple公司Mac OS X的工业标准的支持 J SE 发布于 年 月份 对Java平台来说 这是一个几乎全新的产品 与J SE 相比 其多了近 %的类和接口 在这些新特性当中 还提供了广泛的XML支持 安全套接字支持(通过SSL与TLS协议) 全新的I/O API 正则表达式 日志与断言 在 年 月 是Java最近的一次发布 J SE (内部版本号 ) 代号 Tiger 现已提供公开下载 Tiger包含了从 年发布 版本以来的最重大的更新 其中包括泛型支持 基本类型的自动装箱 改进的循环 枚举类型 格式化I/O及可变参数 Java虚拟机(JVM)是一个软件规范 相关软件有责任遵守它 以运行编译为Java字节码的程序 JVM是一个抽象的计算机制 并独立于操作系统 具有编译后的程序体积小 可防止执行恶意代码等特点 其没有预先假设基于任何特定的实现技术 不管是硬件还是操作系统 通常我们有几个常用的JVM软件 其 位与 位版本性能有所不同 但它们都包括JIT编译器和垃圾回收功能(GC) JIT编译器从JDK 开始就是JVM的一部分了 当时Java只是用于浏览器客户端动态效果显示的一种技术 JIT编译器实现了程序执行之前Java字节码到硬件机器码的动态翻译 其背后的思想在于 相比Java源代码 字节码更小也更容易编译 但付出的代价是需要在Java字节码编译为机器码时花上一点时间 但与直接把Java源代码编译为机器码相比 时间还是少得多的 在 位与 位的JVM中 相应的JIT在把Java字节码编译为最终的机器码时 所花的时间稍微有所不同 但还能进行一些优化 另外 在IBM与Sun这两个版本的客户端与服务端程序上 总体性能也会有所不同 垃圾回收是一种自动内存管理系统 它会收回对象不再需要使用的内存 从软件工程的角度来看 垃圾回收最大的一个好处就是 程序员不用再操心那些低级的内存管理细节了 同时 垃圾回收也去除了源代码中两个最大的bug 内存未释放(内存泄漏)与过早释放(指针崩溃) 内存回收在Java程序运行期间占了一个很重要的部分 因为它必须被经常执行以释放对象不再访问的Java堆 由于在 位与 位平台上 Java堆中的数据大小会有所变化 所以会因为 位与 位JVM的性能差异 导致相应垃圾回收的性能也会有所不同
位背景介绍 位计算有几个重要组成部分 第一就是 位寻址 实际上 位寻址是通过 位整数寄存器达到的(或RISC中所指的通用寄存器) 位寄存器允许 位的指针装入到单个的寄存器中 而 位的指针 才是可以寻址访问更大内存的实质所在 当 位处理器只能访问到 字节或 GB内存时 位处理器理论上却可寻址访问 字节或 × GB内存 在现代的 位系统中 可寻址的内存的实际限制通常比理论值低一点 具体依赖于特定的硬件架构和操作系统 举例来说 在基于Linux的操作系统中 受限于当前Linux内核数据结构的设计 可寻址的内存最多为 字节或 GB 位计算的第二个重要方面 就是 位整数运算 要提醒的是 这可不是简单地因为有了可存储更多更大整数量 更宽的 位整数寄存器而带来的必然结果 其最直接的影响就是对那些需要处理密集大数值整数运算的程序而言 可带来性能上的飞跃 第三个方面 即 位计算的特性 是 位操作系统与程序的应用 相关的软件必须全面支持硬件的 位特性 包括 位寻址和运算 通常还有一些附带的好处 如 可操作更多更大的文件 管理更大的磁盘等等 位计算所带来的影响 目前已在许多程序中得到了体现 数据库服务器现在可寻址更大的内存 以维持更大的缓冲池 数据缓存 或在内存中进行排序以减少相关的I/O操作 也能给每个用户分配更多的内存 支持更多的用户 或对更大的数据文件进行操作 仿真或其他计算密集的程序也将从中受益 如 现在可以在内存中分配更大的数组了 最后 别忘了还有大量的Java程序 J EE应用服务器 现在也能充分享受到 位计算所带来的好处了 位计算的主要缺点是 与它们 位的兄弟相比 位二进制文件一般都更大 因此 最终生成的机器码体积也更大 在系统缓存与旁路转换缓存(TLB)大小不变的情况下 可能会同时降低两者的命中率 这就是说 在一定程度上性能会有所损失 性能评测 此处用于测试 位与 位JVM性能的系统 是两台 位双CPU工作站 一台是基于AMD 技术的Opteron系统 而另一台是基于PowerPC 的Apple Power Mac G 两台工作站都分别运行基于Linux的 位操作系统 受测试的JVM分别来自于IBM和Sun 将使用SPEC的SPECjvm 和SPECjbb 来测试相应JVM的性能 其中SPECjvm 使用了以下项目测试客户端性能 ·_ _press 一个流行的压缩程序 ·_ _jess 一个Java版的NASA CLIPS基于规则的专家系统 ·_ _db 数据管理基准测试软件 ·_ _javac JDK Java编译器 ·_ _mpegaudio 一个MPEG 音频解码器 ·_ _mtrt 一个对图像文件进行处理的双线程程序 ·_ _jack 一个分析程序生成器 SPECjbb (Java商业基准程序)是一个用于服务端的基准测试程序 其模仿了三层体系结构 是一个通用类型的Java服务端应用程序 通过运行SPECjvm 以秒为单位记录了每个基准测试的运行时长 时间越短越好 所有SPECjvm 测试的堆大小因JVM而有所变化 从最小值 MB至最大值 MB 在SPECjbb 测试中 记录了在三种不同堆大小时的每秒执行操作数 更高的值代表更高的性能 每一个测试程序都运行三次 取成绩最好的一次作为最后的结果 图 与图 显示了在AMD 平台上 Linux版本的Sun Java Standard Edition Development Kit (J SE )在SPECjvm 和SPECjbb 中 位与 位的性能测试结果 在SPECjvm 测试中 只有三项 _ _press _ _mpegaudio _ _jack 在 位版本的JVM上比 位表现出更佳的性能 在SPECjbb 中 位版本的性能只在有足够堆大小的情况下 才表现出更高的性能 其中在堆大小为 MB时 因为某些活动数据在 位JVM版本中体积更大 导致垃圾回收动作更频繁 从而降低了程序性能
图 图 图 与图 显示了在AMD 平台上 Linux版本的IBM Developer Kit for Linux Java Technology Edition Version GA在SPECjvm 和SPECjbb 中 位与 位的性能测试结果 其中 基准测试程序中有三项 _ _db _ _javac _ _jack 在 位环境下表现出了更佳的性能 另外 在SPECjbb 测试中 当面对三个不同大小的测试堆时 位IBM版本的JVM都没有表现出比 位版本更好的性能 图 图 图 与图 显示了在PowerPC 平台上 IBM Developer Kit for Linux Java Technology Edition Version GA在SPECjvm 和SPECjbb 中 位与 位的性能测试结果 此处 在所有SPECjvm 和SPECjbb 的测试中 位JVM的性能都不及 位平台 图 图 结论 基于运行Linux操作系统的PowerPC 平台的测试结果 表明如果在此平台上使用IBM的JVM 那么 那些不需要 位特性的程序 还是让它们运行在 位JVM中吧 因为在此平台的所有测试结果中 位JVM的性能都比 位平台低 而基于运行Linux操作系统的AMD 平台的测试结果 表明不管是Sun还是IBM的JVM 位与 位的性能都在伯仲之间 要注意的是 性能的差异是依赖于具体的应用程序与JVM的 如果需要最佳性能 就必须在某个特定的执行环境中测试某个特定的程序 以评价转换到 位所带来的潜在性能提升 有几件事情需重点注意 第一 尽管SPECjvm 与SPECjbb 都是工业标准的基准测试程序 但它们的测试范围有限 因此 就测试结果而言 只对一部分的Java程序正确 而不是所有 第二 随着 位计算越来越被人们接受 我们期待 位程序会有所改进 包括 位JVM 也许其在将来会大幅提高性能 第三 此处只组合测试了几种特定的硬件平台 操作系统与JVM 因此 如果要进一步地说明问题 恐怕只有在 位Windows XP/ 及 位Mac OS X上的进行JVM基准测试了 lishixin/Article/program/Java/hx/201311/26587
G. 北大青鸟java培训:五类软件测试工具
1.负载压力测试工具这类测试工具的主要目的是度量应用系统的可扩展性和性能,是一种预测系统行为和性能的自动化测试工具。
在实施并发负载过程中,通过实时性能监测来确认和查找问题,并针对所发现问题对系统性能进行优化,确保应用的成功部署。
负载压力测试工具能够对整个企业架构进行测试,通过这些测试,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
2.功能测试工具通过自动录制、检测和回放用户的应用操作,将被测系统的输出记录同预先给定的标准结果比较,功能测试工具能够有效地帮助测试人员对复杂的企业级应用的不同发布版本的功能进行测试,提高测试人员的工作效率和质量。
其主要目的是检测应用程序是否能够达到预期的功能并正常运行。
3.白盒测试工具白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级。
根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。
静态测试工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接和生成可执行文件。
静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。
动态测试工具一般采用“插桩”的方式,在代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。
它与静态测试工具最大的不同是,动态测试工具要求被测系统实际运行。
4.测试管理工具一般而言,测试管理工具对测试需求、测试计划、测试用例、测试实施进行管理,并且测试管理工具还包括对缺陷的跟踪管理。
测试管理工具能让测试人员、开发人员或其他的IT人员。
浙江电脑培训http://www.kmbdqn.cn/认为通过一个中央数据仓库,在不同地方就能交互信息。
5.测试辅助工具这些工具本身并不执行测试,例如它们可以生成测试数据,为测试提供数据准备。
H. java各接口性能如何测试
Java编程下用JMeter Java Sampler进行多接口性能测试,使用方法如下:
/**
*JMeterJavaSampler介绍
*setupTest做些初始化的工作,每个线程只执行一次
*teardownTest做些清理工作,每个线程只执行一次
*runTest具体的测试执行工作,每个并发每次循环都将执行一次
**/
//继承AbstractJavaSamplerClient
{
//hessian调用地址
privatestaticStringurl="http://10.20.147.182:8080/hessian/remoting/userService";
MyServicecollect=null;
HessianProxyFactoryfactory=newHessianProxyFactory();
publicintid;
@Override
publicvoidsetupTest(JavaSamplerContextarg0){
//获取jmeter传入参数
id=arg0.getIntParameter("id");
try{
collect=(MyService)factory.create(
MyService.class,url);
}catch(MalformedURLExceptione){
e.printStackTrace();
}
}
@Override
publicSampleResultrunTest(JavaSamplerContextarg0){
SampleResultsp=newSampleResult();
sp.sampleStart();
Userrt=null;
try{
rt=collect.getUser(id);
}catch(Exceptione){
sp.sampleEnd();
sp.setSuccessful(false);
returnsp;
}
sp.sampleEnd();
if(rt.getId()==id)
sp.setSuccessful(true);
else
sp.setSuccessful(false);
returnsp;
}
@Override
publicvoidteardownTest(JavaSamplerContextcontext){
super.teardownTest(context);
}
}
I. Java中常用的开发工具有哪些
常用的工具有:
Eclipse 据数据显示很多Java开发人员的Java开发工具便是Eclipse,这主要得益于是一个开源的、可以基于Java的可扩展开发平台。Eclipse本身而言,它只是一个框架和一组服务,但可以通过插件组件构建开发环境。
editplus EditPlus是一款由韩国 Sangil Kim (ES-Computing)开发的编辑器,可以作为C,Java,Php等等语言的一个简单的IDE。EditPlus拥有无限制的撤消与重做、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑多文件、全屏幕浏览功能,也是一款常见的Java开发工具。
NetBeans NetBeans提供了功能全面的阵列,如转换器,编辑器和代码分析器,使用这些工具可以帮助我们使用的Java技术实现应用程序。NetBeans工具范围相当广泛,是一款的Java开发工具。
Junit Junit是一个可以帮助Java开发人员编写和运行测试的单元测试框架。JUnit和市场上其他类似的框架有着本质的区别。主要表现在你可以一次测试一个代码块,而不需要等待该模块在运行测试前完成。实际上是你可以“先测试,然后写代码”
VisualVM VisualVM也是一款使用较多的Java开发工具。它最主要的功能便是可以排查故障,可以使用VisualVM整合多命令行JDK工具。如jvmstat、JMX和Serviceability Agent(SA)中使用VisualVM。VisualVM最出名的是附加了API,以获得更多的数据,以及自动使用更快捷。
Gradle Gradle是一个自动化项目工具,是建立在Apache Maven和Apache Ant的功能上。虽然Gradle并不是的构建工具(的是Maven,64%的Java开发人员会选择它),但它的普及速度很快。它同时也可作为默认的Android构建开发工具。
SparkJava SparkJava是一款体形轻巧,功能强大的Web应用框架。Spark可以通过一些繁琐的XML配置来使用Spark框架编写应用程序。能让我们花最少的精力来开发Java的Web应用程序。是一款的Java web开发工具。
Clover Clover主要用于代码覆盖,可以帮助用于测试应用程序的代码。我们可以在IDE或持续集成系统中运行Clover。能够让测试的运行速度更快。是Java开发测试必不可少的工具之一。
J. 如何测试java支持的最大内存
JDK在不同的操作系统中支持的最大内存不一样,可以采用如下方法来测试不同操作系统中支持的最大内存。c:>java -XmxXXXXm(g) -version其中XXXX为最大内存数,m(g)是内存的计量单位,在以上命令中将XXXX写为具体数字,根据情况采用m或g为单位,如果命令能正确显示出jdk的版本信息,则说明当前jdk支持XXXX的最大内存,如果不能正确显示出版本信息则表示超出了jdk支持的最大值。例如:C:\Users\Administrator>java -Xmx1G -versionjava version "1.6.0_33"Java(TM) SE Runtime Environment (build 1.6.0_33-b03)Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)则表示当前jdk支持1G的内存。可以通过XXXX的值的增大来慢慢测试jdk所支持的最大的内存。一般在32位机器上,该最大值位于1.5G-2G之间,在64位机器上面应该没啥限制,经测试写9G也能正常得出版本信息。