1. 环境准备装好JDK和IDEA是走上Java路的第一步1.1 JDK到底是个啥为什么必须先装它很多新手一听“JDK”三个字母就头大其实你可以把它理解成Java的“运行发动机”。你写的代码是一堆文本计算机本身看不懂JDK里内置的javac编译器负责把这堆文本翻译成机器能执行的字节码然后JVMJava虚拟机再把它跑起来。没有JDK你写了再漂亮的代码都只是一堆没用的字符。我用过好几个版本的JDK目前最推荐新手直接装JDK 8或者JDK 17。JDK 8是Java生态里的“常青树”你以后接触的大部分企业项目都跑在它上面JDK 17则是目前主流的长期支持版本语法更新性能更好。如果不知道选哪个装JDK 8基本不会出错教程多、资料全、踩坑少。下载JDK的时候注意一个细节去Oracle官网或者AdoptiumEclipse Temurin下载千万不要去那种乱七八糟的破解站或第三方下载站。那些网站下载的文件很可能被捆绑了垃圾软件甚至更严重的问题。我用Adoptium比较多OpenJDK完全够用还免去了Oracle账号登录的麻烦实测下来很稳。装JDK的过程没什么技术含量双击安装文件一路Next就行。但有两个点请你务必记住这是很多人后期出问题的根源安装路径不要带中文、不要带空格比如D:\Java\jdk-8。如果你把JDK装到C:\Program Files\Java后面配置环境变量容易因空格出幺蛾子。安装过程中会提示“安装JRE”JDK 8及以前版本会在安装JDK时顺带安装JREJDK 17则默认只装JDK不用管它JDK自带完整的运行环境。1.2 环境变量配置被无数人忽略的“最后一公里”JDK装完之后你还需要手动配置三个环境变量JAVA_HOME、Path、CLASSPATH其实现在CLASSPATH基本可以不用配旧教程里的习惯流传下来。先说JAVA_HOME它就是告诉系统“JDK装在哪个目录”。右键“此电脑”-“属性”-“高级系统设置”-“环境变量”在系统变量里新建一个变量变量名填JAVA_HOME变量值填你的JDK安装路径比如D:\Java\jdk-8。再说Path这一步是让系统能在任何位置直接调用java和javac命令。在系统变量里找到Path点编辑新建一行填入%JAVA_HOME%\bin。这里有个新手常见的误区bin目录里才是java.exe、javac.exe这两个可执行文件你配置的是bin目录不是JDK根目录。配置完成后验证是否成功打开命令行WinR输入cmd回车输入java -version javac -version如果两行命令都能显示版本号说明配置成功。如果提示“不是内部或外部命令”大概率是Path变量没写对或者配置完环境变量后没有重新打开命令行窗口。1.3 IDEA的版本选择社区版和旗舰版有什么区别IDEA全称IntelliJ IDEA是JetBrains家最出名的Java IDE。它有两个版本社区版Community和旗舰版Ultimate。社区版完全免费功能对Java基础学习和大部分个人项目来说完全够用旗舰版要收费但支持Web开发、Spring Boot等企业级框架后面做Web项目会方便很多官方提供30天试用。新手的建议是直接装社区版零成本起步把基础语法学到手不要一上来就想着弄“激活码”——网上那些所谓的永久激活码你永远不知道它夹带了多少私货很多人的电脑就是这么被搞出安全问题的。等你确实需要Spring Boot之类的功能再考虑官方试用或者支持正版路径有很多完全不需要碰灰色地带。IDEA下载时注意区分官网地址直接访问JetBrains的官方网站进入Tools - IntelliJ IDEA下载页认准Community社区版的下载按钮就行。安装过程中按默认设置即可需要勾选的时候记得把“Create Desktop Shortcut”和“Add to PATH”勾上后面用起来方便。2. 创建第一个Java项目不是写代码而是先理解项目结构2.1 新建项目的关键一步选对JDK打开IDEA第一次启动会有一个“导入设置”的提示选Do not import settings就行这是你在这台机器上的第一次使用。然后会进入欢迎页点击New Project这里就开始进入正题了。新建项目的界面里有一个下拉框让你选“Project SDK”SDK说白了就是你要用的JDK版本。如果你之前环境变量配好了这里通常会自动识别到你装的JDK如果没有点击Add SDK手动选择JDK安装目录选到jdk-8或对应版本号的根目录即可。很多人新建项目时还会纠结要不要用“模板”。IDEA提供了几种模板比如Maven、Spring Initializr和空项目Empty Project。我的建议是第一课就选Empty Project空项目不要用模板。为什么因为模板会自动生成一堆目录结构和配置文件新手根本不知道每个文件是干嘛的出了问题也不知道去哪里排查。空项目干净自己动手创建类你就知道一切是怎么来的了。如果你想走Maven路线那是另一个话题后面我会单独讲第一节课先用最朴素的方式把“创建-编写-运行”这条路径跑通。2.2 骨架目录拆解src 和 out 到底分别放什么项目创建完成后你会看到左侧的项目目录树上有一个文件夹src。这个文件夹是IDEA约定的源码根目录你写的.java源文件全部放在这里。另一个常见的文件夹是out在IDEA 2020之后的版本里编译生成的.class文件输出目录叫out旧版本叫classes你不需要手动管它IDEA会自动维护。打开src右键 - New - Java Class给类取个名字比如HelloWorld。注意类名要遵循驼峰命名法首字母大写这一点在以后的工作中也是硬性要求代码规范不能从第一课就偏了。创建完之后你会看到这样的代码框架public class HelloWorld { }编译器要求public class的名称必须和文件名一致HelloWorld.java里就必须是public class HelloWorld。这一点和Python、JavaScript不一样Java文件名的校验极其严格我见过很多新手在这里栽跟头把类名改成hello结果编译直接报错。第一次接触这个规则会有点别扭但这也是Java面向对象特性的一种体现一个公开类代表一个独立的、可以被外部访问的单元。2.3 项目文件夹里那些你不认识的文件.idea和.iml新建完项目后目录树上会出现一个.idea文件夹和一个.iml文件。新手不用管它们但最好了解一下它们是干嘛的万一以后手滑删了什么也好心里有数。.idea是IDEA的项目配置目录里面有很多XML文件记录着你的编码设置、文件监视器、检查规则等。.iml文件是模块配置文件简单说就是记录这个模块的依赖和根目录信息。你写代码的时候不用去碰它们但如果用Git做版本管理建议把.idea加进.gitignore这样别人克隆你的项目时就不会被你的个人配置干扰。还有一个困扰很多人的问题为什么我明明在项目里创建了新文件左侧目录树却不显示大概率是文件面板没有刷新点击目录树顶部的刷新按钮或者File - Reload All from Disk目录内容就会正常更新了。3. 编写第一行代码从HelloWorld到真正理解main方法3.1 代码基础框架和psvm/sout快捷键在HelloWorld类里开始写代码最经典的第一课就是打印Hello World。你需要一个main方法作为程序的入口方法内部用System.out.println把内容输出到控制台。完整代码是这样的public class HelloWorld { public static void main(String[] args) { System.out.println(Hello, World!); } }代码写起来不麻烦但对于新手来说容易把void写成void之外的单词、把String[] args漏掉或者把System写成system。这里有个经验IDEA里最常用的两个快捷键你一定要记牢。在类体内直接输入psvm然后回车IDEA会自动补全整个main方法输入sout然后回车IDEA会自动补全System.out.println()。这是IDEA效率流的第一步以后你写代码的速度会越来越快但这种自动补全也让很多新手看不懂代码本身。我还是建议你快捷键可以用但至少花十分钟把main方法和输出语句的结构逐词拆解一遍知道每个关键字是什么意思不能只做“代码打印机”。3.2 试运行点击三角形按钮发生了什么main方法写好了之后代码左边的行号旁边会亮起一个绿色的三角形箭头。点击它选择Run HelloWorld.main()IDEA就会开始编译并运行你的程序。这个过程中IDEA背后干了三件事调用编译器把.java编译成.class字节码文件然后让JVM加载这个字节码文件最后执行main方法里的代码。你会发现控制台底部弹出一个窗口里面输出了一行Hello, World!。恭喜你到这里你就完整跑通了“编写-编译-执行”的Java程序全流程。如果你运行没成功大概率是下面几种情况没有写main方法或者main方法签名写错了比如漏了static程序无法启动。代码行号旁边没有绿色箭头说明IDEA不认为这是可执行入口检查一下类名和文件名是否一致。控制台报错错误: 找不到或无法加载主类这种通常是编译输出目录和源码根目录配置职乱了后面我会专门讲。3.3 控制台窗口的正确打开方式别再用黑窗口了有些新手学了javac和java命令后习惯在黑窗口里编译运行在IDEA里反而找不着北。控制台窗口在IDEA底部默认叫Run运行程序后所有输出都在这里。你以后排查异常信息也是靠这个窗口红色字体为错误信息白色字体为普通输出。如果在窗口里看到中文变成乱码不要慌这不是代码问题是编码问题。IDEA默认文件编码是UTF-8而Windows控制台默认输出编码有可能是GBK。解决方式很简单菜单栏Help - Edit Custom VM Options在打开的文件末尾追加一行-Dfile.encodingUTF-8重启IDEA乱码基本就消失了。这是新手很容易遇到但很少有人提前提醒的坑我在这里先写出来免得你踩进去。4. 把IDEA调成“趁手工具”那些值得一开始就做好的设置4.1 界面外观和字体设置眼睛舒服了代码才能写下去很多教程会把字体设置放最后我偏要放前面一个让你看得舒服、敲得顺畅的工具才是好工具。打开File - SettingsWindows或IntelliJ IDEA - PreferencesmacOS找到Appearance Behavior - Appearance这里能调整主题推荐Darcula深色或IntelliJ Light浅色个人偏好不影响代码功能。重点来了在Editor - Font里调整字体大小建议大小16或18行距1.2左右。默认字体可能是JetBrains Mono这一款对程序员来说非常友好字母数字区分度高。另外在Editor - General - Mouse里可以勾选“Change font size with CtrlMouse Wheel”这样之后用快捷键就能随时缩放代码字号非常方便。4.2 自动保存和自动编译让IDEA替你操心体力活IDEA有一个好习惯它会自动保存你的修改不需要像记事本那样手动CtrlS。在默认配置下你切到浏览器再切回来代码就已经保存好了这一点对新人的意义很大——忘记保存导致的丢失事件基本不会发生。编译方面默认情况下IDEA是手动编译的就是你点击那个绿色三角运行按钮时才触发编译。新人可以先这样用逻辑简单不用了解太多内幕。后面等你接触Maven项目了再打开“Build project automatically”也就是自动编译模式开发效率会提升不少。4.3 常用快捷键整理第一批值得背下来的操作不管你是小白还是工作了两三年的Java开发快捷键都是硬通货。我整理了一份新人前期最常用的快捷键清单建议存下来操作快捷键Windows说明格式化代码Ctrl Alt L让代码排版整齐强迫症福音智能提示补全Alt Enter万能键提示修复或补全快速生成main方法psvm Tab/Enter自动补全main结构快速输出语句sout Tab/Enter自动补全println查找所有Shift Shift全局搜索搜类、搜文件、搜符号重命名Shift F6安全重命名所有引用同步更新注释切换Ctrl /行注释按一下注释再按一下取消展开/折叠代码Ctrl Shift 加号/减号代码多的时候很有用快捷键操作前期可以不用全背先把psvm、sout、Ctrl /这几个用熟后面的效率会随着熟练度自然提升。4.4 常用插件推荐小而美不装花里胡哨的IDEA从一个“编辑器”升级成“生产力工具”很大程度上靠的是插件生态。但新人千万别装一堆花里胡哨的插件既拖慢启动速度又会增加心里负担。我推荐三个实打实有用的Chinese Language Pack如果你对英文界面实在不适应装这个中文语言包界面直接变中文。但它有个副作用网上大部分资料用的是英文界面描述你以后对不上号时会有点懵。Rainbow Brackets用不同颜色区分括号层级代码里的括号一多人眼就容易花这个插件直接挽救视力。CodeGlance在编辑器右侧显示一个代码缩略图长文件拖动定位特别方便。安装路径File - Settings - Plugins搜索插件名点Install后重启IDEA即可。5. 项目跑起来的完整实操演练从空项目到Hello World全过程5.1 分步骤清单照着敲就能成功我把刚才讲的内容整合成一个完整清单新手照着这个流程走一遍基本就能跑通第一个Java程序了。启动IDEA关闭所有项目点击New Project。左侧选择Java右侧Project SDK选择你安装的JDK版本此时不需要创建模板。填写项目名称比如JavaDemo选择项目保存路径路径也不要带中文和空格。点击Finish项目创建完成稍等片刻让人IDEA完成索引构建。展开src文件夹右键 - New - Java Class类名填HelloWorld回车。在类中输入psvm回车补全main方法。在main方法里输入sout回车补全输出语句括号里填Hello, World!。点击代码左边的绿色三角形选择Run HelloWorld.main()。在底部Run窗口查看运行结果。这个过程使用起来大概五分钟左右。如果一次成功恭喜你你已经在使用真正专业的Java开发工具了如果没成功继续看下面的排查清单几乎每个人都会在某个环节出一次小问题这很正常。5.2 从HelloWorld开始理解类的本质很多人写完了HelloWorld就急着写下一段代码但我想在这一节多说两句因为这几分钟的理解能帮你朝Java“面向对象”这个大方向打下一个地基。Java的世界里一切代码都写在“类”里。你可以把类理解成一张设计图纸main方法是这套图纸的“启动按钮”。Java程序的执行入口是public static void main(String[] args)这是JVM找入口时的固定格式一个类里只能有一个main方法。那String[] args是干嘛用的它是命令行参数数组。如果你用命令行运行程序时在后面带参数比如java HelloWorld zhangsan那么args数组就包含了zhangsan这个字符串。在IDEA中你可以通过Run - Edit Configurations - Program arguments去配置参数新人了解即可目前先不用深入。5.3 多类项目的运行方式从“单类”走向“多类”实际项目里当然不可能只有一个类那多个类的情况下怎么运行道理还是相同JVM只认带main方法的类作为入口。你有十个类但只有一个类里有main方法点击这个main方法旁的绿色箭头运行就行了。给个非常典型的场景你写了一个Student类里面定义了姓名和年龄属性又写了一个Main类用来创建学生对象并打印信息。运行时你需要运行的是Main类而不是Student类。这说明一个项目可以有无数个类但启动入口永远只有一个main方法。这一点理解了后面学什么Service、Controller、Vo这些乱七八糟的类时就不会晕了——它们都是为了功能模块拆分服务的负责具体的数据处理和业务逻辑入口在哪里始终是那个main方法。6. 常见报错排查实录新手期最容易栽的五个坑6.1 找不到或无法加载主类这是Java新手遇到频次最高的报错没有之一。错误提示形如“错误: 找不到或无法加载主类 HelloWorld”隐蔽性强且容易吓到人。产生这个问题的常见原因有两个第一个是编译输出目录配置出错处理办法是File - Project Structure - Modules查看Sources和Output路径是否正常第二个是项目缓存出现了问题处理办法是File - Invalidate Caches / Restart清理所有缓存并重启IDEA等索引重建完成后再次运行。如果在清理缓存后依然报错再看看当前运行的配置。点击菜单栏运行配置下拉框选Edit Configurations确认Main class那里填写的类名与你实际创建的类名完全一致包括大小写。6.2 JDK版本不匹配导致的红色报警有时你新建项目时选了JDK 8但某个库或者代码里用了Java 11才引入的语法特性比如var关键字IDEA里会显示红色下划线。这时不用急着改代码先去Project Structure里看看Project SDK和Language level配置确保它们一致。Language level是IDEA的一个“编译器语法约束”如果你用了高版本语法但这里还停在8那就会报警。把Language level调到和JDK版本匹配问题就解了。6.3 中文乱码和编码问题控制台输出中文乱码是Windows环境下经常遇到的问题上面我提过一次-Dfile.encodingUTF-8的解决方案这里再补充一个彻底的办法设置里搜索Console找到Default Encoding把它也改成UTF-8。还有一种乱码是因为源文件本身被存成了GBK编码。尤其当你接收别人给的.java文件时打开IDE后中文变成了“锟斤拷”之类的乱码这就是文件编码不对。处理办法右下角点击UTF-8文字选择Reload in换个编码重新加载文件然后再调回UTF-8。6.4 快捷键失效刚下载的插件吞掉了快捷键装了某个插件后发现CtrlAltL格式化失效了或者某种快捷键被占用这种事时有发生。排查办法File - Settings - Keymap搜索对应快捷键看看有没有被其他action占用最笨也最有效的办法是把Keymap配置恢复为默认然后重新设置自己的习惯。还有一种情况是输入法全角半角问题Windows切换输入法后部分快捷键被输入法截获。比如搜狗输入法有时会占用组合键你可以在输入法设置里关闭特殊热键或者写代码时切到英文状态这几乎是所有Windows开发者的必备肌肉记忆。6.5 项目里出现了红色报错但代码没有错这个情况很迷但也常见代码明明没问题IDEA却显示红色引用找不到。通常是因为Maven或者Gradle项目还没完成依赖下载或者IDEA的索引没构建好。解决办法等待右下角的进度条走完或者File - Reload All from Disk再不行就Invalidate Caches / Restart重启IDE。其实写Java项目先别急着追求“所有红色都消失”有些是语义级别的报警有些仅仅是因为IDEA还没完成分析。新手要学会区分真正的编译错误会让你运行时失败而IDEA的红线提示有时只是静态检查友情提醒运行的时候其实完全正常。7. 从HelloWorld到真实项目下一步往哪个方向走7.1 学习MavenJava项目里真正的“管家”如果你以后打算做Java开发Maven是绕不开的一环。Maven是项目管理和构建工具负责管理你的依赖包比如你用到了某个开源库只需要在配置里声明Maven自动下载、构建项目、打包发布。它和IDEA配合得非常紧密等你准备做第二个项目时建议直接选择New Project里的Maven模板。Maven项目有一个标准目录结构新手刚接触会有点懵src/main/java主代码目录src/main/resources配置文件目录src/test/java测试代码目录pom.xml项目配置和依赖声明文件说实话当初我从空项目切到Maven项目时花了半天才搞明白为什么代码要放在一个嵌了好几层的目录里。现在回头看这个结构是有道理的编译、测试、发布都按约定来团队协作时谁看代码都能秒找位置。7.2 从控制台走向WebSpring Boot帮你打开新世界当你掌握Java基础、面向对象、Maven之后下一步自然就是做Web项目。现在企业级Java Web开发最主流的技术栈是Spring Boot MyBatis光是这两个关键词的搜索量就能看出国内Java开发的生态方向。Spring Boot项目怎么在IDEA里创建有两种方式第一种是安装Spring插件社区版不支持Spring旗舰版自带在New Project里用Spring Initializr向导创建第二种是去start.spring.io网站上在线生成项目压缩包然后导入IDEA。社区版免费用户最常用的是第二种免费且功能完整。创建完Spring Boot项目后运行方式有变化不再是点一下main方法旁边的小三角而是先启动一个内嵌的Web服务器然后通过浏览器访问http://localhost:8080来验证。这背后的原理简单说就是Spring Boot自动配置了一个内嵌的Tomcat服务器你的Java程序跑起来时同时对外提供了HTTP接口服务。7.3 一个小建议先别急于装插件先把读代码能力练起来很多新手在学完HelloWorld后第一反应是“我要装十来个插件让IDEA变强大”第二个反应是“我要下载Java面试题开始准备面试”。我建议这两件事都可以缓一缓先做一件事每天读二十行别人写的Java代码并刻意去猜每个public、static、void、new背后的含义。IDEA本身自带的代码阅读体验已经足够好Ctrl 鼠标左键可以跳到类或方法的定义Alt F7可以查看某个方法被谁调用了。这些功能不需要任何插件但对培养代码理解能力至关重要。我把这个习惯视为从一个“会敲代码的初学者”走向“能解决问题的开发者”的关键一步。启动第一课的结论很简单安装JDK装好IDEA创建空项目写出HelloWorld运行成功。你只需要几个小时就能完成整个流程但这个过程并不只是“写了抬指头代码”而是你第一次在一个完整的、工业级IDE里理解Java程序的构建与执行逻辑。很多人觉得Java开发的门槛高真正走过一遍才发现障碍往往不是编程本身而是那些没人告诉你、但又处处是坑的环境配置和工具使用细节。等你把今天这条路径跑顺了后面学的每一块知识都有了挂靠的载体。