摘要:调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷。对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序。本文介绍了Java程序员必知的10个调试技巧,保证让你受益匪浅!

在开始之前,推荐大家去看看Eclipse shortcuts这篇文章,它将会给你带来很多方便。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在开始前给大家提3点建议!
不要使用System.out.println作为调试工具 把所有涉及到的组件日志级别激活并使用 使用日志分析器来读取日志 1.条件断点
如果你不知道如何添加断点,只需点击左边面板(行号前面)断点即被创建。在调试界面中,“断点”视图会把所有被创建的断点列出来。我们可以给它加一个布尔条件,也就是说,该断点会被激活并且如果布尔条件为真,就会执行该断点,否则将会跳过往下执行。

2.异常断点
在断点视图中,有一个J!标记按 钮!我们可以使用该按钮来添加一个Java异常断点。例如,我们想让程序在遇到空指针异常(NullPointerException)时,仍然能继续调试,那么我们可以使用该按钮来添加一个异常断点!

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应用程序.但这里介绍的调试方法基 ...

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

    为什么80%的码农都做不了架构师?>>>    Eclipse是众多Java程序员实用的开发工具,其中开发技巧也是繁多,但作为优秀的Java程序员,需要掌握最起码的调试技巧. 1 条 ...

  3. 资深程序员才知道的30个Python技巧

    Python中的省略号 Python省略号是三点序列,通常在自然语言中使用.但是您可能不知道的是,这也是Python中的有效对象: - Ellipsis 它主要用于NumPy中的矩阵切片操作.但是,您 ...

  4. 程序员应该知道的10大编程格言

    作者 | BarryWang 来源 | https://www.cnblogs.com/barrywxx/p/4399007.html 每个程序员都该知道的10大编程格言(Kevin Pang): 编 ...

  5. 优秀Java程序员应该知道的20个实用开源库

    一个优秀且经验丰富的Java开发人员的特点之一是对API的广泛了解,包括JDK和第三方库.我花了很多时间学习API,特别是在阅读Effective Java 3rd Edition之后,Joshua ...

  6. java程序员要知道的500个基础小知识

    目录 问题1:什么是注解(Annotation)?为什么在开发时候用注解? 细聊注解? 问题2:什么是反射? 做什么用的呢? 问题3:什么是泛型? 做什么用的呢? 问题4:为什么封装用包装类型不用基本 ...

  7. 老鸟程序员才知道的40个小技巧

    1.重构是程序员的主力技能. 2.工作日志能提升脑容量. 3.先用profiler调查,才有脸谈优化. 4.注释贵精不贵多.杜绝大姨妈般的"例注".漫山遍野的碎碎念注释,实际就是背 ...

  8. Python 程序员需要知道的 30 个技巧(转载)

    Python 程序员需要知道的 30 个技巧 原创2017-04-14 伯乐专栏/阿喵 Python开发者 Python开发者 Python开发者 微信号 PythonCoder 功能介绍 人生苦短, ...

  9. 《程序员应该知道的97件事》即将上市

    一.出版信息 [书名]程序员应该知道的97件事 [作者]Kevlin Henney  著 [译者]李军 译 吕骏审校 [出版社]电子工业出版社 [书号]978-7-121-11756-5 [定价]45 ...

最新文章

  1. 用setResult回传intent参数的时候,接收方activity闪退
  2. 20155301 滕树晨linux基础——linux进程间通信(IPC)机制总结
  3. Spring-AOP 流程切面
  4. UVA 10976 Fractions Again?!【暴力枚举/注意推导下/分子分母分开保存】
  5. PAT (Advanced Level) 1017 Queueing at Bank(模拟)
  6. 全国计算机等级考试题库二级C操作题100套(第35套)
  7. 小米真蓝牙耳机说明书_小米真无线蓝牙耳机Air2 SE评测:仅需169元,享受随心畅听体验...
  8. python模块time_Python模块:time模块详解(转)
  9. linux 串口text模式安装,使用串口安装centos操作系统
  10. 使用TFHelp解析Html
  11. 深入剖析cpp对象模型
  12. oracle安装总结
  13. 遵义微红科技社群直播分销系统精选最具市场营销的功能点
  14. linux中的码字软件,橙瓜码字神器手机版下载-橙瓜码字神器appv5.2.8-Linux公社
  15. 第八章-数据处理的两个基本问题
  16. wgs84坐标格式转换度分秒_ArcGIS坐标单位转换(米和度分秒之间是如何转换的?)...
  17. 入门C语言模板,C语言入门经典-C语言编程
  18. ISTQB认证考试通过秘籍 问题一、ISTQB是什么?有哪些分类? ISTQB(International Software Testing Qualification Board)是国际唯一权威的软
  19. @Transactional的七种事务传播行为
  20. jenkins执行脚本不退出

热门文章

  1. 树形DP题目。。。转载
  2. MATLAB-Direct access of structure fields returned by a function call is not allowed 的解决方法~
  3. c语言五子棋判断如何胜利,c语言 五子棋危险判断 求大神解释啊
  4. mysql 搜索标题中字符串_如何在MySQL表中搜索特定字符串?
  5. Lammps 问题集锦
  6. 【短视频SDK】Android如何使用硬编硬解?
  7. 复旦高等代数 I(17级)每周一题
  8. 2.3. 实体(Core Data 应用程序实践指南)
  9. Configuring the Java Virtual Manager (JVM)
  10. sigsuspend sigprocmask函数的用法