Skip to content

基础语法

本章将介绍 Java 的基础语法,包括关键字、标识符、注释、变量和常量等基本概念。

关键字

关键字是 Java 语言中已经被赋予特定含义的单词,不能用作标识符。

关键字列表

text
┌─────────────────────────────────────────────────────────────────┐
│                        Java 关键字分类                           │
├─────────────────────────────────────────────────────────────────┤
│  访问控制:private   protected   public                          │
│  类相关:  class     extends    implements   interface   abstract│
│  方法相关:static    final      void         native      synchronized│
│  流程控制:if        else       switch       case        default │
│           for       while      do           break       continue│
│           return    instanceof                                             │
│  异常处理:try       catch      finally      throw       throws  │
│  包相关:  package   import                                               │
│  基本类型:byte      short      int          long       float    │
│           double    char       boolean                               │
│  引用类型:this      super       new                                  │
│  其他:    true      false       null        strictfp   transient│
│           volatile  assert      goto        const                 │
└─────────────────────────────────────────────────────────────────┘

关键字使用示例

java
public class KeywordDemo {
    // private:私有访问修饰符
    private String name;
    
    // static:静态成员,属于类而不是对象
    public static int count = 0;
    
    // final:不可改变的,常量
    public static final double PI = 3.14159;
    
    // void:无返回值
    public void display() {
        System.out.println("Name: " + name);
    }
}

标识符

标识符是给类、方法、变量等起名字时使用的字符序列。

命名规则

text
┌─────────────────────────────────────────────────────────────────┐
│                     标识符命名规则                               │
├─────────────────────────────────────────────────────────────────┤
│  1. 由字母、数字、下划线(_)、美元符号($)组成                     │
│  2. 不能以数字开头                                               │
│  3. 不能是 Java 关键字                                           │
│  4. 区分大小写                                                   │
│  5. 长度无限制,但不宜过长                                       │
└─────────────────────────────────────────────────────────────────┘

合法与非法标识符

java
public class IdentifierDemo {
    public static void main(String[] args) {
        // 合法标识符
        int age = 18;              // 字母开头
        int _count = 10;           // 下划线开头
        int $price = 100;          // 美元符号开头
        int userName = 123;        // 字母开头,包含字母和数字
        int MAX_VALUE = 1000;      // 字母开头,包含下划线
        
        // 非法标识符(会编译错误)
        // int 123abc = 10;        // 不能以数字开头
        // int class = 20;         // 不能是关键字
        // int my-name = 30;       // 不能包含减号
        // int @email = "a@b.com"; // 不能包含 @ 符号
    }
}

命名规范

java
public class NamingConvention {
    // 类名:大驼峰命名法(UpperCamelCase)
    // 示例:Student, UserManager, HttpConnection
    
    // 方法名:小驼峰命名法(lowerCamelCase)
    // 示例:getName, calculateTotal, isValid
    
    // 变量名:小驼峰命名法
    // 示例:userName, totalCount, maxValue
    
    // 常量名:全大写,单词间用下划线分隔
    // 示例:MAX_VALUE, DEFAULT_TIMEOUT, PI
    
    // 包名:全小写,通常使用公司域名倒置
    // 示例:com.company.project.module
}

注释

注释用于解释代码,不会被编译器编译。

注释类型

java
public class CommentDemo {
    // 这是单行注释
    // 用于简短的说明
    
    /*
     * 这是多行注释
     * 可以跨越多行
     * 用于较详细的说明
     */
    
    /**
     * 这是文档注释
     * 用于生成 API 文档
     * 可以使用 HTML 标签和 @ 标签
     * 
     * @author 张三
     * @version 1.0
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        // 输出欢迎信息
        System.out.println("Hello, Java!");
    }
}

文档注释标签

标签用途示例
@author标识作者@author 张三
@version标识版本@version 1.0
@param说明参数@param name 用户名
@return说明返回值@return 计算结果
@throws说明异常@throws IOException IO异常
@see参考引用@see java.lang.String
@since起始版本@since 1.5
@deprecated已过时@deprecated 使用新方法代替

注释使用示例

java
/**
 * 用户管理类
 * 提供用户的增删改查功能
 * 
 * @author 开发团队
 * @version 2.0
 * @since 1.0
 */
public class UserManager {
    
    /** 用户列表,存储所有用户 */
    private List<User> users;
    
    /** 最大用户数量 */
    private static final int MAX_USERS = 1000;
    
    /**
     * 添加新用户
     * 
     * @param user 要添加的用户对象
     * @return 添加成功返回 true,失败返回 false
     * @throws IllegalArgumentException 当用户为 null 时抛出
     */
    public boolean addUser(User user) {
        // 检查用户是否为空
        if (user == null) {
            throw new IllegalArgumentException("用户不能为空");
        }
        
        // 检查是否超过最大用户数
        if (users.size() >= MAX_USERS) {
            return false;  // 用户数量已达上限
        }
        
        // 添加用户并返回成功
        return users.add(user);
    }
    
    /**
     * 根据ID查找用户
     * 
     * @param id 用户ID
     * @return 找到返回用户对象,未找到返回 null
     */
    public User findUserById(int id) {
        // 遍历用户列表查找匹配的ID
        for (User user : users) {
            if (user.getId() == id) {
                return user;
            }
        }
        return null;  // 未找到用户
    }
}

变量

变量是程序运行过程中值可以改变的存储单元。

变量声明和初始化

java
public class VariableDemo {
    public static void main(String[] args) {
        // 声明变量
        int age;
        
        // 赋值
        age = 18;
        
        // 声明并初始化(推荐方式)
        String name = "张三";
        double salary = 5000.50;
        boolean isStudent = true;
        
        // 同时声明多个同类型变量
        int a = 1, b = 2, c = 3;
        
        // 使用变量
        System.out.println("姓名:" + name);
        System.out.println("年龄:" + age);
        System.out.println("薪资:" + salary);
    }
}

变量分类

java
public class VariableTypes {
    // 成员变量(实例变量):在类中定义,属于对象
    private String instanceVar;
    
    // 静态变量(类变量):使用 static 修饰,属于类
    public static int staticVar = 100;
    
    public void method() {
        // 局部变量:在方法中定义,作用域仅限于方法内
        int localVar = 10;
        
        // 局部变量必须初始化后才能使用
        System.out.println(localVar);
    }
    
    public static void main(String[] args) {
        // 创建对象访问实例变量
        VariableTypes obj = new VariableTypes();
        obj.instanceVar = "实例变量";
        
        // 通过类名访问静态变量
        VariableTypes.staticVar = 200;
        
        System.out.println(obj.instanceVar);  // 输出:实例变量
        System.out.println(VariableTypes.staticVar);  // 输出:200
    }
}

变量作用域

java
public class VariableScope {
    // 类级变量:整个类中都可以访问
    private int classLevelVar = 10;
    
    public void method1() {
        // 方法级变量:只在当前方法中有效
        int methodLevelVar = 20;
        
        if (true) {
            // 块级变量:只在当前代码块中有效
            int blockLevelVar = 30;
            System.out.println(blockLevelVar);  // 可以访问
            System.out.println(methodLevelVar); // 可以访问
            System.out.println(classLevelVar);  // 可以访问
        }
        
        // System.out.println(blockLevelVar);  // 编译错误:无法访问
        System.out.println(methodLevelVar);    // 可以访问
        System.out.println(classLevelVar);     // 可以访问
    }
    
    public void method2() {
        // System.out.println(methodLevelVar); // 编译错误:无法访问
        System.out.println(classLevelVar);     // 可以访问
    }
}

常量

常量是值在程序运行过程中不会改变的量。

常量定义

java
public class ConstantDemo {
    // 使用 final 关键字定义常量
    // 常量名通常全大写,单词间用下划线分隔
    
    // 类级常量:通常与 static 一起使用
    public static final double PI = 3.14159265;
    public static final int MAX_SIZE = 100;
    public static final String APP_NAME = "MyApplication";
    
    // 实例常量:每个对象可以有不同的值,但初始化后不能改变
    private final int id;
    
    // 构造方法初始化实例常量
    public ConstantDemo(int id) {
        this.id = id;
    }
    
    public static void main(String[] args) {
        // 局部常量
        final int LOCAL_CONSTANT = 50;
        
        // 使用常量
        System.out.println("PI = " + PI);
        System.out.println("MAX_SIZE = " + MAX_SIZE);
        System.out.println("APP_NAME = " + APP_NAME);
        
        // 常量不能重新赋值
        // PI = 3.14;  // 编译错误
        // LOCAL_CONSTANT = 100;  // 编译错误
    }
}

常量使用场景

java
public class ConstantExample {
    // 配置常量
    public static final String DB_URL = "jdbc:mysql://localhost:3306/mydb";
    public static final String DB_USER = "root";
    public static final int DB_TIMEOUT = 30;
    
    // 业务常量
    public static final int STATUS_ACTIVE = 1;
    public static final int STATUS_INACTIVE = 0;
    public static final int STATUS_DELETED = -1;
    
    // 数学常量
    public static final double E = 2.718281828;
    
    public void processUser(int status) {
        // 使用常量使代码更易读
        if (status == STATUS_ACTIVE) {
            System.out.println("用户状态:活跃");
        } else if (status == STATUS_INACTIVE) {
            System.out.println("用户状态:非活跃");
        } else if (status == STATUS_DELETED) {
            System.out.println("用户状态:已删除");
        }
    }
}

分隔符

Java 中常用的分隔符:

java
public class SeparatorDemo {
    public static void main(String[] args) {
        // 分号 ; - 语句结束符
        int a = 10;
        int b = 20;
        
        // 逗号 , - 分隔变量声明或参数
        int x = 1, y = 2, z = 3;
        
        // 花括号 {} - 定义代码块
        {
            int blockVar = 100;
            System.out.println(blockVar);
        }
        
        // 方括号 [] - 定义数组
        int[] numbers = {1, 2, 3, 4, 5};
        
        // 圆括号 () - 方法调用、表达式分组
        int result = (a + b) * 2;
        System.out.println(result);
        
        // 点 . - 访问成员
        System.out.println("Hello");
    }
}

小结

本章我们学习了:

  • 关键字:Java 中有特定含义的保留字
  • 标识符:命名规则和命名规范
  • 注释:单行注释、多行注释、文档注释
  • 变量:声明、初始化、作用域
  • 常量:使用 final 关键字定义不可改变的值

下一章,我们将学习 数据类型,了解 Java 的基本数据类型和引用类型。