乐途乐途
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
  • 学习路径
  • 第1章 Java概述与环境搭建

    • Java概述与环境搭建
    • Java语言概述
    • 解释型语言与编译型语言对比
    • JDK安装与配置
    • JDK、JRE、JVM 详解
    • HelloWorld程序详解
    • IDE 介绍
  • 第2章 标识符与基本数据类型

    • 章节导读
    • 变量概述
    • 常量概述
    • 基本类型与包装类
    • 字节型 byte
    • 短整型 short
    • 整型 int
    • 长整型 long
    • 单精度浮点型 float
    • 双精度浮点型 double
    • 字符型 char
    • 布尔型 boolean
    • 类型转换
  • 第3章 运算符与表达式

    • 章节导读
    • 算术运算符
    • 赋值运算符
    • 关系运算符
    • 逻辑运算符
    • 位运算符
    • 条件运算符
    • 运算符优先级
    • 表达式
  • 第4章 流程控制

    • 章节导读
    • 常见的程序运行流程
    • if-else 选择结构
    • switch 多分支选择
    • while 循环
    • do-while 循环
    • for 循环
    • break 与 continue
  • 第5章 数组

    • 章节导读
    • 一维数组
    • 多维数组
    • Arrays 工具类
  • 第6章 类与对象

    • 章节导读
    • 类与对象
    • 方法定义与调用
    • 构造方法
    • 封装
    • 访问修饰符
    • package 与 import
    • static 关键字
    • this 关键字
    • 参数传递 详解
    • 枚举
    • 成员内部类
    • 局部内部类
    • 静态内部类
    • 匿名内部类
  • 第7章 接口与继承

    • 章节导读
    • 继承
    • super 关键字
    • final 关键字
    • 多态
    • 向上转型与向下转型
    • 抽象类
    • 接口
    • 抽象类与接口对比
  • 第8章 注解

    • 章节导读
    • 注解基础
    • 元注解详解
    • 自定义注解
  • 第9章 常用类

    • 章节导读:Java 常用类
    • Object 类:万类之祖
    • 包装类:基本类型的对象化
    • String:不可变的字符串
    • StringBuffer:线程安全的可变字符串
    • StringBuilder:可变的字符串构建器
    • Math:数学运算工具类
    • Random:伪随机数生成器
    • 大数值运算 详解
    • 日期时间API 详解
  • 第10章 异常机制

    • 章节导读
    • 异常体系与分类
    • try-catch-finally
    • try-with-resources
    • throws 与 throw
    • 自定义异常
  • 第11章 泛型

    • 章节导读
    • 泛型基础
    • 通配符与PECS原则
    • 类型擦除
  • 第12章 集合框架

    • 章节导读
    • 集合框架概述
    • ArrayList
    • LinkedList
    • HashMap 详解
    • LinkedHashMap 详解
    • TreeMap 详解
    • HashSet
    • TreeSet 详解
    • TreeSet 与 Comparable
    • Collections 工具类详解
  • 第13章 IO流

    • 章节导读
    • IO流概述
    • 字节流
    • 字符流
    • 缓冲流
    • 转换流 详解
    • 序列化 详解
    • NIO与Files 详解
    • NIO与Files工具类
  • 第14章 多线程与并发

    • 第十六章 多线程与并发 —— 章节导读
    • 线程基础详解
    • synchronized 详解
    • Lock 与显式锁详解
    • volatile 详解
    • wait 与 notify 详解
    • ThreadLocal详解
    • 原子类详解
    • 并发工具类详解
    • 线程池详解
  • 第15章 反射

    • 章节导读
    • 反射概述与 Class 对象
    • Constructor 与对象创建
    • Field与Method详解
    • 反射应用详解
  • 第16章 JDK8新特性

    • 章节导读
    • Lambda 表达式
    • Stream API 基础
    • Stream API 高级详解
    • Optional 详解
    • 新日期时间API详解
  • 第17章 JDK9-11新特性

    • 章节导读
    • 模块化系统 — Project Jigsaw(JDK 9)
    • var 局部变量类型推断(JDK 10)
    • 集合工厂方法与增强(JDK 9 / 10 / 11)
    • 接口增强:private 方法(JDK 9)
    • Stream API 增强(JDK 9)
    • Optional 增强(JDK 9 / 10 / 11)
    • String 新增方法(JDK 11)
    • HTTP Client 与 Files 增强(JDK 11)
    • 直接运行 Java 源文件 — JEP 330(JDK 11)
  • 第18章 JDK12-17新特性

    • 章节导读
    • Switch 表达式(JDK 12 预览 / JDK 14 正式)
    • 文本块 Text Blocks(JDK 13 预览 / JDK 15 正式)
    • Records 记录类(JDK 14 预览 / JDK 16 正式)
    • 密封类 Sealed Classes(JDK 15 预览 / JDK 17 正式)
    • instanceof 模式匹配(JDK 14 预览 / JDK 16 正式)
    • Switch 模式匹配 — Pattern Matching for switch(JDK 17 预览 / JDK 21 正式)
    • Helpful NPE 与 String 增强(JDK 12 / JDK 14 / JDK 15)
    • Stream 增强(JDK 12 / JDK 16)
    • 日期时间增强 — Day Period 支持(JDK 16)
  • 第19章 JDK18-21新特性

    • 章节导读
    • 虚拟线程(JDK 19 预览 / JDK 20 第二预览 / JDK 21 正式)
    • 序列集合(JDK 21 正式)
    • Switch 模式匹配(JDK 17 预览 / JDK 18 第二预览 / JDK 20 第四预览 / JDK 21 正式)
    • Record 模式匹配(JDK 19 预览 / JDK 20 第二预览 / JDK 21 正式)
    • 未命名模式与变量(JDK 21 预览 / JDK 22 正式)
  • 第20章 JDK 22-25 新特性

    • 章节导读
    • 字符串模板(JDK 22 预览 / JDK 23 第二预览 / JDK 24 第三预览)
    • Stream Gatherers(JDK 22 预览 / JDK 24 第二预览)
    • 隐式声明类与实例方法(JDK 23 预览 / JDK 24 第二预览)
    • 原始类型模式匹配(JDK 24 预览)
  • 附录

    • Java 核心知识点
    • Java SE 专业术语
    • Java特性索引(JDK 8 → 25)

"小崔装完JDK 8,盯着命令行里的javac发愣:'白歌,你们写代码不会真就在记事本里敲吧?'白歌推了推眼镜:'工欲善其事,必先利其器——你需要一个IDE。'大翔补了一句:'而且得带AI——现在没AI插件的IDE,就跟没装JDK的电脑一样,能用但憋屈。'"

IDE 介绍

本章定位

解决一个非常实际的问题:装好了 JDK,用什么来写代码? 本章从 IDE 的基本概念讲起,介绍 Java 生态中三款主流传统 IDE(及其 AI 插件),再对比新兴的 AI-native IDE,帮你选出一把趁手的开发工具。


一、IDE 的概念

什么是 IDE

IDE(Integrated Development Environment,集成开发环境)是将软件开发所需的多个工具整合到一个统一图形界面中的应用程序。它让开发者不用在编辑器、编译器、调试器之间来回切换,所有操作在一个窗口内完成。

核心组件

组件作用Java 中的对应
代码编辑器提供语法高亮、自动补全、代码折叠、错误提示写 .java 源码
编译器/解释器将源码转换为可执行程序调用 javac 编译 .java → .class
调试器设置断点、单步执行、查看变量、分析调用栈定位 NullPointerException 等运行时错误
构建工具自动化编译、测试、打包、依赖管理Maven / Gradle 集成
版本控制集成代码提交、分支管理、差异对比Git 集成(commit / push / pull)
项目管理器文件和目录组织、模块依赖管理包结构导航、多模块项目视图

IDE vs 纯文本编辑器

维度纯文本编辑器(记事本 / Vim / Notepad++)IDE(IntelliJ / Eclipse / VS Code)
代码补全无或极弱智能补全,理解类型和上下文
错误检测无实时检测边写边报错(红色波浪线)
导航跳转手动搜索文件一键跳转到类定义、方法调用处
重构手动替换,容易遗漏安全重命名、提取方法等自动化重构
调试靠 System.out.println断点调试,表达式求值,条件断点
依赖管理手动下载 jar,配置 classpathMaven / Gradle 一键导入依赖
学习曲线低中到高,但长期效率提升巨大

为什么 Java 开发需要 IDE

Java 是一门强类型、面向对象、工程化的语言,项目通常包含几十到数千个类,依赖关系复杂。用纯文本编辑器做 Java 开发的痛点:

  1. 包和导入管理:手动写 import java.util.ArrayList; 容易遗漏或引入不用的包
  2. 类路径(classpath)配置:手动指定 -cp 参数,稍复杂就出错
  3. 编译错误定位:javac 只给出行号和错误信息,不像 IDE 那样实时在代码旁标红
  4. 重构成本:一个类名改了,几十个引用处要逐个手动更新
  5. JAR 依赖地狱:手动下载、管理几十个第三方 jar 几乎不可能

IDE 不是"锦上添花",而是 Java 开发的效率基座。


二、传统 Java IDE + AI 插件

2.1 IntelliJ IDEA

背景:JetBrains 公司出品,2001 年首发,当前 Java 生态中市占率最高(超过 60%)。以"开箱即用"的智能体验著称——几乎不需要装插件就能高效开发。

版本对比

特性Community Edition(社区版)Ultimate Edition(旗舰版)
价格免费开源付费(个人 $169/年)
Java SE 开发完整支持完整支持
Spring / Jakarta EE不支持深度支持
数据库工具基础支持SQL 编辑器、图表可视化
前端开发不支持HTML/CSS/JS/TypeScript 完整支持
性能分析无Profiler、内存分析
适用人群学生、Java SE 学习者、开源贡献者企业级全栈开发者

核心功能

  • 智能代码补全:CTRL+空格弹出上下文感知的补全建议,理解泛型、Lambda 表达式
  • 实时静态分析:边写边检测潜在 Bug(如空指针、资源未关闭),黄色/红色波浪线即时反馈
  • 强大重构:重命名、提取方法、修改签名、内联变量等 30+ 种重构操作,跨文件自动更新引用
  • 内置终端:直接在 IDE 内运行 mvn clean install 等命令
  • Git 深度集成:可视化的分支图、冲突解决、Blame 追溯

AI 插件

插件提供方特点
JetBrains AI AssistantJetBrains 官方深度集成到 IDE 内部,理解项目上下文,支持代码生成、解释、重构建议、提交信息生成
GitHub CopilotGitHub/Microsoft行级和块级代码补全,上下文感知能力强,支持聊天面板(Copilot Chat)

2.2 Eclipse

背景:IBM 于 2001 年开源,曾是 Java IDE 的绝对王者(2010 年前后市占率超过 70%)。基于 OSGi 插件体系,高度可扩展。虽然近年被 IntelliJ IDEA 超越,但在大型企业和遗留项目中仍广泛使用。

核心功能

  • 工作空间(Workspace)管理:一个窗口管理多个项目,适合同时维护多个关联工程
  • 丰富的插件生态:通过 Eclipse Marketplace 安装数千个插件
  • 强大的 JDT(Java Development Tools):增量编译、代码辅助、重构
  • 免费开源:所有功能免费,无社区版/旗舰版之分

AI 插件

插件特点
CodeGPT接入 OpenAI / Azure OpenAI 等大模型,在 Eclipse 内提供代码生成、解释、优化
GitHub Copilot2023 年推出 Eclipse 版,提供与 IDEA 版一致的代码补全体验

2.3 VS Code

背景:微软 2015 年发布的开源编辑器,基于 Electron 框架。本身是轻量级代码编辑器,通过扩展(Extension)实现 IDE 功能。启动快、内存占用低,跨语言开发体验统一。

定位

VS Code 不是传统意义上的 Java IDE——它不会像 IntelliJ IDEA 那样开箱即用地提供完整的 Java 开发能力。但通过组合以下扩展,可以达到接近 IDE 的体验:

扩展作用
Extension Pack for Java微软官方打包的 6 个扩展:Language Support、Debugger、Test Runner、Maven、Project Manager、IntelliCode
Spring Boot Extension PackSpring 开发工具集
Gradle for JavaGradle 项目管理和构建

AI 插件

插件特点
GitHub CopilotVS Code 的原生插件,体验最流畅,支持行内补全和 Chat 面板
Continue开源 AI 编程助手,支持接入本地模型(Ollama)或云端 API,可自定义 prompt

2.4 三款传统工具对比

维度IntelliJ IDEAEclipseVS Code
类型重型 Java IDE重型 Java IDE轻量编辑器 + 扩展
启动速度较慢较慢快
内存占用1~3 GB1~2 GB300~800 MB
开箱即用极好(社区版也够用)好需安装多个扩展
Java 支持深度最深深中(通过扩展)
其他语言需装对应插件需装对应插件天然多语言支持
AI 插件生态AI Assistant / CopilotCodeGPT / CopilotCopilot / Continue
适合场景专业 Java 开发/大型项目遗留系统维护/企业定制多语言混编/轻量项目/学习
费用社区版免费,旗舰版付费完全免费免费

推荐:初学者或专业 Java 开发者优先选 IntelliJ IDEA Community Edition(免费、开箱即用);需要同时写前端、Python 等多语言选 VS Code;维护老项目或企业强制要求选 Eclipse。


三、AI 类 IDE 介绍

如果说传统 IDE + AI 插件是"给老车换了个智能变速箱",那 AI-native IDE 就是"直接造了一辆自动驾驶的车"。它们在设计之初就以 AI 为核心交互方式,而非事后添加。

3.1 Cursor

背景:2023 年由 Anysphere 公司推出,基于 VS Code 开源代码(VS Code fork)构建,定位为 AI-first Code Editor。截至 2025 年,已获得 a16z 等多轮融资,估值超过 20 亿美元。

核心 AI 功能

功能说明
Tab(智能补全)不只在当前行补全,而是预测下一步的多行编辑,甚至自动跳转到下一个需要修改的位置
Chat(对话)在侧边栏与 AI 对话,可以让 AI 解释代码、生成代码、查找 Bug,支持附加上下文文件
Composer(组合器)同时修改多个文件——说"帮我新建一个 UserService 类并在 Controller 里调用它",AI 会同时创建和修改多个文件
Agent 模式让 AI 自主读取项目文件、运行终端命令、修复编译错误,形成"给需求→AI自己跑"的闭环
Rules for AI为项目定义 .cursorrules 文件,定制 AI 的行为规则(如代码风格、框架偏好)

3.2 Windsurf(Codeium)

背景:Codeium 公司(2021 年成立)推出,同样是 VS Code fork 构建的 AI-native IDE。核心卖点是 AI Flow 模式——让 AI 像水流一样自然融入开发流程,而非次次弹出对话框打断思路。

核心功能

功能说明
CascadeWindsurf 的旗舰功能,AI 自动理解你当前在做什么,预测下一步操作,以"步步引导"的方式协同编程
Multi-file Edit一次自然语言指令同时修改多个相关文件
Supercomplete比传统补全更强的行级预测,能根据上下文件推断出完整的方法实现
终端命令 AI 辅助在终端输入自然语言,AI 自动生成并解释对应的命令

3.3 GitHub Copilot Workspace

背景:GitHub 于 2024 年推出的云端开发环境,以 GitHub Issue 为起点,AI 自动规划、实现、测试。目前仍处于技术预览阶段。

核心体验

与传统 IDE 的根本区别:Copilot Workspace 的起点不是"打开代码文件",而是"描述你要解决什么问题"。

3.4 传统 IDE + 插件 vs AI-native IDE

维度传统 IDE + AI 插件AI-native IDE
设计理念以开发者为绝对主导,AI 作为辅助AI 作为协作者,自然语言为交互入口
代码生成方式行级/块级补全,需开发者先写一部分代码自然语言描述→直接生成整个功能模块
多文件修改逐个文件手动操作一句话指令同时修改多个文件
调试方式开发者在 IDE 中手动断点调试AI 读取报错信息后自主排查修复
学习曲线先学 IDE 本身,再学会使用 AI 插件先学会用自然语言描述需求
成熟度极高(IDEA 20+ 年迭代)快速迭代中,稳定性偶有问题
Java 支持深度支持(项目结构、框架、构建工具)依赖 VS Code 的 Java 扩展,支持深度有限
代表产品IntelliJ IDEA + CopilotCursor / Windsurf / Copilot Workspace

选型建议

本教程的选择:后续章节所有截图和操作演示均基于 IntelliJ IDEA Community Edition 2024.x + GitHub Copilot 插件。这一组合免费、成熟、社区资源丰富,是 Java SE 学习的最优解。

大翔最后拍板:'社区版IDEA + Copilot,小崔你就用这个。先把Java学扎实,AI帮你写代码但不能帮你面试。'小崔咧嘴一笑:'明白——AI是副驾驶,方向盘还得我自己握。' (内容由AI生成,仅供参考)

上一页
HelloWorld程序详解