跟踪Java执行过程的方法
Zviki Cohen基于自己探索和理解他人所编写代码的体验,发布了跟踪Java执行过程的5种方法。他发现简单的阅读源代码(有些情况下是反编译代码),可能是十分乏味和有错误倾向的过程。
作为替代,他推荐了5种不同运行时跟踪方法以在Java代码运行时观察它,消除了学习他人代码的许多不利条件。下面一起来看看吧!
1、基本方法:断点和单步执行
“以最简单的方法开始:设置断点并开始跟踪你的程序执行。它在这些时候是最好的:你需要一个快速且简单的解决方案,你拥有所有代码并且知道想在哪里停止执行。你需要在给定断点设置精细的信息(参数、局部变量等等)。”
2、初级方法:调试消息
“我们通过设置调试消息来继续对程序跟踪。最简单的方法是使用tln语句把消息打印到控制台。 它在这些时候是最好的:你拥有代码且很清楚你正在寻找什么。对事件处理器来说这是非常好的解决方案。当贯穿某一复杂流程的执行过程时,它的高性能对理解触发了哪个事件是非常实用的。”
3、热门方法:动态代理(Dynamic Proxy)
“这是在简单调试消息之上所做的改进。动态代理是一个特定的Java特性,它允许开发者引入proxy类,加进某一给定类之前,并通过某一给定接口截获所有调用。它在这些时候是最好的:它对事件处理器来说是非常好的解决方案。你可以在很短时间内用一个普通代理设置一个虚拟事件处理器,来查看事件发生顺序。当需要理解事件处理器时这是最简单和快捷的方法。”
4、暴力方法:运行时剖析器(Run-time Profiler)
“剖析器是通过特定的JVM hooks在系统中跟踪所有调用的`强大工具。但是用它来跟踪执行过程是大才小用。它在这些时候是最好的:你想拥有一个特定操作的完整画卷(如,非常短的执行流程)。”
5、新时代:Aspects
“面向方面编程(Aspect Oriented Programming——AOP)是一个非凡的想法。无需深入Aspect概念,这里只考虑其能力:它是截获你的代码执行既快速又容易的方法。你可以围绕方法、构造器、属性访问等等有选择地设置hook,而不需要修改原始代码。在这些hook中,你可以打印调试消息。它在这些时候是最好的:你想跟踪可重新构建的代码执行。”
延伸阅读:创建Excel格式的数据
到目前为止,通过一个Servlet或者jsp生成一个逗号分割值(CSV)文件,然后作为MIME类型text/csv返回给浏览器,这还是在Java应用中创建MicrosoftExcel文件的最常用的方法。浏览器会调用Excel,并显示CSV格式的文件。
现在有了一个为Java开发人员提供能够真正创建Excel文件的方案。这就是一个称作POI(“可怜的混乱实现”)的新的Jakarta项目组中最成熟的部分。POI中Excel组件命名为HSSF(“可怕的电子表格格式”)。
虽然HSSF提供了许多不同的和引擎交互的方式,我们这儿集中于简单的高层用户API的讨论。
下面是在一个Excel表格中创建一个矩阵的简单例子:
model.*;OutputStream;//code run against icclass PoiTest staticpublic void main(String args) throws ExceptionFileOutputStream fos= new FileOutputStream("");HSSFWorkbookwb = newHSSFWorkbook();HSSFSheet s =teSheet();heetName(0,"Matrix");for(short i=0; i〈50;i++) HSSFRow row =teRow(i);for(short j=0; j〈50; j++) HSSFCellcell=teCell(j);ellValue(""+i+","+j);e(fos);e();
这段代码首先创建一个Workbook,从该Workbook中得到一个表格、命名,然后继续写入一个50x50的矩阵。最后输出到一个名为的Excel文件,甚至在Mac机上也可以打开。
POI项目是Java应用的令人兴奋的一步,为用户提供了Windows文档集成的新功能,答应Java开发人员方便地扩展其产品的功能。
相關文章
-
在Java中执行JavaScript代码
我们要在Java中执行中的execute(s1,s2)方法,文件内容如下:function execute(s1, s2){ retu s1 + s2;}首先需要定义一个接口,这个接口中给出与要执行的JavaScript方法一样的方法签名,我们定义接口Methods,它的内容如下:/** * -
JavaScript函数的执行过程
1. 每一个JavaScript函数都是Function对象的一个实例, 它有一个仅供JavaScript引擎存取的内部属性[[Scope]]. 这个[[Scope]]存储着一个作用域的集合, 这个集合就叫”作用域链”, 集合中存储着”可变对象”VO或”活动 -
JAVA认证开源技术:关于Java的对象equals方法
在学习JAVA认证过程中,每个人会遇到每个人不同的问题,或小或大,下面yjbys小编为大家分享的是关于Java的对象equals方法,希望对大家学习JAVA有帮助!不是所有的equals都是比较整个对象的。 #1.普通Object类:先看源码:publi -
java命令行引用jar包的方法
java命令行怎么引用jar包?jar包有哪些常用方法?下面跟yjbys小编一起来学习一下,希望对大家学习java语言有帮助! 一般情况下:如果java 文件和jar 包在同一目录编译:D:\wangyu>javac -cp 执行:D:\wangyu>java -classp -
java程序运行方法
怎样运行Java?怎样运行Java程序?这是新手经常遇到的问题,下面小编给大家介绍java程序运行方法,欢迎阅读! 初学者第一次运行java程序必看运行java文件,必须先编译java文件为Class文件。然后在解析class文件。这两个步骤 -
java从代码到运行的过程
Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。以下是小编为大家搜索整理的java从代码到运行的 -
使用ajax操作JavaScript对象的方法
微博昵称:Tanya唐雅微博地址://所在地:广东 广州性别:女生日:1987年8月2日简介:来自俄罗斯💖广州,China 相关阅读:非诚勿扰西班牙专场女嘉宾名单以及个人信息 解维(wei) -
Java4安卓开发教程之java的变量
谜面从谜语类型打一成语谜底判若两人 -
计算机二级Java入门教程:Java类的基本构成
理清考试题目的重点有助于我们更快更好的掌握考试方法,以下本站小编整理的计算机二级Java入门教程:Java类的基本构成,欢迎阅读! 三:Java类的基本构成 1:Java 类的定义形式一个完整的 Java 类通常由下面六个部分组成: -
linux下执行java程序的sh脚本教程
文章主要介绍了linux下执行java程序的sh脚本,仅供参考,但是设置的时候环境变量是最重要的,我就是环境变量一直不对,总是按网上查到的来,不明白怎么回事,才一直出错,其实环境变量就是你要执行的java程序所在的位置。接下来是