Java 基础语法

1. 程序骨架与入口

Java 是面向对象的语言,一切代码必须写在类(Class)中,main 方法是程序的唯一入口。

java 复制代码
// 类名必须与文件名一致,首字母大写
public class JavaBasics {
    // 主方法:程序从这里开始执行
    public static void main(String[] args) {
        System.out.println("Hello, Java!");
    }
}

2. 变量与数据类型

Java 是强类型语言,每个变量必须先声明类型再使用。

java 复制代码
// 1. 基本数据类型(8种)
int age = 25;              // 整数
double price = 19.99;      // 浮点数
boolean isActive = true;   // 布尔值
char grade = 'A';          // 单个字符

// 2. 引用数据类型
String name = "Alice";     // 字符串(不可变对象)
int[] scores = {90, 85, 88}; // 数组

// 3. 常量:final 修饰后不可重新赋值
final double PI = 3.14159;

3. 运算符与表达式

java 复制代码
// 1. 算术与赋值
int a = 10, b = 3;
int mod = a % b;      // 1(取模)
a += 5;               // 15(复合赋值)

// 2. 逻辑运算(短路特性)
boolean check = (a > 0) && (b++ > 0); // 若 a>0 为假,b++ 不会执行

// 3. 三元运算符
String status = (age >= 18) ? "成年" : "未成年";

4. 流程控制

条件判断

java 复制代码
if (score >= 90) {
    System.out.println("优秀");
} else if (score >= 60) {
    System.out.println("及格");
} else {
    System.out.println("不及格");
}

循环结构

java 复制代码
// 1. 增强 for(推荐遍历集合/数组)
for (int score : scores) {
    System.out.println(score);
}

// 2. 传统 for
for (int i = 0; i < 10; i++) {
    System.out.println(i);
}

// 3. while / do-while
while (condition) {
    // 循环体
}

5. 面向对象核心(OOP)

类与对象

java 复制代码
// 定义一个类
public class Student {
    private String name;   // 封装:私有属性
    private int age;

    // 构造器
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // getter / setter
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

// 使用
Student stu = new Student("Alice", 20);
System.out.println(stu.getName());

继承与多态

java 复制代码
public class Animal {
    public void speak() {
        System.out.println("动物叫");
    }
}

public class Dog extends Animal {
    @Override
    public void speak() {
        System.out.println("汪汪");
    }
}

接口

java 复制代码
public interface Printable {
    void print();  // 抽象方法
}

public class Report implements Printable {
    @Override
    public void print() {
        System.out.println("打印报告");
    }
}

6. 异常处理

java 复制代码
try {
    int result = 10 / 0;
} catch (ArithmeticException e) {
    System.err.println("计算错误: " + e.getMessage());
} finally {
    System.out.println("资源清理"); // 始终执行
}

// try-with-resources:自动关闭资源
try (var reader = new java.io.BufferedReader(new java.io.FileReader("data.txt"))) {
    System.out.println(reader.readLine());
} catch (java.io.IOException e) {
    e.printStackTrace();
}

7. 集合框架(常用)

java 复制代码
// 1. List(动态数组)
var names = new java.util.ArrayList<String>();
names.add("Alice");
names.add("Bob");
names.removeIf(n -> n.startsWith("A")); // Lambda 过滤

// 2. Map(键值对)
var map = new java.util.HashMap<String, Integer>();
map.put("Alice", 90);
map.getOrDefault("Bob", 0); // 安全获取,不存在返回默认值

// 3. Stream API(函数式处理)
long count = names.stream()
    .filter(n -> n.length() > 3)
    .count();

8. JDK 21 语法特点速览

JDK 21 作为长期支持版本(LTS),带来了多项正式语法特性,让代码更简洁、更安全:

特性 语法示例 说明
Record record Point(int x, int y) {} 不可变数据类,自动生成构造器、getter、equals、hashCode、toString
增强 Switch case String s -> "字符串: " + s 箭头语法 + 模式匹配,告别 break 穿透,支持返回值
文本块 """ ... """ 多行字符串,写 SQL/JSON/HTML 更直观
虚拟线程 Executors.newVirtualThreadPerTaskExecutor() 极轻量线程,可轻松创建百万级并发任务
Sealed 类 sealed class Shape permits Circle, Rect 限制继承体系,增强类型安全
var 类型推断 var list = new ArrayList<String>() 局部变量类型推断,减少冗余代码
java 复制代码
// 示例:Record + 增强 Switch 组合使用
public record User(String name, int age) {}

Object obj = new User("Alice", 25);
String desc = switch (obj) {
    case User u -> "用户: " + u.name() + ", 年龄: " + u.age();
    case String s -> "字符串: " + s;
    case null -> "空值";
    default -> "未知类型";
};

9. 总结

Java 基础语法围绕类与对象 展开,掌握变量、流程控制、面向对象、异常处理和集合框架即可应对绝大多数日常开发。JDK 21 在保持向后兼容的同时,通过 Record、增强 Switch、虚拟线程等特性大幅提升了开发效率和运行性能,值得学习和应用。

,减少冗余

相关推荐
java1234_小锋1 小时前
MyBatis-Plus 3.5.15 已全面支持 Spring Boot 4.0 及 Jackson 3.0
java·spring boot·mybatis
码行山野赴时序归途1 小时前
C 语言文件操作完全指南:从打开到关闭
c语言·开发语言
2501_937860941 小时前
Java 文件操作与IO(下):字节流、字符流实战IO读写
java·开发语言·python
xixingzhe21 小时前
spring boot项目接口访问慢问题解决方案
java·数据库·spring boot
MetaLite1 小时前
SpringBoot整合FastJson2数据脱敏-接口日志与失败降级
java·spring boot·后端
事圆则缓1 小时前
Kotlin 高阶工程化与 Android 深入实践
android·开发语言·kotlin
驭渊的小故事1 小时前
java抽奖项目-奖品上传中传递参数类型的错误
java·开发语言
名字还没想好☜1 小时前
Go 时间格式化为什么用 2006-01-02:time.Format/Parse 的参考时间、时区与解析踩坑
开发语言·后端·golang·go
段一凡-华北理工大学1 小时前
高炉智能布料技术与炉料分布优化~系列文章03:布料矩阵解码:环位、角度、圈数与料流的量化控制
java·网络·人工智能·矩阵·高炉智能化·高炉布料矩阵优化·高炉智能布料技术