Java单行注释用//,从//到行末;多行注释用/.../,不支持嵌套和半行续写;文档注释/*.../供javadoc使用;注释内字符串不受影响,但字符常量中误写/*会编译失败。

Java里单行注释用 //,多行注释用 /* ... */,但二者不能嵌套,且多行注释不支持“半行续写”式写法。
单行注释 // 的实际用法
它从 // 开始直到行末都视为注释内容,适合快速说明某一行逻辑或临时屏蔽代码。
- 可以出现在行首、行中甚至行尾:
int x = 1; // 初始化x - 不会影响编译,也不会被JVM加载,纯粹给开发者看
- 不能跨行:换行后必须重新写
//,否则下一行不是注释 - 慎用于调试时“注释掉一段代码”,如果原代码里已有
//或/*,可能造成意外语法混乱
多行注释 /* ... */ 的边界行为
它从 /* 开始,到最近的 */ 结束,中间所有内容(含换行、空格、甚至无效语法)都被忽略。
- 可用于注释掉多行代码,比如临时禁用一个方法体:
/* public void foo() { ... } */ - 不支持嵌套:写
/* /* inner */ outer */会报错,因为第一个*/就结束了整个注释 - 不能“悬空”:如果忘记写
*/,编译器会一路吞掉后面所有代码,直到文件末尾或遇到下一个*/,错误提示往往在很远之后才出现 - 文档注释
/** ... */是特例,会被javadoc工具识别,但它不属于普通多行注释范畴
别踩这些坑:注释和代码共存时的常见问题
注释不是“安全区”,它和代码共享同一解析上下文,某些位置放错会直接破坏语法结构。
立即学习“Java免费学习笔记(深入)”;
- 在字符串字面量里写
//或/*不会触发注释——它们就是普通字符:String s = "x // y"; - 但若在字符常量里误写
/*,比如char c = '/*';,会编译失败,因为字符字面量只允许单个字符 - 注释不能拆开关键字:写
Stri// comment ng不等于String,编译器按词法切分,Stri是非法标识符 - IDE有时会自动补全
*/,但手写时容易漏掉,尤其在复制粘贴大段注释后
真正麻烦的不是语法记不住,而是注释消失在编辑器高亮里后,你忘了它还卡在某个 /* 没闭合——这种错误往往要靠编译失败的位置反推,而不是靠眼睛扫出来。










