【Java】2026 Java学习路线:语言根基(一)

张开发
2026/4/16 5:03:48 15 分钟阅读

分享文章

【Java】2026 Java学习路线:语言根基(一)
【Java】语言根基一—— Java基础必学知识点语言根基 之 基础语法1. 注释2. 关键字、标识符规范2.1 完整关键字列表2.2 标识符合法规则语法层面2.3 命名规范3. 变量、常量final3.1 简要概括3.2 详细介绍3.3 速查表4. 数据类型4.1 8种基本数据类型4.2 引用类型4.3 包装类与自动装箱/拆箱5. 类型转换自动/强制5.1 自动类型转换隐式5.2 强制类型转换显式5.3 类型转换进阶6. 运算符7类6.1 算术运算符6.2 赋值运算符6.3 比较运算符6.4 逻辑运算符操作boolean6.5 位运算符操作整数的二进制位6.6 三目三元运算符6.7 类型比较6.8 优先级从高到低语言根基 之 基础语法欢迎来到 Java 世界在开始写代码之前我们需要先打好地基。这一篇讲的是基础语法就像学英语要先学字母和单词一样这些内容会贯穿你整个Java学习之路。不用怕我们一步步来。1. 注释类型语法用途注意单行注释// 注释内容解释单行代码不参与编译多行注释/* 注释内容 */多行说明不支持嵌套文档注释/** 注释内容 */生成API文档javadoc支持paramreturn等标签文档注释/** * 拼接问候语 * param name 姓名不能为null * return 形如 Hello {name} 的问候字符串 */ public String sayHello(String name) { return Hello name; }为什么要写注释防止自己几周后看不懂自己的代码防止别人乱改你的代码面试官就爱看你有没有注释习惯防止半夜紧急修bug时救命注释是写给“人”看的编译器会直接忽略。别怕写注释但别写// i // 让i加1这种废话。2. 关键字、标识符规范关键字是 Java 语言预先保留的、具有特殊含义的单词不能用作标识符类名、方法名、变量名等。标识符是程序员自定义的名称用于标识类、接口、方法、变量、常量、参数等。2.1 完整关键字列表访问控制privateprotectedpublic类、方法、变量声明abstractclassenumextendsfinalimplementsinterfacenativenewstaticstrictfpsynchronizedtransientvolatile流程控制breakcasecontinuedefaultdoelseforifinstanceofreturnswitchwhile异常处理assertcatchfinallythrowthrowstry基本类型booleanbytechardoublefloatintlongshort其他importpackagesuperthisvoid未使用但保留constgoto不能使用但会报错上下文关键字modulerequiresexportsopensusesprovideswithtransitivetoopen2.2 标识符合法规则语法层面只能由 字母A-Z, a-z、数字0-9、下划线_和美元符号$ 组成。不能以数字开头。不能是关键字或保留字。长度不限但建议有实际意义。Java 对标识符大小写敏感name 与 Name 不同。2.3 命名规范采用骆驼命名法camelCase或帕斯卡命名法PascalCase并根据类型区分类型命名风格示例类/接口帕斯卡首字母大写UserService,Runnable方法骆驼首字母小写getUserById(),isValid()变量骆驼首字母小写studentName,count常量全大写 下划线分隔MAX_SIZE,DEFAULT_TIMEOUT包名全小写com.example.user.service泛型类型参数单个大写字母T,E,K,V3. 变量、常量final变量是内存中一个命名的存储单元用于保存程序运行时可变化的数据。常量是值不可变的变量一旦赋值后不能被修改。3.1 简要概括变量格式数据类型 变量名 初始值;int age; // 声明 age 25; // 赋值 age 26; // 重新赋值常量——使用final命名规范常量全大写final double PI 3.14159; PI 3.14; // 报错不能重新赋值注意final 修饰的引用类型变量如 final List list不能重新指向另一个对象但可以修改对象内部状态。初学者容易误解“常量 不可变”。3.2 详细介绍变量、常量final——基础语法3.3 速查表场景写法示例局部变量类型 变量名 值;int count 0;实例变量private 类型 变量名;private String name;类变量private static 类型 变量名;private static int total;实例常量private final 类型 变量名 值;private final int id 1;类常量public static final 类型 变量名 值;public static final double PI 3.14;枚举常量enum 名 { 值1, 值2 }enum Color { RED, BLUE }4. 数据类型4.1 8种基本数据类型类型字节数默认值注意byte10适合节省内存如文件流操作short20极少使用int40整型默认字面量最常用long80L赋值需加 L (如 100L)float40.0f赋值需加 f (如 3.14f)精度低double80.0d浮点默认字面量精度较高char2‘\u0000’单引号可存汉字 (‘中’)booleanfalse不能与任何数值类型相互转换不像 C 语言中 0 代表 false、非0 代表 true。注在 Java 中Boolean 类型的情况比较特殊需要区分基本类型和引用类型基本类型boolean官方规范没有明确定义字节数其大小依赖于 Java 虚拟机JVM的具体实现。实际常见情况在HotSpot JVM中单独的boolean变量实际占1字节boolean数组每个元素占1字节。JVM规范允许不同实现有不同的映射策略。在 boolean 数组中通常被实现为 byte 数组每个元素占 1 个字节。引用类型Boolean这时是一个对象封装了boolean值。在常见 64 位 JVM 且指针压缩默认开启的情况下总大小通常为 16 字节。大小对象头 数据4.2 引用类型引用类型存储的是对象的内存地址/句柄不是对象本身。主要包括3种类、接口、数组。注在 Java 中除了 8 种基本类型以外其余一切皆是引用类型。null是引用类型的特殊值不属于独立类型。分类说明默认值实例类包括普通类、抽象类、枚举、注解nullString,Object,Thread,enum Color接口定义行为规范不能直接实例化nullList,Runnable,Comparable数组存储同类型数据的容器对象nullint[],String[],Object[][]补充局部变量基本/引用无默认值必须手动初始化。存储内容引用变量存储的是对象在堆内存中的地址或句柄而不是对象本身。存储大小固定在同一个 JVM 中无论是什么类型的引用一个字符串引用、一个数组引用、一个对象引用它们变量本身占用的内存大小是固定的通常为 4 字节或 8 字节取决于 JVM 是 32 位还是 64 位以及是否开启指针压缩。实际的对象数据如 new Object() 产生的实例存放在堆内存Heap中。举例String str new String(Hello); str 是引用类型变量存储在栈内存中。 Hello 这个字符串对象存储在堆内存中。 str 的值就是堆中那个对象的内存地址。4.3 包装类与自动装箱/拆箱包装类与自动装箱/拆箱——基础语法核心要点自动装箱/拆箱Integer i 100;编译器自动调用valueOf缓存池Integer 缓存 -128~127推荐用 equals() 比较Integer.parseInt() 与 Integer.valueOf()前者返回 int后者返回 Integer5. 类型转换自动/强制5.1 自动类型转换隐式小范围-大范围byte→short→int→long→float→double。自动发生无信息丢失。int i 100; long l i; // 自动 float f l; // 自动但不一定精确注long 转 float 不属于自动安全转换必定丢失精度5.2 强制类型转换显式大范围 → 小范围可能丢失精度或溢出。语法(目标类型) 值double d 9.99; int i (int) d; // 结果 9截断 byte b (byte) 130; // 结果 -126溢出注意布尔类型不参与数值转换。5.3 类型转换进阶类型转换自动、强制——基础语法6. 运算符7类6.1 算术运算符 - * / %取模 -- int a 10 / 3; // 3 double b 10 / 3.0; // 3.333... int c 10 % 3; // 16.2 赋值运算符 - * / % int x 5; x 3; // 等价 x x 36.3 比较运算符 ! 结果为 boolean6.4 逻辑运算符操作boolean非短路与 |非短路或 !非 ^异或 短路短路与 ||短路或 if (a ! 0 10 / a 1) { } // 安全不会除零6.5 位运算符操作整数的二进制位 | ^ ~ 无符号右移 int a 5 3; // 1 (0101 0011 0001) int b 2 1; // 46.6 三目三元运算符条件 ? 表达式1 : 表达式2int max (a b) ? a : b;6.7 类型比较instanceof6.8 优先级从高到低() [] . (后缀) --(后缀) (前缀) --(前缀) -正负号 ! ~ * / % - instanceof ! ^ | || ?: - * / % ^ |

更多文章