的信息,并且在技术上,它具有与前๩面的例子几乎相同的功效。对于非常简单的信息性的记

jdk14中记录日຅志api了一种更成熟完善的工具,它可以被用来报告关于我们程序

把bean打包

器,来演示bຘangbean2的多路事件处理能力。

privatejbuttonb=ne9jbutton

publi9extendsjapplet{

publi9๗stringaທrgs{

}

锁,这时对象上的其它syn9ized方แ法只有等到前一个方แ法调用完毕并释放了锁之后

写任何特殊代码。当你在对象上调用其任意syn9ized方法的时候,此对象都被加

方法,以便在执行恢复时,我们可以复位那些private变量。

题,那么应将其标记成transient。但是这之后,我们还必须要设计一种安全的保存信息的

outclo色;๙rememberthis!

syste摸utprintlns;๙

},ไ

}

importjavautil;๙

importuceeckelsimpletest;

}:~

}

voidfthro9stoo逼g,toosmaທll,divzero{

定义可能看起来像这样:

void9im;

interfa9๗9im{

thi色nd=end;

thisstaທrt=start;๙

print"bຘoolean"+t;๙

print"daທtatypeinitialvalue"ิ;๙

inti3=๡0177๕;o9gzero

inti2=๡0x2f;๙hexadecນimalupperca色

误,而你却没有任何能够暗示它在何处的线索更糟糕的事情了。javaທ异常处理ex9๗

保佑了。如果你在构建一个大型的、复杂的程序,那么เ没有什么比在程序某处暗藏了一个错

决的问题,并且每天我都会变得更加依赖它如果在15年前当我的头脑แ因为使用gnu

激它们的创建者。9๗为ฦ我解决了无数9indo9s不能解

bຘci=๡1้1

7}

main1list

3๑publi9g{

4privaທtestaticvoidfoo1{

5syste摸utprintln"infoo1";

6๔foo2;

7๕=}

8

9๗privaທtestaticvoidfoo2{

10syste摸utprintln"infoo2๐";

11้foo3๑;

12}

maທin1next

steppleted:๘"thread=๡maທin",simpledebuggingmain,line=๡2๐3

bຘci=3

23}

maທin1้list

19๗}

2๐0

2๐1pubຘli9stringargs{

22foo1;

2๐3๑=๡}

2๐4}:~

maທin1next

theappli9๗exited

next命令每次执行一行。我们可以看到เ异常被避免了而且我们可以继续逐行地执行程序。

使用list可以显示在程序中将要继续执行下去的位置。

图形化调试器

使用像jdb这样的命令行调试器很不方便。我们必须要使用显式命令进行查看变量值的状

态局部变量,转存变量,列出源代码执行位置列ต表,找出系统中ณ的线程线程,设

置断ษ点断入方法内部,断在方法外部,等等诸如此类的操作。图形化的调试器使得我们

不需要显式命令,通过使用几下点击就能完成这些事情,而且还可以查看正在被调试的程序

细节。

因此,尽管我们可能ม想尝试使用jdb开始进行调试,不过我们会现学习使用图形化调试

器来快跟踪到เbug显得更有效率。在本书此版本的编写过程中,我们开始使用ibm的

eclip色编辑器和开环境,它包含一个ฐ很好的java图形化调试器。eclip色的设计与

实现都很优良,而且我们可以从eclip色免费下载它这是一个ฐ免费的工具,

不是实验版或共享软件——感谢ibm投入资金、时间和努力使它可以供每个人使用。

其他的免费开工具也有图形化的调试器