本文纲要
- 第一个程序:HelloWorld
编写、编译、运行三步骤
编译运行流程(配图) - HelloWorld 代码详解
逐个元素构建程序
class、main、System.out.println 的含义
public 的限制作用 - HelloWorld 常见问题与调试
Bug 的概念与解决思路
大小写、括号遗漏、中文符号等典型错误 - 注释
单行注释、多行注释
注释的作用与注意事项 - 关键字
关键字的概念与特征
main 是不是关键字? - 常量
常量的概念与分类
字符串、整数、小数、字符、布尔、空常量 - 变量
为什么需要变量(内存模型)
变量的定义与使用
变量的赋值与值的变化(配图)
变量注意事项(重复定义、同时定义多个、初始化、float/long 后缀、作用域)
第一个程序:HelloWorld
HelloWorld 是每一门编程语言的入门案例,其效果是在控制台输出 HelloWorld
Java 程序的开发遵循 编写 → 编译 → 运行 三个步骤
1 )编写源代码
新建文本文件,命名为 HelloWorld.java,使用记事本打开并写入以下代码:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
该 .java 文件即为 Java 源程序
2 ) 编译源代码
源程序不能直接被 Java 虚拟机识别,需要使用 javac 编译器进行编译
打开命令行,切换到 HelloWorld.java 所在目录,执行:
$ javac HelloWorld.java
编译成功后,会生成 字节码文件 HelloWorld.class。
3 ) 运行字节码
使用 java 命令运行字节码文件(运行时不要加 .class):
$ java HelloWorld
控制台输出:
HelloWorld
4 ) 编译与运行流程图
关键命令总结:
- 编译:javac 文件名.java
- 运行:java 类名
HelloWorld 代码详解
我们从零开始构建这个程序,逐步理解每一部分的作用
1 ) 定义一个类
class A {
}
class 是用于 定义类 的关键字,后面跟类的名称(类名可以自定义)
一对大括号 {} 是类的主体
建议类名与文件名保持一致(方便管理,尤其加上 public 后强制一致)
保存为 A.java,编译可以通过,但运行会报错:
错误: 在类 A 中找不到 main 方法
原因是:没有程序的入口
2 ) 添加 main 方法(程序入口)
class A {
public static void main(String[] args) {
}
}
main 方法是 Java 程序的入口点,虚拟机从这里开始执行
格式必须严格遵循:public static void main(String[] args)
不加 main,程序无法运行
此时编译运行,没有错误,但控制台没有任何输出,因为 main 方法内部是空的
3 ) 添加输出语句
class A {
public static void main(String[] args) {
System.out.println("我是一个练习时长半年的 Java 练习生");
}
}
System.out.println() 用来在控制台打印内容
双引号内的文字是字符串,可以随意修改
编译 → 运行,控制台会显示双引号中的内容
4 ) 添加 public 限制
在 class 之前加上 public:
public class A {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
public 修饰类时,强制要求 类名与文件名一致
如果类名为 A,文件名必须是 A.java;若不一致,编译报错
为保持规范,建议始终使用 public class 并与文件名一致
5 ) 最终 HelloWorld 模板
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
可修改部分:类名(与文件名一致)和双引号内的打印内容。其余关键字、格式均不能变动
HelloWorld 常见问题与调试
1 ) 什么是 Bug?
Bug 是指程序中的缺陷或错误
Java 程序开发中常见的 Bug 可以通过编译器与运行时错误提示定位
2 ) 典型错误分析
① 大小写问题
Java 严格区分大小写。例如 System 写成 system,编译报错:
错误: 程序包system不存在
System.out.println("HelloWorld");
^
修正:将 s 改为大写
② 大括号或小括号遗漏
缺少大括号:解析时已到达文件结尾,检查括号是否成对。
缺少小括号:需要 ‘(’,在提示位置补全。
③ 中文符号错误
Java 代码中所有符号必须为 英文半角。若使用了中文分号 ;,编译器提示:
错误: 非法字符: '\uff1b'
修正:替换为英文分号 ;
④ 主方法名拼写错误
main 写成 mian 等,编译通过但运行时报错:
错误: 在类 xxx 中找不到 main 方法
必须严格拼写为 main
3 ) 调试建议
从错误提示入手,关注行号和箭头指示。
多编译,每次修改后重新 javac。
不要死记硬背,通过错误信息训练分析能力。
注释
注释是对代码的解释性文字,方便程序员阅读,不会参与编译和运行
1 ) 注释类型
单行注释: // 注释内容
多行注释:/* 注释内容 */
示例:
public class HelloWorld { // 单行注释:定义了一个类
/*
多行注释:
这是程序入口 main 方法
*/
public static void main(String[] args) {
System.out.println("HelloWorld"); // 输出语句
}
}
2 ) 注意事项
注释内可以写任何内容(甚至画符),不影响程序
适当的注释能大幅提高代码可维护性,是专业程序员的必备习惯
关键字
关键字是被 Java 赋予特殊含义的英文单词,例如:
- public:访问修饰符,限制类名与文件名一致(在类上)
- class:用于定义一个类
- static、void、int 等也是关键字
1 ) 关键字的特征
全部字母小写(例如 class 而非 Class)
代码编辑器中通常有特殊颜色标记,便于识别
2 ) main 是关键字吗?
main 不是关键字,它只是一个符合特定签名的普通标识符,但 JVM 将其约定为程序入口方法名
如果写错(如 Main),编译通过但运行会提示找不到 main 方法
因此可以将其理解为 “比关键字更为关键” 的单词
常量
常量:在程序运行过程中其值不会发生改变的数据
1 ) 常量的分类
| 类型 | 描述 | 示例 |
|---|---|---|
| 字符串常量 | 双引号包裹的内容 | “HelloWorld” |
| 整数常量 | 所有整数 | 123, -5 |
| 小数常量 | 所有小数 | 3.14, -0.5 |
| 字符常量 | 单引号包裹的单个字符 | ‘a’, ‘9’ |
| 布尔常量 | 只有 true 和 false | true, false |
| 空常量 | null,不能直接打印 | null |
2 ) 代码演示
public class Demo1Constant {
public static void main(String[] args) {
System.out.println("你好,黑马程序员"); // 字符串常量
System.out.println(123); // 整数常量
System.out.println(12.3); // 小数常量
System.out.println('a'); // 字符常量
System.out.println(true); // 布尔常量
System.out.println(5 > 10); // 布尔表达式,结果为 false
// System.out.println(null); // 编译报错,不能直接打印 null
}
}
注意:
- 整数或小数如果被双引号包裹,则属于字符串常量,如 “123”
- 字符常量必须是一个字符,‘ab’ 会编译错误
- 布尔常量单独打印价值不大,主要配合运算符使用
- 空常量 null 不能直接用于 println,将在数组部分详解
变量
1 ) 为什么需要变量?
假设程序后台要处理用户登录的用户名和密码。内存中需要两块空间分别存储这两个数据,并且当不同用户登录时,空间中的数据会发生变化
这种 在内存中开辟的、存储可变数据的空间 就是变量
变量 = 内存中的存储空间,空间中存放着经常变化的数据
2 ) 变量的定义格式
数据类型 变量名 = 数据值;
- 数据类型:限制空间能存放的数据类型(整数、小数等)
- 变量名:空间的名字(自定义标识符)
- 数据值:初始存储的数据
3 ) 变量的使用
定义不同类型变量
public class Demo1Variable {
public static void main(String[] args) {
int a = 10; // 整数变量(默认推荐 int)
double b = 12.3; // 小数变量(默认推荐 double)
char c = 'a'; // 字符变量
boolean d = true; // 布尔变量
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
输出:
10
12.3
a
true
变量的重新赋值与值变化
public class Demo2Variable {
public static void main(String[] args) {
int a = 10;
System.out.println(a); // 输出 10
a = 30; // 重新赋值(注意没有 int 关键字)
System.out.println(a); // 输出 30
}
}
重新赋值时不要写数据类型,否则会被视为重复定义变量(编译错误)
4 ) 变量注意事项
① 变量名不允许重复定义
int a = 10;
// int a = 20; // 编译错误:已在方法中定义了变量 a
a = 20; // 正确:重新赋值
② 一条语句可以定义多个变量(逗号分隔)
int a = 10, b = 20, c = 30;
中间不能再次出现数据类型,即不能写成 int a = 10, int b = 20;
③ 变量使用前必须赋值(初始化)
int a;
System.out.println(a); // 编译错误:可能尚未初始化变量 a
④ float 和 long 类型的特殊后缀
float 值需加 F/f,long 值需加 L/l(建议大写 L,避免与数字 1 混淆)
float a = 12.3F;
long b = 1000L;
后缀仅用于编译期,打印时不会出现
⑤ 变量的作用域
变量只在定义它的 大括号 {} 内部 有效,超出作用域将无法访问(变量从内存中消失)
public static void main(String[] args) {
int a = 10;
{
int b = 20; // b 的作用域开始
} // b 的作用域结束
System.out.println(b); // 编译错误:找不到符号 b
}
通过以上内容,你已掌握 Java 程序的基本结构、注释、关键字、常量和变量的核心概念与使用方式
这些是学习任何复杂 Java 程序的基石,接下来可以转向运算符、控制流程等更高级的主题

5万+

被折叠的 条评论
为什么被折叠?



