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、虚拟线程等特性大幅提升了开发效率和运行性能,值得学习和应用。

,减少冗余

相关推荐
蛋蛋的就会顺顺的3 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
需要8264 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
小 黄 鸡4 小时前
HashMap 面试必会知识点详解(JDK 8)
java·面试·职场和发展
死磕音视频4 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
伯恩bourne6 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
silvamux_6 小时前
curl 测试 OpenAI 兼容 API 的完整流程
java·人工智能·缓存·ai·oneapi
省钱兄--zs6 小时前
深圳24小时自助健身房软硬件解决方案实战指南与开发流程详解
java·数据仓库·spring boot·小程序·架构
顽疲7 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog7 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友
用户21296835261687 小时前
开源了一个 Java 多智能体 LLM 框架 Baton:一个依赖,把 Agent 循环、工具调用、记忆、编排全配齐
java·llm