本文将从变量和数据类型讲起,详细介绍8种基本数据类型、各类运算符的用法,最后讲解代码注释和命名规范。掌握这些基础语法,就像学会汉语的拼音和笔画,是后续所有编程学习的基石。学完本文,你将能够独立编写包含变量声明、运算逻辑的完整Java程序。
变量与数据类型
什么是变量?
变量是程序中最基本的存储单元,用于在内存中保存数据。你可以把变量想象成一个带标签的盒子:
变量三要素:
Java的8种基本数据类型
Java提供了4类8种基本数据类型:
整数类型(4种)
注意事项:
- 超过
int范围的长整数需要在数字后加L或l(推荐大写L) - 示例:
long worldPopulation = 7800000000L;
浮点类型(2种)
注意事项:
float类型需要在数字后加f或F(推荐使用大写F)- 示例:
float discount = 0.15f;,double price = 99.99;
字符类型(1种)
字符类型使用要点:
- 可以用单引号表示字符:
char grade = 'A'; - 可以用Unicode转义序列:
char ch = '\\u0041';(等同于'A') - 可以用整数赋值(自动转换为对应字符):
char ch = 65;(等同于'A')
布尔类型(1种)
布尔类型使用要点:
- 不能与整数类型转换(不像C语言中0=false,非0=true)
- 示例:
boolean isJavaFun = true;
变量声明与初始化
声明语法:
数据类型 变量名;
初始化语法:
数据类型 变量名 = 初始值;
示例代码:
public class Variate {
public static void main(String[] args) {
// 声明变量
int age;
double price;
// 初始化变量
age = 25;
price = 99.99;
System.out.println(age);
System.out.println(price);
// 声明并初始化(推荐方式)
int score = 95;
double temperature = 36.5;
char grade = 'A';
boolean isPassed = true;
}
}
变量内存存储原理

内存分配过程:
- 声明阶段:
int age; → 为变量age分配4字节内存空间 - 初始化阶段:
age = 25; → 将值25存入分配的内存空间 - 使用阶段:
System.out.println(age); → 从内存读取值并输出
重要特性:
- 默认值:成员变量有默认值(如int为0),局部变量必须显式初始化
类型转换

自动类型转换(隐式转换)
转换规则:小范围类型 → 大范围类型(编译器自动完成)
byte → short → int → long → float → double
示例:
int intNum = 100;
long longNum = intNum; // 自动转换:int → long
float floatNum = longNum; // 自动转换:long → float
double doubleNum = floatNum; // 自动转换:float → double
强制类型转换(显式转换)
转换规则:大范围类型 → 小范围类型(需要显式转换,可能丢失精度)
示例:
double doubleNum = 99.99;
int intNum = (int)doubleNum; // 强制转换,intNum = 99(丢失小数部分)
long bigNum = 3000000000L;
int smallNum = (int)bigNum; // 强制转换,可能溢出(值超出int范围)
注意事项:
- 逻辑错误:
boolean类型不能与其他类型相互转换
运算符
运算符分类
Java运算符可以分为以下几类:

算术运算符
基本算术运算符
| | | |
|---|
+ | | 5 + 3 | 8 |
- | | 10 - 4 | 6 |
* | | 6 * 7 | 42 |
/ | | 10 / 3 | 3 |
% | | 10 % 3 | 1 |
整数除法注意事项:
- 如果需要小数结果,至少有一个操作数是浮点数:
7.0 / 2 = 3.5
自增自减运算符
前缀与后缀的注意事项:
关系运算符
关系运算符(比较运算符):
| | | |
|---|
> | | 10 > 5 | true |
< | | 3 < 2 | false |
>= | | 5 >= 5 | true |
<= | | 4 <= 3 | false |
== | | 5 == 5 | true |
!= | | 5 != 5 | false |
注意事项:
- 关系运算的结果是
boolean类型(true或false)
逻辑运算符
逻辑运算符(布尔运算符):
| | | | |
|---|
&& | | | (5 > 3) && (2 < 4) | true |
| | | | |
! | | | !(5 > 3) | false |
短路特性:
&&:如果第一个操作数为false,不再计算第二个操作数||:如果第一个操作数为true,不再计算第二个操作数- 示例:
(false && (x > 5)),即使x未定义也不会报错
赋值运算符
基本赋值运算符:
复合赋值运算符:
| | |
|---|
+= | x += 5 | x = x + 5 |
-= | x -= 3 | x = x - 3 |
*= | x *= 2 | x = x * 2 |
/= | x /= 4 | x = x / 4 |
%= | x %= 3 | x = x % 3 |
复合赋值优点:
- 自动类型转换(如
int x = 10; x += 5.5;会自动转换为int)
运算符优先级
优先级从高到低:
最佳实践:
注释与命名规范
Java注释的三种形式
单行注释
// 这是单行注释,从//开始到行尾都是注释内容
int age = 25; // 声明并初始化年龄变量
多行注释
/*
* 这是多行注释
* 可以跨越多行
* 通常用于方法说明或复杂逻辑解释
*/
public class Demo {
// 类内容
}
文档注释(Javadoc)
/**
* 计算两个整数的和
*
* @param a 第一个整数
* @param b 第二个整数
* @return 两个整数的和
*/
public static int add(int a, int b) {
return a + b;
}
文档注释常用标签:
命名规范
驼峰命名法(Camel Case)
小驼峰命名法(变量、方法名):
- 示例:
studentName、calculateTotalScore
大驼峰命名法(类名、接口名):
- 示例:
StudentInfo、StringUtils
具体命名规则
| | |
|---|
| 类名 | | Student |
| 接口名 | | Runnable |
| 方法名 | | getName() |
| 变量名 | | age |
| 常量名 | | MAX_VALUE |
| 包名 | | com.example.util |
命名注意事项
- 见名知意:变量名应反映其用途,避免
a、b等无意义名称 - 长度适中:既不过短(意义不明),也不过长(输入麻烦)
- 避免缩写:除非是广泛接受的缩写(如
max、num) - 区分大小写:Java严格区分大小写,
age和Age是不同的变量
代码格式化建议
缩进:使用4个空格(非Tab键)行长度:建议不超过80-100字符空行:合理使用空行分隔逻辑块花括号:推荐使用K&R风格(左花括号不换行)
示例:
public class FormatExample {
public static void main(String[] args) {
// 变量声明
int age = 25;
double score = 95.5;
// 空行分隔逻辑块
if (score >= 90) {
System.out.println("优秀");
} else {
System.out.println("良好");
}
}
}
📝 总结
核心收获
- 变量是程序的基本存储单元,通过变量名、数据类型和变量值三要素定义
- 8种基本数据类型各有所长:整数类型(byte/short/int/long)、浮点类型(float/double)、字符类型(char)、布尔类型(boolean)
- 运算符是数据处理的工具:算术运算符(+ - * / %)、关系运算符(> < == !=)、逻辑运算符(&& || !)、赋值运算符(= += -=等)
- 类型转换需要谨慎:自动转换安全但有限,强制转换可能丢失精度或溢出
- 注释和命名规范是代码可读性的保障:单行注释、多行注释、文档注释各有用处,驼峰命名法是最佳实践
常见误区
- 混淆赋值与相等判断:
=是赋值,==是相等比较,两者完全不同 - 整数除法忽略小数:
7 / 2 = 3而非3.5,需要至少一个浮点数参与运算 - 滥用强制类型转换:可能导致精度丢失或数据溢出,应尽量避免
- 忽略代码规范:不规范命名和缺乏注释会降低代码可维护性
订阅提醒:关注作者,每天更新一篇Java文章,我们一起从零基础到架构师。