Java程序猿必知的10个调试技巧
在本文中,作者将使用大家经常使用的的开发工具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个调试技巧的更多相关文章
- Java程序员应该知道的10个调试技巧
试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运 ...
- (转) Java程序员应该知道的10个调试技巧
原地址:http://www.csdn.net/article/2012-09-03/2809495-java-debugging-tips-with-eclipse 调试可以帮助识别和解决应用程序缺 ...
- (转)Java程序员应该知道的10个调试技巧
(转自 酷勤网 – 程序员的那点事!http://www.kuqin.com/) 试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里 ...
- Java程序员必须知道的10个调试技巧
调试可以帮助识别和解决应用程序缺陷,在本文中,将使用大家常用的的开发工具Eclipse来调试Java应用程序. 但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运 ...
- 每一个程序猿必知之SEO
似乎由于受这篇文章的影响 http://katemats.com/what-every-programmer-should-know-about-seo/ 于是我也觉得我应该写一个每一个程序猿必知之S ...
- 程序猿必知必会Linux命令之awk
前言 对于一名专业的程序员来说,Linux相关知识是必须要掌握的,其中对于文本的处理更是我们常见的操作,比如格式化输出我们需要的数据,这些数据可能会来源于文本文件或管道符,或者统计文本里面我们需要的数 ...
- Java程序员应该知道的10个Eclipse调试技巧
Eclipse是众多Java程序员实用的开发工具,其中开发技巧也是繁多,但作为优秀的Java程序员,需要掌握最起码的调试技巧. 1 条件断点 2 异常断点 3 监视点 4 评估/检查 5 修改变量值 ...
- Java程序员应该知道的10个面向对象理论
英文原文:10-object-oriented-design-principles 面向对象理论是面向对象编程的核心,但是我发现大部分 Java 程序员热衷于像单例模式.装饰者模式或观察者模式这样的设 ...
- Java程序员应当知道的10个面向对象设计原则
面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) . Decorator(装饰器).Observer(观察者) 等设计模式,而没有把足够多的注 ...
随机推荐
- POJ——T 2752 Seek the Name, Seek the Fame
http://poj.org/problem?id=2752 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 20418 ...
- Nginx系列(一)--nginx是什么?
一.介绍 Nginx是一个高性能的HTTP和反向代理server,也是一个IMAP/POP3/SMTP代理server. Nginx是一款轻量级的Webserver/反向代理server以及电子邮件代 ...
- Java 8 Stream Tutorial--转
原文地址:http://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/ This example-driven tutori ...
- Red Hat Enterprise Linux Server 5.5新增功能简介
一.概况 昨日对刚发布的redhat新产品RHEL5.5进行了小范围的测试,红帽企业版 Linux 5.5 发行本中的亮点包括针对 Intel Boxboro-EX 平台.AMD Magny-Cour ...
- Atcoder AtCoder Regular Contest 079 E - Decrease (Judge ver.)
E - Decrease (Judge ver.) Time limit : 2sec / Memory limit : 256MB Score : 600 points Problem Statem ...
- Maven用法
Maven 的使用教程 1.什么是 Maven? Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 2.下载 Maven? ①.官网下载 ...
- HDU4825 Xor Sum(贪心+Trie树)
Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometheus 将向 Zeu ...
- ArcGIS小技巧——提取面要素的质心点
如下图,现在要做这样一件事,提取面图层中每一个图斑的质心点,然后使用质心点提取图层中的一个属性值,并在此基础上进行克里金插值,生成该属性的空间插值图.当然,今天这段文字主要简单说一下怎样提取面图层的质 ...
- 洛谷 P2692 覆盖
P2692 覆盖 题目背景 WSR的学校有B个男生和G个女生都来到一个巨大的操场上扫地. 题目描述 操场可以看成是N 行M 列的方格矩阵,如下图(1)是一个4 行5 列的方格矩阵.每个男生负责打扫一些 ...
- 洛谷 P2677 超级书架 2
P2677 超级书架 2 题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有 ...