日期:2026-07-13
项目:javaSE-260713-FirstJava
作者:WanJL
一个 .java 源文件由两部分组成:
| 组成部分 | 说明 |
|---|---|
| Java 代码 | 真正参与运行的程序指令 |
| Java 注释 | 写给程序员看的说明文字,不参与编译和运行 |
Java 提供三种注释方式:
| 注释类型 | 语法 | 用途 |
|---|---|---|
| 单行注释 | // 注释内容 |
注释单行说明 |
| 多行注释 | /* 注释内容 */ |
注释多行说明文字 |
| 文档注释 | /** 注释内容 */ |
为类、方法生成 API 文档(JDK 自带 javadoc 工具) |
// 这是单行注释
/*
这是
多行注释
*/
/**
* 这是文档注释
* @author WanJl
* @version 1.0
*/
Java 程序的核心是数据,数据分为不同数据类型。
直接写在代码中的具体值称为字面量(Literal)。
25 // 整数字面量
"张三" // 字符串字面量
7 // 整数字面量
变量是存放数据的容器,可以理解为贴了标签的盒子。
数据类型 变量名 = 变量值;
每一条 Java 语句以 分号
;结束。
int age = 25;
// int → 数据类型(整数类型,integer 的缩写)
// age → 变量名
// 25 → 字面量
Java 中的数据类型分为两大类:
从 C / C++ 继承而来,共 4 类 8 种。
| 类型 | 说明 | 位数(bit) | 字节数(byte) | 表示范围 |
|---|---|---|---|---|
byte |
字节型 | 8 | 1 | -2^7 ~ 2^7-1 |
short |
短整型 | 16 | 2 | -2^15 ~ 2^15-1 |
int |
整型 | 32 | 4 | -2^31 ~ 2^31-1 |
long |
长整型 | 64 | 8 | -2^63 ~ 2^63-1 |
float |
单精度浮点型 | 32 | 4 | 约 ±3.4×10³⁸ |
double |
双精度浮点型 | 64 | 8 | 约 ±1.8×10³⁰⁸ |
char |
字符型 | 16 | 2 | 0 ~ 65535(Unicode) |
boolean |
布尔型 | 1(JVM 中占 1 字节) | 1 | true / false |
分配内存的原则:程序运行在内存中,不同大小的数据需要分配不同的内存空间。例如「一个人的年龄」和「太阳到地球的距离(米)」显然不能分配相同大小的内存。
| 单位 | 换算 |
|---|---|
| 1 bit(比特位) | 1 位二进制数(0 或 1) |
| 1 B(字节) | 8 bit |
| 1 KB | 1024 B |
| 1 MB | 1024 KB |
| 1 GB | 1024 MB |
| 1 TB | 1024 GB |
⚠️ 计算机最小的存储单元是 bit,但最小的分配单元是 byte(1 字节 = 8 bit)。好比烧烤店 1 串 3 元,但至少 5 串起卖。
面向对象语言特有的类型。Java 中除了 8 种基本数据类型,其余全部属于引用数据类型。
包括:
class)interface)[])enum)@interface)后续课程会详细讲解引用类型。
// 特殊 1:long 类型赋值时,整数值末尾要加 L 或 l(推荐大写 L)
long distance = 10000000000L;
// 特殊 2:float 类型赋值时,小数值末尾要加 F 或 f
float price = 19.99F;
// 特殊 3:char 类型必须使用单引号 '' 括起来,且只能有 1 个字符
char gender = '男';
// 特殊 4:boolean 类型值只能是 true 或 false
boolean isPass = true;
Java 中除了 8 种基本数据类型,其余全部是引用数据类型。两者核心区别如下:
| 对比维度 | 基本数据类型 | 引用数据类型 |
|---|---|---|
| 存什么 | 直接存"值" | 存数据在内存中分配的空间地址值 |
| 默认值 | 0 / 0.0 / false |
null |
| 赋值 | 直接复制值,值之间互相独立 | 复制的是地址值 |
| 比较 | 比较的是值 | 比较的是地址(==) |
String name = "张三";
⚠️ 注意:
String不是关键字(keyword),它是 Java 官方提供的类,属于引用数据类型。所有引用数据类型的命名都遵循大驼峰(PascalCase):每个单词首字母大写。
例如:
StringBuffer、MyClass、StudentName
System.out.println(输出的内容);
| 关键字 | 含义 |
|---|---|
System |
系统 |
out |
输出 |
print |
打印 |
ln |
换行(等价于 \n) |
快捷输入:在 IntelliJ IDEA 中输入
sout+Tab可直接生成。
public static void main(String[] args) {
// 代码写在这里才能执行
}
main 方法是 Java 程序的运行入口main 方法内部psvm + Tab| 规则 | 说明 |
|---|---|
| ① 允许的字符 | 字母(a~z、A~Z)、数字(0~9)、美元符号 $、下划线 _ |
| ② 大小写敏感 | age 和 Age 是两个不同的变量 |
| ③ 禁止关键字 | 不能使用 Java 关键字/保留字(如 public、static、void、class 等) |
| ④ 驼峰命名法 | 小驼峰:第一个单词首字母小写,后续单词首字母大写(如 myName) |
public class Demo01 {
// 单行注释
/*
多行注释
*/
/**
* 文档注释
*/
// 此处仅为概念说明,无 main 方法,不能独立运行
}
/**
* @author WanJl
* @version 1.0
* @title Demo02
* @create 2026/7/13
*/
public class Demo02 {
public static void main(String[] args) {
// 1. 定义变量
int age = 24;
// 2. 输出变量
System.out.println(age);
}
}
public class Main {
public static void main(String[] args) {
System.out.printf("Hello and welcome!");
for (int i = 1; i <= 5; i++) {
System.out.println("i = " + i);
}
}
}
/**
* @author WanJl
* @version 1.0
* @title Demo03
* @create 2026/7/13
*/
public class Demo03 {
public static void main(String[] args) {
// 创建各种基本数据类型的变量并输出
int a = 15;
System.out.println(a);
// 特殊 1:long 类型要在整数值后面加 L 或 l
// 特殊 2:float 类型要在小数后面加 F 或 f
// 特殊 3:char 类型的值必须使用单引号,且只能是 1 个字符
// 特殊 4:boolean 类型的值只能是 true 或 false
}
}
/**
* @author WanJl
* @version 1.0
* @title Demo04
* @create 2026/7/13
*/
public class Demo04 {
public static void main(String[] args) {
// String 是典型的引用数据类型
String name = "张三";
String gender = "男";
String school = "我的学校";
System.out.println(name);
System.out.println(gender);
System.out.println(school);
/*
基本数据类型 vs 引用数据类型
存什么: 直接存"值" vs 存地址值
默认值: 0/0.0/false vs null
赋值: 复制值(独立) vs 复制地址
比较: 比较值 vs 比较地址
*/
}
}
psvm 快速生成 main 方法sout 快速生成 System.out.println()// 注释的内容不会被执行; 结尾byte、short、int、long、float、double、char、booleanL、F、单引号、true/false)String 是引用数据类型,不是关键字,采用大驼峰命名| 概念 | 说明 |
|---|---|
| 关键字(Keyword) | Java 预留的具有特殊含义的单词(如 public、class、static、void、int) |
| 保留字(Reserved Word) | 暂未使用但预留的单词(如 goto、const) |
| 标识符(Identifier) | 程序员自定义的名称(类名、方法名、变量名等) |