有不同类型的断点。有些断点是基于行的,有些则不是。这如何影响您的实际调试取决于您的IDE实际执行的操作。例如,在Eclipse中,如果在方法中间添加一个断点,则它将是基于行的断点。如果在包含方法签名的行上添加断点,则该断点将为方法条目断点。
如果您正在查看的源代码不是正在运行的类的确切源,则行断点当然不会映射到正确的行。因此,java可能不会停止在您期望的行上,并且IDE的确可能向您显示了错误的方法甚至错误的类。但是,即使定义方法的行已更改,方法输入断点仍将起作用(在正确的时间停止)。但是同样,IDE可能会在调试器中显示错误的行。(还有其他类型的事件/断点,例如类加载,…
如果您想了解更多有关内部的信息,可以看看EventRequest的子接口)。
回答另一个问题:断点适用于JVM中的所有类加载器。



