仓酷云

标题: 了解下JAVA的深切Java调试系统: 第1部分,JPDA系统概览 [打印本页]

作者: 山那边是海    时间: 2015-1-18 11:15
标题: 了解下JAVA的深切Java调试系统: 第1部分,JPDA系统概览
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。
JPDA(JavaPlatformDebuggerArchitecture)是Java平台调试系统布局的缩写,经由过程JPDA供应的API,开辟职员能够便利天真的搭建Java调试使用程序。JPDA次要由三个部分构成:Java假造机工具接口(JVMTI),Java调试线协定(JDWP),和Java调试接口(JDI),本系列将会具体先容这三个模块的外部细节、经由过程实例为读者揭开JPDA的面纱。本文是该系列的第一篇,将会侧重从全体上先容JPDA的各个构成,论述它们相互之间的内涵联系关系。
JPDA概述
一切的程序员城市碰到bug,关于运转态的毛病,我们常常必要一些办法来察看和测试运转态中的情况。在Java程序中,最复杂的,您是不是实验过利用System.out.println()来输入您的Java程序的实行中的各类变量形态来发明您的Java程序运转时的成绩?这类体例便利易用,在一些复杂的情形下可以办理您的成绩,可是假如当您的程序运转在远程情况上,大概以后情况不同意把持台终端输入(好比,思索一下假造机初始化之时),您没法猎取终端输入的时分呢?大概,假如您基本没法当地修正运转您的程序?
不必忧虑,您能够经由过程良多的调试工具来匡助您办理这个成绩,罕见的IDE都附带一个十分直不雅复杂的调试工具,好比Eclipse()就供应一个功效十分周全,操纵十分复杂的调试器。
.利用Eclipse调试Java程序
了解下JAVA的深切Java调试系统: 第1部分,JPDA系统概览
登录/注册后可看大图

其他的一些罕见的JavaIDE,好比Netbeans和IntelliJ等等也都供应了相似的功效,您乃至能不必IDE供应的图形界面,利用JDK自带的jdb工具,以文本命令的情势来调试您的Java程序。这些五花八门的调试器都撑持当地和远程的程序调试,那末它们是怎样被开辟的?它们之间存在着甚么样的接洽呢?我们不能不说起Java的调试系统——JPDA。
我们晓得,Java程序都是运转在Java假造机上的,我们要调试Java程序,现实上就必要向Java假造机哀求以后运转态的形态,并对假造机收回必定的指令,设置一些回调等等,那末Java的调试系统,就是假造机的一整套用于调试的工具和接口。
关于Java假造机接口熟习的人来讲,您必定还记得Java供应了两个接口系统,JVMPI(JavaVirtualMachineProfilerInterface)和JVMDI(JavaVirtualMachineDebugInterface),而它们,和在JavaSE5中筹办取代它们的JVMTI(JavaVirtualMachineToolInterface),都是Java平台调试系统(JavaPlatformDebuggerArchitecture,JPDA)的主要构成部分。JavaSE自1.2.2版就入手下手推出Java平台调试系统布局(JPDA)工具集,而从JDK1.3.x入手下手,JavaSDK就供应了对Java平台调试系统布局的间接撑持。望文生义,这个别系为开辟职员供应了一整套用于调试Java程序的API,是一套用于开辟Java调试工具的接口和协定。实质上说,它是我们通向假造机,考查假造机运转态的一个通道,一套工具。了解这一点关于进修JPDA十分主要。
换句话说,经由过程JPDA这套接口,我们就能够开辟本人的调试工具。经由过程这些JPDA供应的接口和协定,调试器开辟职员就可以依据特定开辟者的需求,扩大定制Java调试使用程序,开辟出吸引开辟职员利用的调试工具。后面我们提到的IDE调试工具都是基于JPDA系统开辟的,区分仅仅在于它们大概供应了分歧的图形界面、具有一些分歧的自界说功效。别的,我们要注重的是,JPDA是一套尺度,任何的JDK完成都必需完成这个尺度,因而,经由过程JPDA开辟出来的调试工具后天具有跨平台、不依附假造机完成、JDK版本有关等移植长处,因而年夜部分的调试工具都是基于这个别系的。
JPDA构成模块
JPDA界说了一个完全自力的系统,它由三个绝对自力的条理配合构成,并且划定了它们三者之间的交互体例,大概说界说了它们通讯的接口。这三个条理由低到高分离是Java假造机工具接口(JVMTI),Java调试线协定(JDWP)和Java调试接口(JDI)。这三个模块把调试历程分化成几个很天然的观点:调试者(debugger)和被调试者(debuggee),和他们两头的通讯器。被调试者运转于我们想调试的Java假造机之上,它能够经由过程JVMTI这个尺度接口,监控以后假造机的信息;调试者界说了用户可以使用的调试接口,经由过程这些接口,用户能够对被调试假造机发送调试命令,同时调试者承受并显现调试了局。在调试者和被调试着之间,调试命令和调试了局,都是经由过程JDWP的通信协定传输的。一切的命令被封装成JDWP命令包,经由过程传输层发送给被调试者,被调试者吸收到JDWP命令包后,剖析这个命令并转化为JVMTI的挪用,在被调试者上运转。相似的,JVMTI的运转了局,被格局化成JDWP数据包,发送给调试者并前往给JDI挪用。而调试器开辟职员就是经由过程JDI失掉数据,收回指令。展现了这个历程:
.JPDA模块条理
了解下JAVA的深切Java调试系统: 第1部分,JPDA系统概览
登录/注册后可看大图

<p>
因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。
作者: 愤怒的大鸟    时间: 2015-1-19 16:10
是一种使网页(Web Page)产生生动活泼画面的语言
作者: admin    时间: 2015-1-20 09:31
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者: 小妖女    时间: 2015-1-29 06:28
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 不帅    时间: 2015-1-30 17:48
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 因胸联盟    时间: 2015-2-6 14:41
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者: 蒙在股里    时间: 2015-2-12 04:50
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 兰色精灵    时间: 2015-3-2 22:21
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者: 只想知道    时间: 2015-3-11 06:58
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 分手快乐    时间: 2015-3-13 01:09
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者: 山那边是海    时间: 2015-3-20 08:30
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2