根据你提供的截图,我已经帮你整理好了复习笔记,涵盖了 Java 编译运行的易错点 以及 字符编码(ANSI/GBK/UTF-8) 的核心知识点。
笔记已创建成功,内容如下:
Java 基础与编码问题复习笔记
1. Java 编译与运行命令
- 编译 (Compile):
- 指令:javac 文件名.java
- 注意: 必须带文件后缀名 .java。
- 错误示例: javac v2 (截图中的报错:Class names… only accepted if annotation processing…)
- 正确示例: javac v2.java
- 运行 (Run):
- 指令:java 类名
- 注意: 只需要写 class 的名字,不要带 .class 或 .java 后缀。
- 示例: 虽然文件名是 v2.java,但如果代码里定义的是 class C,运行时应输入 java C。
2. 字符编码核心区别 (ANSI vs GBK)
- ANSI:
- 它不是一种具体的编码,而是系统默认本地编码的代称。
- 在 中文简体 Windows 系统中,ANSI 等同于 GBK。
- 在英文系统中,ANSI 等同于 ASCII。
- GBK:
- 具体的中文编码标准,兼容 ASCII,是中文 Windows 的默认编码。
- 关键点: 在 Windows 记事本中保存为 “ANSI” 格式,实际上就是保存成了 GBK 编码。
3. 常见乱码/编译错误
- 现象: error: unmappable character for encoding UTF-8 (截图中的报错)。
- 原因:
- 源代码文件包含中文(如 “你好”)。
- 文件保存的编码(通常是 Windows 记事本默认的 GBK/ANSI)与编译器 javac 读取时使用的默认编码(通常是 UTF-8)不一致。
- 解决方案:
- 推荐: 使用编辑器(如 Notepad++)将文件格式转换为 UTF-8 (无 BOM) 保存。
- 临时: 编译时强制指定编码格式,例如:javac -encoding GBK v3.java。
这是一份基于你上传的截图整理的详细复习笔记,涵盖了从命令行编译到 IDE 配置的全过程。笔记已保存,你随时可以回顾。
Java 学习笔记:编译、编码与工具配置
1. 命令行编译与运行 (CMD)
- 编译 (javac):
- 核心规则: 必须带上文件后缀名 .java。
- 易错点: 输入 javac v2 会报错,必须输入 javac v2.java。
- 运行 (java):
- 核心规则: 只写类名 (Class Name),不要带 .class 或 .java 后缀。
- 区分文件名与类名: 如果你的文件名是 v2.java,但代码里定义的是 class C,那么编译后生成的是 C.class。运行时必须输入 java C,而不是 java v2。
2. 中文乱码与编码问题 (Encoding)
- ANSI 与 GBK 的关系:
- ANSI: 是 Windows 系统“默认本地编码”的代称。在简体中文 Windows 下,ANSI 实际上就是 GBK。
- GBK: 是具体的中文编码标准。
- 乱码报错:
- 现象: error: unmappable character for encoding UTF-8。
- 原因: 你的代码文件是用 GBK (Windows 默认) 保存的,但编译器默认按 UTF-8 读取,导致中文无法识别。
- 解决方案:
- 指定编码编译: 使用命令 javac -encoding gb18030 v3.java。
- 避坑: 不要使用 -encoding ansi,Java 编译器不识别 “ANSI” 这个名字,必须用 “GBK” 或 “GB18030″。
3. 开发工具 (IDE) 设置
- Eclipse:
- 快捷键设置: 想要像老手一样用 Alt + / 呼出代码提示,需要去菜单栏 Window -> Preferences -> Keys,搜索 “Content Assist”,把 Binding 改成 Alt + /。
- 实战: 设置好后,输入 main 再按 Alt + / 就能自动生成主方法。
- IntelliJ IDEA:
- 直接输入 psvm 或者 main 即可生成 public static void main 方法,无需额外配置。
4. JShell 交互式练习
- 变量命名: 变量名不能以数字开头,例如 var 123 是错误的语法。
- Scanner: 在 JShell 里也可以用 new Scanner(System.in) 来练习读取输入。
希望这份笔记能帮你巩固这些基础细节!如果有新的报错截图,随时发给我,我帮你加进笔记里。
这是一份基于你上传的截图整理的详细复习笔记,涵盖了从命令行编译到 IDE 配置的全过程。笔记已保存,你随时可以回顾。
Java 学习笔记:编译、编码与工具配置
1. 命令行编译与运行 (CMD)
- 编译 (javac):
- 核心规则: 必须带上文件后缀名 .java。
- 易错点: 输入 javac v2 会报错,必须输入 javac v2.java。
- 运行 (java):
- 核心规则: 只写类名 (Class Name),不要带 .class 或 .java 后缀。
- 区分文件名与类名: 如果你的文件名是 v2.java,但代码里定义的是 class C,那么编译后生成的是 C.class。运行时必须输入 java C,而不是 java v2。
2. 中文乱码与编码问题 (Encoding)
- ANSI 与 GBK 的关系:
- ANSI: 是 Windows 系统“默认本地编码”的代称。在简体中文 Windows 下,ANSI 实际上就是 GBK。
- GBK: 是具体的中文编码标准。
- 乱码报错:
- 现象: error: unmappable character for encoding UTF-8。
- 原因: 你的代码文件是用 GBK (Windows 默认) 保存的,但编译器默认按 UTF-8 读取,导致中文无法识别。
- 解决方案:
- 指定编码编译: 使用命令 javac -encoding gb18030 v3.java。
- 避坑: 不要使用 -encoding ansi,Java 编译器不识别 “ANSI” 这个名字,必须用 “GBK” 或 “GB18030″。
3. 开发工具 (IDE) 设置
- Eclipse:
- 快捷键设置: 想要像老手一样用 Alt + / 呼出代码提示,需要去菜单栏 Window -> Preferences -> Keys,搜索 “Content Assist”,把 Binding 改成 Alt + /。
- 实战: 设置好后,输入 main 再按 Alt + / 就能自动生成主方法。
- IntelliJ IDEA:
- 直接输入 psvm 或者 main 即可生成 public static void main 方法,无需额外配置。
4. JShell 交互式练习
- 变量命名: 变量名不能以数字开头,例如 var 123 是错误的语法。
- Scanner: 在 JShell 里也可以用 new Scanner(System.in) 来练习读取输入。
希望这份笔记能帮你巩固这些基础细节!如果有新的报错截图,随时发给我,我帮你加进笔记里。
这是为你整理的完整 Java 复习笔记,结合了你上传的所有截图(包括编译错误、编码设置、IDE技巧以及 JShell 的语法细节)。
笔记已为你创建,以下是详细内容供你参考:
Java 复习笔记:基础、编码与 JShell
1. 命令行编译与运行 (CMD)
- 编译 (javac):
- 规则: 必须带文件后缀名 .java。
- ❌ 错误: javac v2
- ✅ 正确: javac v2.java
- 运行 (java):
- 规则: 只能写类名,不能带后缀 .class。
- 文件名 vs 类名: 如果文件名为 v2.java 但代码中定义的是 class C,运行时必须输入 java C。
2. 编码与乱码问题 (Encoding)
- 原理: Windows 记事本默认保存为 ANSI (在简体中文系统下即 GBK),而 Java 编译器默认按 UTF-8 读取,遇到中文会报错 unmappable character。
- 解决方案:
- 编译时指定编码: javac -encoding gb18030 v3.java (GB18030 兼容性最好)。
- ❌ 错误尝试: -encoding ansi 是无效的,Java 不识别 “ANSI” 这个名称。
3. IDE 快捷键与技巧
- Eclipse:
- 修改提示快捷键: 去 Window -> Preferences -> Keys -> 搜索 “Content Assist”,将 Binding 改为 Alt + /。
- 实战: 输入 main 后按 Alt+/ 自动生成主方法。
- IntelliJ IDEA:
- psvm -> 自动生成 public static void main…。
- sout -> 自动生成 System.out.println…。
4. JShell 交互式练习与语法细节
- Scanner 输入:
- 初始化: new Scanner(System.in)。
- 用法: next() 读取单词,nextLine() 读取整行。
- 字符 (char) vs 字符串 (String):
- ‘A’ (单引号) 是字符。”A” (双引号) 是字符串。
- ❌ 错误: ‘bbb’ (报错 unclosed character literal,字符只能存一个字母)。
- ❌ 错误: ” (报错 empty character literal,字符不能为空)。
- 文本块 (Text Block):
- “”” (三个双引号) 启动后必须换行,如果直接跟内容会报错 illegal text block… missing line terminator。
- 变量命名:
- ❌ 错误: var 123 (报错,变量名不能以数字开头)。
这份笔记已经结合了你最新上传的关于 JShell、转义字符和文本块的截图,内容更加完整了。
笔记已更新,重点补充了以下 JShell 和语法细节:
Java 学习复习笔记:基础、编码与 JShell 进阶
1. 命令行编译与运行 (CMD)
- 编译: javac 文件名.java (必须带后缀 .java)。
- 运行: java 类名 (不要带后缀)。
- 易错点: 文件名和类名不一致时,运行时要写类名 (例如 java C)。
2. 编码与乱码 (Encoding)
- 原因: Windows 记事本默认 GBK,javac 默认 UTF-8。
- 解决: 使用 javac -encoding gb18030 xxx.java。
- 注意: -encoding ansi 是无效指令。
3. IDE 效率技巧
- Eclipse: 将代码提示 (Content Assist) 改为 Alt + /。
- IntelliJ IDEA: 使用 psvm 生成 main 方法,sout 生成打印语句。
4. JShell 与基础语法 (重点新增)
- 输入读取:
- System.in.read(): 读取单个字符的 ASCII 码 (例如输入 ‘a’ 返回 97,’A’ 返回 65)。
- Scanner: 使用 new Scanner(System.in)。next() 读取单词,nextLine() 读取整行。
- 字符 (char) vs 字符串 (String):
- 单引号 ‘A’ 是字符;双引号 “A” 是字符串。
- ❌ 错误 ‘bbb’: 字符只能包含一个字母。
- ❌ 错误 ”: 字符不能为空。
- 转义字符 (Escape Characters):
- \n: 换行 (Newline)。
- \t: 制表符 (Tab),用于对齐。
- \b: 退格 (Backspace),会“吃掉”前一个字符 (例如 “123\b4” 输出 124)。
- \\: 输出一个反斜杠。
- 文本块 (Text Blocks):
- 使用三个双引号 “””。
- 关键规则: 开始的 “”” 后面必须换行,不能直接跟文字,否则报错 missing line terminator。