在本文中,作者将使用大家经常使用的的开发工具Eclipse来调试Java应用程序。但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运行时上面。

在開始之前,推荐大家去看看Eclipse shortcuts这篇文章,它将会给你带来非常多方便。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在開始前给大家提3点建议!

不要使用System.out.println作为调试工具

把全部涉及到的组件日志级别激活并使用

使用日志分析器来读取日志

1.条件断点

假设你不知道怎样加入断点,仅仅需点击左边面板(行号前面)断点即被创建。在调试界面中。“断点”视图会把全部被创建的断点列出来。我们能够给它加一个布尔条件,也就是说。该断点会被激活而且假设布尔条件为真。就会运行该断点。否则将会跳过往下运行。

2.异常断点

在断点视图中,有一个J!标记button!我们能够使用该button来加入一个Java异常断点。

比如,我们想让程序在遇到空指针异常(NullPointerException)时,仍然能继续调试。那么我们能够使用该button来加入一个异常断点!

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

3.监视点

这是一个非常好的功能,当选定的属性訪问或改动程序时,程序会停止运行并同意进行调试。在Outline视图中选择一个类变量并从上下文菜单中选择切换监视点。属性监视点将会被创建,在断点(Breakpoints)视图中会把全部监视点用列表的形式显示出来。

4.评估/检查

按Ctrl+Shift+D或者Ctrl+Shift+I来显示选定变量或者表达式的值。我们也能够给一个变量或表达式加入永久观察点。当程序在调试时,这些观察点就会在表达式视图(Expression view)中显示出来。

5.改动变量值

在调试过程中,我们能够改动变量值。先选好一个变量然后进入变量视图(Variables view)。依据变量类型在其相应的Value列里输入值就可以。

6.在Main函数里面停止运行

在运行/调试设置中,编辑配置对话框中有“Main”这个选项卡,我们能够勾选“Stop in main”这个复选框。假设选中。那么在调试一个基于main方法的Java程序时,程序会在main方法第一行位置便停止运行。

7.环境变量

并非在系统属性中加入环境变量,我们能够在编辑配置对话框中非常方便地进行加入。

8.Drop to Frame

这也是我最喜欢的一个功能。调试期间。能够又一次跳到调用堆栈框架的開始处运行。而且变量值也会回到最初。依据回档调整堆栈的深度。这个功能的主要用途是全部变量状态能够高速回到方法開始运行时候的样子。然后你能够又一次进行一遍一遍运行,这样就能够在你关注的地方进行多次调试,可是在运行过程中也会产生一些副作用。比方插入到数据库里面的数据是无法删除的!

9.分布过滤

当我们进入(F5)方法的时候,我们还能够訪问其外部库(比方java.*),我们可能不需要这个库,就能够在Perference选项卡页面加入一个过滤器来排除这个包。

10.进入、跳出和返回

我把这个放在最后一点,在调试过程中,这些是必需要了解(最好掌握)的东西:

F5——进入:移动到下一个步骤,假设当前行有一个方法调用,该控件将会跳转到被调用方法的第一行运行。

F6——跳出:移动到下一行。假设在当前行有方法调用,那么会直接移动到下一行运行。

不会进入被调用方法体里面。

F7——返回:从当前方法中跳出。继续往下运行。

F8——移动到下一个断点处运行。

Java程序猿必知的10个调试技巧的更多相关文章

  1. Java程序员应该知道的10个调试技巧

    试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运 ...

  2. (转) Java程序员应该知道的10个调试技巧

    原地址:http://www.csdn.net/article/2012-09-03/2809495-java-debugging-tips-with-eclipse 调试可以帮助识别和解决应用程序缺 ...

  3. (转)Java程序员应该知道的10个调试技巧

    (转自 酷勤网 – 程序员的那点事!http://www.kuqin.com/) 试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里 ...

  4. Java程序员必须知道的10个调试技巧

    调试可以帮助识别和解决应用程序缺陷,在本文中,将使用大家常用的的开发工具Eclipse来调试Java应用程序. 但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运 ...

  5. 每一个程序猿必知之SEO

    似乎由于受这篇文章的影响 http://katemats.com/what-every-programmer-should-know-about-seo/ 于是我也觉得我应该写一个每一个程序猿必知之S ...

  6. 程序猿必知必会Linux命令之awk

    前言 对于一名专业的程序员来说,Linux相关知识是必须要掌握的,其中对于文本的处理更是我们常见的操作,比如格式化输出我们需要的数据,这些数据可能会来源于文本文件或管道符,或者统计文本里面我们需要的数 ...

  7. Java程序员应该知道的10个Eclipse调试技巧

    Eclipse是众多Java程序员实用的开发工具,其中开发技巧也是繁多,但作为优秀的Java程序员,需要掌握最起码的调试技巧. 1 条件断点 2 异常断点 3 监视点 4 评估/检查 5 修改变量值 ...

  8. Java程序员应该知道的10个面向对象理论

    英文原文:10-object-oriented-design-principles 面向对象理论是面向对象编程的核心,但是我发现大部分 Java 程序员热衷于像单例模式.装饰者模式或观察者模式这样的设 ...

  9. Java程序员应当知道的10个面向对象设计原则

    面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) . Decorator(装饰器).Observer(观察者) 等设计模式,而没有把足够多的注 ...

随机推荐

  1. 8lession-基础类型转化

    Python数据类型转换 有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可. 以下几个内置的函数可以执行数据类型之间的转换.这些函数返回一个新的对象,表示转换 ...

  2. IAR for STM8介绍、下载、安装与注册--转

    Ⅰ.写在前面 本文讲述的内容是IAR for STM8的介绍.下载.安装与注册,其安装.注册过程和IAR for ARM类似,如果需要了解IAR for ARM相关的文章,可以到我博客,或微信公众号查 ...

  3. java DSA Signature Sign And Verify

    SignatureSignAndVerify import java.security.KeyPair; import java.security.KeyPairGenerator; import j ...

  4. ORA-16055: FAL request rejected

    主库频繁报错如下: ORA-16055: FAL request rejected   解决办法: ALTER SYSTEM SET log_archive_dest_state_2='DEFER' ...

  5. 洛谷 P2067 Cytus-Holyknight

    P2067 Cytus-Holyknight 题目背景 本人最初作 以此纪念伟大的ios.安卓.PSV平台音乐游戏<cytus> 后续将不断更新. -------------Chapter ...

  6. Java Drp项目实战——Servlet

    由来 在解说Servlet之前须要先介绍一个词语CGI即Common GatewayInterface是通用网关接口的意思.它提供一个计算机程序同HTTP协议或者WWW服务的接口,也就是人机交互接口的 ...

  7. 建立一个 Openshift "Do-It-Yourself" 应用

    建立一个 Openshift "Do-It-Yourself" 应用 Openshift 的  "Do-It-Yourself" 就是自己可以编译定制 WEB ...

  8. item-设置可见性

    如果我们想要设置menu中item的可见行,有两种方式: 1.直接在menu的xml代码中设置 <menu> <item android:id="@+id/action_h ...

  9. 理解String的compareTo()方法返回值

    compareTo()的返回值是整型,它是先比较对应字符的大小(ASCII码顺序), 如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值. 如果第一个字符和参数的第一个字符相等,则以第 ...

  10. 管理aix的密码策略

    aix 中 /etc/security/user 存放用户的概要 常用参数参数如下 1.account_locked      defines whether the account is locke ...