java - 为什么不能在变量声明行中放置调试断点?

标签 java jvm breakpoints

假设我有以下代码:

Shape shape;
shape = new Circle();

使用断点调试时,我想知道为什么不能在第一行停止执行。我知道这没什么用,但这是一个有效的陈述,对吗?它正在为引用变量分配内存...

最佳答案

I know it's quite useless, but it's a valid statement right?

从技术上讲,这不是一个声明。这是一个变量声明,而不是语句。

尽管不可否认,当声明还初始化变量的值时,将其视为不是语句并不是很有帮助,因此在这种情况下它仍然不称为语句,您可以放置​​一个断点。

It's allocating memory for reference variable...

没有。当需要存储局部变量时,它们会存储在堆栈中,或者底层平台实现堆栈功能所使用的任何机制。这不需要分配。因此,该行是空操作。它是只为编译器做事的信息,在运行时不存在。

关于java - 为什么不能在变量声明行中放置调试断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51513136/

相关文章:

java - IntelliJ 无法使用 OpenJDK 11 识别 JavaFX 11

java - 为什么 java.lang.Object.getClass() (和反射)比平时慢?

java - JNI - 线程和 jobject 的问题

java - 安装 SOAP UI 后出现 JVM 错误

Java - 断点命中了多少次?

debugging - 无法在 Chrome 开发工具中设置断点,版本 26.0.1410.64 m

java - 如何在 spring mvc 中用 thymeleaf 填充一个简单的表

java - 在 java.util.ArrayList 或 SQL 中执行 "Optimized"set 操作

javascript - 当我在 JavaScript 文件中遇到断点时,下拉菜单停留在屏幕上。为什么?

java - Spring 中的 JQuery 数据表与服务器端处理(使用 Java 和 Thymeleaf)