1. F8,表示当前实现继续运行直到下一个断点。

2. F5,表示进入当前方法。

3. F6,表示运行下一行代码。

4.F7,表示退出当前方法,返回到调用层。

一、J2SE中debug

设置条件断点

 1 package tk.dongyeblog;
 2
 3 public class TestDemo {
 4         public static void main(String[] args) {
 5                  TestDemo td = new TestDemo();
 6                  td.print1to10();
 7         }
 8         public void print1to10(){
 9                  for (int i =1; i <= 10; i++) {
10                            System.out.print(i+"");
11                  }
12         }
13
14 }

设置条件断点:在函数print1to100中的system.out.print语句设置条件断点:在断点处右击,选择Breakpoint Properties,打开条件断点允许框,输入条件i==5。选择条件为真时,触发中断。回到主程序Debug运行之,可以看到程序在输出到4之后停止,此时i值为5

另外一个例子:

TestDemo.java

 1 package tk.dongyeblog;
 2
 3 public class TestDemo {
 4         public static void main(String[] args) {
 5                  Person p = new Person();
 6                  String name = p.getName();
 7                  if(name.equals("")){
 8                      System.out.println("姓名不能为空!");
 9                  }
10         }
11 }

Person.java

 1 package tk.dongyeblog;
 2
 3 public class Person {
 4     private String name;
 5     private int age;
 6
 7     public String getName() {
 8         return name;
 9     }
10     public void setName(String name) {
11         this.name = name;
12     }
13     public int getAge() {
14         return age;
15     }
16     public void setAge(int age) {
17         this.age = age;
18     }
19 }

运行之后出现:Exception in thread "main" java.lang.NullPointerException

at tk.dongyeblog.TestDemo.main(TestDemo.java:7)

下面运行debug进行调试,首先定义断点。然后启动debug模式。选中要观察的对象,右键watch,Experssions栏里会出现选中的属性。从图中可以看到name的value为null。所以会出现空指针异常。应改为if(name==null || name.equals("")){

二、在WEB项目中启动debug模式

在运行JavaEE项目时,需要在eclipse内部启动服务器,并在servlet程序中设置断点,在执行到断点时会自动debug模式。其他和J2SE调试类似

优秀的程序员总是花80%的时间来思考如何解决问题,20%的时间来动手完成代码,而糟糕的程序员总是用20%的时间去写代码,80%的时间去调试代码,动手之前尽量想好如何去做,并且已经为你自己的思路做了充分的实验。

转载于:https://www.cnblogs.com/dongye/archive/2013/05/23/debug.html

java中debug使用相关推荐

  1. Java中Debug手段——JUnit单元测试

    PS:DEV C++里的单元测试针省事 TAT 除了自己写flag或输出语句外,Java还提供了断点调试 步骤: 1选中当前工程-->Build Path-->Add Library--& ...

  2. Java IDEA Debug进制二维数组

    1.Debug模式 1.1 什么是Debug模式 是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序. 1.2 Debug介绍与操作流程 如何加断点 选择 ...

  3. java中的匿名类方法覆盖_Java技巧:用匿名类来实现简化程序调试

    Java技巧:用匿名类来实现简化程序调试 在Java中,匿名类(Anonymous inner classes)多用来处理事件(event handle).但其实,它们对于debug也很有帮助.本文将 ...

  4. Java 中的语法糖,真甜。

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 我们在日常开发中经常会使用到诸如泛型.自动拆箱和装箱.内部 ...

  5. java类型精度排序,Java中BigDecimal精度和相等比较的坑

    为什么要有bigdecimal ,他是干什么的 float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计 ...

  6. Java Remote Debug(远程调试)

    Java Remote Debug(远程调试) 作者: ytfei 日期: 2011 年 05 月 08 日 发表评论 (0) 查看评论 新接手的项目采用的是Maven作为编译管理工具,项目内容则是按 ...

  7. java中的assert

    Java陷阱之assert关键字 一.概述 在C和C++语言中都有assert关键,表示断言. 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多. 二.语法 在Java中,ass ...

  8. 在java中表示json_在Java中解析JSON而不知道JSON格式

    我试图解析在Java中的JSON字符串,并找到键值对,使我可以确定JSON对象的近似结构,因为JSON字符串的对象结构是未知的. 例如,一个执行可能有一个JSON字符串,如下所示: {"id ...

  9. Java中对比两个对象中属性值[反射、注解]

    在Java中通常要比较两个对象在修改前与修改后的值是否相同,一般我们采用的是反射技术获取对象的get方法[或其他的方法]获取值并做比较.如果系统将修改的属性名称也显示出来,这样就能更直观的显示类中的哪 ...

最新文章

  1. 如何将html页面上的形状存储,css – html -split一个页面成为所需的形状作为div?...
  2. ViewPager Indicator的使用方法
  3. python画图-Python基础-画图:matplotlib
  4. 3.git版本控制-管理修改、撤销、删除
  5. oracle查询重复数据出现次数
  6. 数据库方面的操作示例
  7. 学习笔记=《你不知道的JavaScript(上卷)》第三章:函数作用域和块级作用域...
  8. html怎么帮图片占位,css+html实现Skeleton Screen 加载占位图动画效果(带动画)
  9. 红橙Darren视频笔记 任意控件实现拖动消失爆炸效果
  10. PHP经典面试题汇总(续)
  11. 【转】勤奋小孩的遗言:没有理由不坚持。
  12. hashmap 和 hashtable 的区别和联系
  13. Mac安装Qt出现错误Could not resolve SDK Path for ‘macosx‘
  14. 乐鑫Esp32学习之旅28 熟悉自定义分区表 partition,拉取阿里云OSS对象存储的单片机/图片等较大文件保存在特定的存储位置,并读取出来做完整性校验,保证数据的完整性。(附带源码)
  15. CPU的DataSheet和UserManual的区别
  16. 雨课堂卷子提前看_雨课堂提前看试卷
  17. 加载java ie停止工作_IE报错“Internet Explorer 已停止工作”的解决方法
  18. 基于STM32CubeMX的stm32f103c6t6液晶0.96OLED显示字母数字汉字图片显示
  19. 软件相关的小问题记录
  20. github 遇到的问题

热门文章

  1. oracle通过sid远程登录,oracle怎么捕获用户登录信息,如SID,IP地址等
  2. 计算机处理器采用多核,电脑的CPU的多核很有用吗?
  3. python正则表达式提取电话号码_Python学习笔模式匹配与正则表达式之电话号码和Email地址提取程序...
  4. python第7章实训作业_试图学Python赚外快的第7天
  5. 【uniapp】swiper 自定义轮播图指示点
  6. linux 内核 4.10.0,Bodhi Linux 4.2.0发布下载,运行Linux内核4.10
  7. 什么叫预判_什么才是真正的用户画像?
  8. java thrift client_使用thrift的java client调用python server
  9. readfile读取串口数据_西门子PLC-1200-串口Modbus RTU通讯实例
  10. pycharm创建mysql项目_python+Django+pycharm+mysql 搭建首个web项目详解