Java基础快速入门: HelloWorld, 注释,常量和变量

本文纲要

  1. 第一个程序:HelloWorld
    编写、编译、运行三步骤
    编译运行流程(配图)
  2. HelloWorld 代码详解
    逐个元素构建程序
    class、main、System.out.println 的含义
    public 的限制作用
  3. HelloWorld 常见问题与调试
    Bug 的概念与解决思路
    大小写、括号遗漏、中文符号等典型错误
  4. 注释
    单行注释、多行注释
    注释的作用与注意事项
  5. 关键字
    关键字的概念与特征
    main 是不是关键字?
  6. 常量
    常量的概念与分类
    字符串、整数、小数、字符、布尔、空常量
  7. 变量
    为什么需要变量(内存模型)
    变量的定义与使用
    变量的赋值与值的变化(配图)
    变量注意事项(重复定义、同时定义多个、初始化、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 ) 编译与运行流程图

编写源文件
HelloWorld.java

编译
javac HelloWorld.java

生成字节码
HelloWorld.class

运行
java HelloWorld

输出: HelloWorld

关键命令总结:

  • 编译: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 和 falsetrue, 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 
    }
}

执行语句: a = 30;

阶段二:重新赋值 a = 30

栈内存 (Stack Memory)

main() 方法栈帧

变量名: a
数据类型: int (占4字节)
当前值: 30
※ 原值 10 被直接覆盖

阶段一:声明并初始化 int a = 10

栈内存 (Stack Memory)

main() 方法栈帧

变量名: a
数据类型: int (占4字节)
当前值: 10

重新赋值时不要写数据类型,否则会被视为重复定义变量(编译错误)

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 程序的基石,接下来可以转向运算符、控制流程等更高级的主题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值