Java 基础(使用IDEA)
Java基础01:注释
- 书写注释是一个非常好的习惯
- 平时写代码一定要规范
- 注释不会被执行,是给我们写代码的人看的
- Java中的注释有三种
- 单行注释
- 多行注释
- 文档注释
首先创建一个空项目


配置环境

单行注释

多行注释

文档注释

注释的颜色修改

Java基础02:标识符和关键字

Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
1. 关键字 (Keywords)
- 定义:Java语言中被赋予了特殊含义、用做专门用途的字符串(单词)。
- 列表:包括
abstract,boolean,break,class,public,static,void,if,else,return等。 - 特点:
- Java中所有关键字都是小写的。String?System?
- 在开发工具(IDE)中通常会高亮显示。
- 补充知识(便于理解):
- 保留字 (Reserved Words):
goto和const。它们在Java中虽然目前没有具体功能,但被占位了,因此也不能拿来做标识符。
- 保留字 (Reserved Words):
2. 标识符 (Identifiers)
- 定义:Java中所有的组成部分都需要名字。类名、变量名、方法名都被称为标识符。
- 硬性规则 (语法层面必须遵守):
- 开头限制:只能以 字母 (A-Z/a-z)、美元符 ($)、或 下划线 (_) 开头。绝对不能以数字开头。
- 字符组合:首字符之后,可以是 字母、美元符、下划线 或 数字 的任意组合。
- 避开禁区:不能使用 关键字 作为标识符(例如不能给变量起名叫
class)。 - 大小写敏感:Java是强区分大小写的,
Man和man是两个不同的标识符。
- 示例:
- ✅ 合法:
age,$salary,_value,__1_value - ❌ 非法:
123abc(数字开头),-salary(减号非法),#abc(#号非法)
- ✅ 合法:
3. 行业规范与建议 (补充内容)
这部分虽然不影响代码报错,但决定了代码是否“规范”和“专业”:
- 命名约定 (驼峰命名法 CamelCase):
- 类名 (Class):使用 大驼峰 (UpperCamelCase),每个单词首字母大写。例如:
HelloWorld,UserController。 - 变量名/方法名:使用 小驼峰 (lowerCamelCase),第一个单词首字母小写,后面单词首字母大写。例如:
studentName,getUserAge()。 - 常量:全部大写,单词间用下划线隔开。例如:
MAX_VALUE。
- 类名 (Class):使用 大驼峰 (UpperCamelCase),每个单词首字母大写。例如:
- 见名知意:
- 推荐使用有意义的英文单词(如
age)。 - 强烈不建议使用拼音(如
nianLing,这确实很Low)或中文,也不要使用无意义的字母(如a,b)。
- 推荐使用有意义的英文单词(如
Java基础03:数据类型
二、核心知识点讲解
(一)强类型语言特性回顾(数据类型的前提)
视频开篇结合前文内容,再次强调 Java 作为强类型语言的核心要求,为数据类型讲解铺垫逻辑基础:
- 变量使用必须 “先定义、后使用”,且定义时需明确指定数据类型,一旦类型确定,后续赋值 / 运算需符合该类型规则(如 int 类型变量不能直接赋值字符串);
- 数据类型决定了变量占用内存的大小、存储格式及可进行的运算(如整数类型可做加减乘除,布尔类型仅能表示 true/false)。
(二)Java 数据类型分类(两大体系)
视频将 Java 数据类型清晰划分为 “基本数据类型” 和 “引用数据类型”,并逐一拆解细节,重点围绕基本数据类型展开深度讲解:
1. 基本数据类型(8 种,直接存储数据值)
作为本节核心,视频对每种基本数据类型的 “类型名称、关键字、占用内存、取值范围、典型用途” 进行了详细说明,部分类型搭配代码示例演示:
| 类型分类 | 具体类型 | 关键字 | 占用内存 | 取值范围 | 典型用途 |
|---|---|---|---|---|---|
| 整数类型 | 字节型 | byte | 1 字节 | -128 ~ 127 | 存储小范围整数(如文件字节数据、状态标记) |
| 短整型 | short | 2 字节 | -32768 ~ 32767 | 存储中等范围整数(如简单计数、年龄) | |
| 整型 | int | 4 字节 | -2³¹ ~ 2³¹-1 | 最常用,存储普通整数(如商品数量、ID) | |
| 长整型 | long | 8 字节 | -2⁶³ ~ 2⁶³-1 | 存储大范围整数(如时间戳、身份证号),定义时需在数值后加 “L”(如long num = 100000L) | |
| 浮点类型(小数) | 单精度浮点型 | float | 4 字节 | 约 ±3.4×10³⁸(精度较低,保留 6-7 位有效数字) | 存储无需高精度的小数(如简单测量数据),定义时需在数值后加 “F”(如float pi = 3.14F) |
| 双精度浮点型 | double | 8 字节 | 约 ±1.8×10³⁰⁸(精度较高,保留 15-16 位有效数字) | 最常用,存储高精度小数(如金额、圆周率),默认小数类型(如double price = 99.9) | |
| 字符类型 | 字符型 | char | 2 字节 | 0 ~ 65535(对应 Unicode 编码) | 存储单个字符(如字母、数字、符号),定义时用单引号包裹(如char c = 'A',支持中文char c = '中') |
| 布尔类型 | 布尔型 | boolean | 1 字节(或 1 位,视 JVM 而定) | true(真)/false(假) | 存储逻辑判断结果(如条件判断、开关状态),仅能取这两个值(无 “0 代表 false、1 代表 true” 的用法) |
2. 引用数据类型(间接存储数据地址)
视频仅做基础概念铺垫,未展开深度讲解,避免信息过载:
- 包含:类(class)、接口(interface)、数组([]);
- 特点:变量存储的是数据在内存中的 “地址”,而非数据本身(后续课程会详细讲解)。
(三)关键注意事项与常见误区
视频通过 “知识点 + 反例” 的形式,强调易出错的细节,帮助学习者规避误区:
- 整数类型的默认值:Java 中整数直接量默认是
int类型,若数值超出int范围(如10000000000),必须显式声明为long(加 “L”),否则会报错; - 浮点类型的精度问题:提醒
float和double均为 “近似值”,不能用于要求绝对精确的场景(如银行金额),此类场景需使用BigDecimal类(后续课程讲解),并举例:0.1 + 0.2的结果并非0.3,而是约0.30000000000000004; - 字符类型的编码逻辑:说明
char类型基于 Unicode 编码,可存储中文(因 Unicode 包含中文编码),但不能存储多个字符(如char c = "AB"会报错,需用双引号的字符串类型); - 布尔类型的使用限制:
boolean类型仅能表示true/false,不能与整数相互转换(如boolean flag = 1是错误写法,区别于 C/C++)。
(四)代码示例演示
视频中穿插简单代码案例,帮助学习者直观理解数据类型的定义与使用:
java
// 1. 整数类型示例 byte b = 100; // 正确,100在byte取值范围内 short s = 2000; // 正确 int i = 100000; // 正确(常用) long l = 10000000000L; // 正确,加L声明为long // 2. 浮点类型示例 float f = 3.14F; // 正确,加F声明为float double d = 3.1415926; // 正确(常用,默认double) // 3. 字符类型示例 char c1 = 'A'; // 正确,单个字母 char c2 = '中'; // 正确,单个中文 char c3 = 65; // 正确,65是'A'的Unicode编码 // 4. 布尔类型示例 boolean flag = true; // 正确 if (flag) { System.out.println("条件成立"); } 三、课程学习建议
- 动手实践:建议学习者对照视频代码,亲自在 IDE(如 IDEA、Eclipse)中编写并运行,观察变量定义是否报错、数值超出范围时的提示,加深对 “强类型规则” 的理解;
- 记忆重点:重点记忆 8 种基本数据类型的 “关键字、占用内存、取值范围”,尤其是
int、double的默认属性和long、float的显式声明规则; - 提前思考:尝试用所学数据类型定义生活中的数据(如 “学生年龄” 用
int,“学生身高” 用double,“性别标记” 用char或boolean),培养 “数据类型匹配” 的思维。
Java基础04:数据类型扩展及面试题讲解
二、核心知识点:数据类型扩展
视频围绕 “整数、浮点、字符、布尔” 四大基本数据类型,从 “进制表示、编码逻辑、类型特性” 三个维度展开扩展讲解,每个模块均结合 “概念 + 示例”,避免抽象化理解:
(一)整数类型扩展:进制表示与转换
Java 中整数支持多进制定义,这是面试中基础且高频的考点,视频重点讲解以下 4 种进制及其语法规则:
| 进制类型 | 语法标识 | 示例 | 说明 |
|---|---|---|---|
| 十进制 | 无标识(默认) | int a = 10; | 日常使用的 0-9 数字组合,无需额外标记 |
| 二进制 | 以0b开头(注意是小写 b) | int b = 0b10; | 仅包含 0 和 1,0b10对应十进制的 2 |
| 八进制 | 以0开头(数字 0) | int c = 010; | 包含 0-7 数字,010对应十进制的 8(易因多写 0 出错,需重点注意) |
| 十六进制 | 以0x开头(0 + 小写 x) | int d = 0x10; | 包含 0-9、A-F(大小写均可),0x10对应十进制的 16(如0x000A对应十进制 10) |
关键提醒:视频通过代码运行演示(如System.out.println(010);输出结果为 8),强调 “八进制以 0 开头” 的易错点,避免学习者因语法疏忽导致逻辑错误。
(二)浮点类型扩展:精度问题与场景限制
上一节已提及浮点类型的 “近似值” 特性,本节进一步深入解析精度问题的本质,并结合面试场景说明使用限制:
- 面试核心结论:严禁使用
float和double处理 “要求绝对精确” 的场景(如银行金额、财务计算),需使用 Java 提供的java.math.BigDecimal类(后续课程会详解该类的使用)。
精度问题的底层原因:视频用通俗语言解释:float和double基于 “二进制浮点数” 存储,无法精确表示所有十进制小数(如 0.1),只能存储近似值。举例验证:java
float f1 = 0.1f; double d1 = 0.1; System.out.println(f1 == d1); // 输出false(0.1f和0.1的近似值不同) float f2 = 233333333f; float f3 = f2 + 1; System.out.println(f2 == f3); // 输出true(超出float精度范围,加1后值无变化) (三)字符类型扩展:编码逻辑与类型转换
字符类型的扩展围绕 “Unicode 编码” 和 “字符→数字的隐式转换” 展开,这是理解 Java 字符处理的关键:
- Unicode 编码的应用:视频明确
char类型本质是 “Unicode 编码对应的数字”(占 2 字节,取值 0-65535),因此有两种定义方式:- 直接写字符:
char c1 = 'A';('A' 对应 Unicode 编码 65) - 直接写编码值:
char c2 = 65;(输出时会自动转换为 'A')同时演示 “中文支持”:char c3 = '中';(' 中 ' 对应 Unicode 编码 45217),解释 Java 对中文的友好性源于 Unicode 编码的全面性。
- 直接写字符:
字符的隐式转换:当字符与整数运算时,char会自动转换为对应的 Unicode 数字,举例:java
char c4 = 'A'; int num = c4 + 1; // 'A'(65)+1=66 System.out.println(num); // 输出66 System.out.println((char)num); // 强制转换回字符,输出'B' 视频强调:这是 Java 的 “自动类型提升” 特性,后续 “类型转换” 章节会进一步展开。
(四)布尔类型扩展:简化语法与逻辑意义
布尔类型扩展聚焦 “语法简化” 和 “面试误区”,内容简洁但实用:
- 面试常见误区:明确 “布尔类型不能与整数转换”——Java 中
boolean仅表示 “真 / 假”,无 “0 代表 false、1 代表 true” 的用法(区别于 C/C++),boolean flag = 1;是错误语法,会直接编译报错。
语法简化建议:对于布尔类型的条件判断,无需写冗余的 “==true” 或 “==false”,举例:java
boolean flag = true; // 冗余写法:if (flag == true) if (flag) { // 简化写法,逻辑完全一致,推荐使用 System.out.println("条件成立"); } 三、高频面试题拆解与作答思路
视频的核心价值之一是 “结合面试场景”,将扩展知识点转化为 “可落地的面试答案”,以下是重点讲解的 3 道面试题及解析逻辑:
面试题 1:解释为什么float f = 0.1f; double d = 0.1; System.out.println(f == d);输出 false?
视频解析思路:
- 先点明 “浮点类型的存储本质”:
float和double是二进制浮点数,无法精确表示 0.1 这样的十进制小数,只能存储近似值; - 再对比精度差异:
float是 4 字节(6-7 位有效数字),double是 8 字节(15-16 位有效数字),0.1 的float近似值和double近似值存在微小差异; - 最后总结:两者存储的 “近似值不同”,因此
==比较(比较数值本身)时结果为 false。答题关键:必须提到 “二进制浮点数的精度限制”,而非仅说 “类型不同”。
面试题 2:char类型能否存储一个中文汉字?为什么?
视频解析思路:
- 先给出明确结论:能;
- 再解释底层原因:Java 中
char类型基于 Unicode 编码,Unicode 编码集包含了几乎所有国家的文字(包括中文),每个char占 2 字节,而一个中文汉字的 Unicode 编码恰好能被 2 字节存储; - 举例验证:
char c = '中';是合法语法,编译运行无异常。答题关键:必须关联 “Unicode 编码” 和 “char 的 2 字节存储”,避免仅回答 “能” 而不解释原因。
面试题 3:Java 中整数的进制表示有哪些?如何区分?
视频解析思路:
- 先列举 4 种进制:十进制、二进制、八进制、十六进制;
- 再逐一说明 “语法标识”(核心区分点):
- 十进制:无标识(如 10);
- 二进制:
0b开头(如0b10); - 八进制:
0开头(如010); - 十六进制:
0x开头(如0x10);
- 最后提醒易错点:八进制的 “0 开头” 容易被忽略,比如
010实际是十进制的 8,而非 10,开发中需注意避免多写 0。答题关键:清晰区分 “标识符号”,并提及八进制的易错点,体现细节掌握程度。
四、课程学习建议
- 动手验证所有示例:建议在 IDE 中逐行编写视频中的代码(如进制转换、浮点比较),观察运行结果,通过 “实践” 加深对 “精度问题、编码逻辑” 的理解,避免 “死记硬背”;
- 整理面试题答题模板:将视频中的 3 道面试题按 “结论→原因→示例” 的结构整理成笔记,形成答题框架(如回答浮点问题必提 “二进制精度”),为后续面试储备素材;
- 关联前后知识点:回顾上一节 “基本数据类型定义”,将 “扩展内容”(如进制、编码)与 “基础定义”(如 char 占 2 字节)串联,形成完整的 “数据类型知识体系”,避免知识点碎片化。