您的位置:

关于java调试,java web调试

本文目录一览:

java如何调试

最基本的操作是:

1, 首先在一个java文件中设断点,然后运行,当程序走到断点处就会转到debug视图下,

2, F5键与F6键均为单步调试,F5是step into,也就是进入本行代码中执行,F6是step over,

也就是执行本行代码,跳到下一行,

3,F7是跳出函数

4,F8是执行到最后。

1.Step Into (also F5) 跳入

2.Step Over (also F6) 跳过

3.Step Return (also F7) 执行完当前method,然后return跳出此method

4.step Filter 逐步过滤 一直执行直到遇到未经过滤的位置或断点(设置Filter:window-preferences-java-Debug-step Filtering)

5.resume 重新开始执行debug,一直运行直到遇到breakpoint

6.hit count 设置执行次数 适合程序中的for循环(设置 breakpoint view-右键hit count)

7.inspect 检查 运算。执行一个表达式显示执行值

8.watch 实时地监视变量的变化

9.我们常说的断点(breakpoints)是指line breakpoints,除了line

breakpoints,还有其他的断点类型:field(watchpoint)breakpoint,method

breakpoint,exception breakpoint.

10.field breakpoint 也叫watchpoint(监视点) 当成员变量被读取或修改时暂挂

11.添加method breakpoint 进入/离开此方法时暂挂(Run-method breakpoint)

12.添加Exception breakpoint 捕抓到Execption时暂挂(待续...)断点属性:

1.hit count 执行多少次数后暂挂 用于循环

2.enable condition 遇到符合你输入条件(为ture\改变时)就暂挂

3.suspend thread 多线程时暂挂此线程

4.suspend VM 暂挂虚拟机

13.variables 视图里的变量可以改变变量值,在variables 视图选择变量点击右键--change value.一次来进行快速调试。

14.debug 过程中修改了某些code后--〉savebuild--resume--重新暂挂于断点

java程序调试的5种方法

1.debug。断点调试。

2.输出消息。system.out.println();来调试。

3.动态代理(Dynamic

Proxy)。动态代理是一个特定的Java特性,它允许开发者引入proxy类,加进某一给定类之前,并通过某一给定接口截获所有调用。你可以在很短时间内用一个普通代理设置一个虚拟事件处理器,来查看事件发生顺序。当需要理解事件处理器时这是最简单和快捷的方法。

4.运行时剖析器(Run-time

Profiler)。剖析器是通过特定的JVM

hooks在系统中跟踪所有调用的强大工具。但是用它来跟踪执行过程是大才小用。

5.Aspects。面向方面编程。它是截获你的代码执行既快速又容易的方法。你可以围绕方法、构造器、属性访问等等有选择地设置hook,而不需要修改原始代码。在这些hook中,你可以打印调试消息。

1.2常用的。3.4.5网上找的。

java调试

第一问:

public class Point

{

    int x, y;

float a, b;

static int z;

void setValue(int m, int n)

{

this.x = m;

this.y = n;

}

void setValue(float a, float b)

{

this.a = a;

this.b = b;

}

static void output()

{

Point point = new Point();

System.out.println("x=" + point.x + ", y=" + point.y + ", a=" + point.a + ", b=" + point.b + ", z=" + Point.z);

}

}

第二问:

public Point()

{

super();

}

public Point(int z1, int z2, float z3, float z4)

{

this.x = z1;

this.y = z2;

this.a = z3;

this.b = z4;

}

第三问:

public static void main(String[] args)

{

Point pt1 = new Point();

pt1.setValue(1, 2);

pt1.setValue(3, 4);

Point pt2 = new Point();

pt2.setValue(5, 6);

pt2.setValue(7, 8);

}

第四问:

Point pt3 = new Point(9, 10, 11, 12);

第五问:

System.out.println("x=" + pt1.x + ", y=" + pt1.y + ", a=" + pt1.a + ", b=" + pt1.b);

System.out.println("x=" + pt2.x + ", y=" + pt2.y + ", a=" + pt2.a + ", b=" + pt2.b);

第六问:

System.out.println("pt1.z=" + pt1.z);

System.out.println("pt2.z=" + pt2.z);

System.out.println("pt3.z=" + pt3.z);

pt1.output();

pt2.output();

pt3.output();

System.out.println("Point.z=" + Point.z);

Point.output();

output();

希望可以帮到你。