Java零基础Day01:JDK环境配置到Hello World入门

发布时间:2026/10/12 8:40:50
Java零基础Day01:JDK环境配置到Hello World入门
如果你点进这篇笔记大概率是准备开始学Java又不知道第一天到底该干嘛。我最初学Java的时候也经历过那种“打开教程一大堆、动手却无从下手”的状态。所谓day01并不是让你背完多少语法而是把“Java能不能在你电脑上跑起来”这件事彻底搞定并亲手写出第一个程序。这篇笔记就是按这个思路整理的环境的安装与配置、Hello World的完整编译运行流程、变量与数据类型的第一次接触以及第一天最容易踩的坑。零基础可以照着一步步做有点基础的人也能用这份笔记自查有没有漏掉关键细节。1. 环境准备先把JDK装上1.1 JDK和JRE的区别以及版本怎么选很多新手第一次接触Java环境时会被JDK、JRE、JVM这几个概念绕晕。简单说JVM是Java虚拟机负责运行Java程序是跨平台的核心JRE是Java运行环境包含JVM和必要的类库只负责“运行”JDK是Java开发工具包除了包含JRE还带了一堆开发工具比如后面要用的javac编译器。所以如果只是运行别人写好的Java程序装JRE就够了。但要自己写代码、编译、调试就必须装JDK。安装JDK时会自动带上JRE部分不用单独再装一遍。版本怎么选我的建议是学习阶段优先选JDK 8或者JDK 17。JDK 8是老牌经典很多公司存量项目还在用它网上资料也特别多JDK 17是新一点的长期支持版本新项目在逐步迁移过去。不要一上来就追最新版因为版本太新可能和部分教程或工具存在兼容问题对你来说没有任何额外好处。等以后工作了公司用什么版本就跟着用什么版本。下载的时候认准官方下载页面别去乱七八糟的第三方站点那些整合包很容易捆绑多余软件。安装包有exe安装版和解压版新手建议用exe安装版下一步下一步点完就行省事。1.2 安装和配置环境变量一步步来安装过程本身不复杂复杂的是装完之后的配置。JDK装好后为了让系统在任意目录下都能识别java和javac命令需要配置环境变量。我以Windows系统为例安装时建议把路径改成类似 D:\Java\jdk8 这样的纯英文目录避免出现中文或空格。虽然现在很多程序能容忍带空格的路径但以后写脚本、跑工具时空格经常会惹出莫名其妙的报错没必要给自己埋雷。装完之后配置三个环境变量JAVA_HOME指向JDK的安装目录比如 D:\Java\jdk8。PATH新增一条 %JAVA_HOME%\bin。CLASSPATH老教程里会要求配成 .但现代JDK版本即使不配置默认也能正确找到类路径。如果你是初学者第一天可以不配CLASSPATH减少出错点。为什么要单独设一个JAVA_HOME而不是直接在PATH里写死JDK路径因为以后升级JDK版本时只需要改JAVA_HOME一个地方PATH里的配置不用动非常方便。这个习惯在很多Java相关的工具和框架里也用得到比如Tomcat、Maven它们都会主动去找JAVA_HOME。配置的具体步骤是右键“此电脑” → 属性 → 高级系统设置 → 环境变量。在“系统变量”区域新建JAVA_HOME再找到Path变量双击后点“新建”填入%JAVA_HOME%\bin一路确定。注意改完环境变量后已经打开的命令行窗口不会自动更新必须重新打开一个新的命令行窗口才生效。1.3 验证安装的三个命令环境变量配置完成后别急着写代码先验证环境是否真的没问题。打开命令行窗口依次输入三个命令java -version javac -version echo %JAVA_HOME%第一行显示Java版本信息第二行显示编译器的版本信息第三行显示你配置的JAVA_HOME路径。如果三行都有正常输出说明JDK装好了环境也认了。这一步卡住的话后面所有代码都跑不起来所以一定要在这个环节确认清楚。我在帮一些同学排查时发现最常见的情况是java -version能输出、javac -version却提示找不到命令。这种一般就是javac所在的bin目录没被正确加入PATH或者PATH里写的是相对路径检查一下就好。2. 第一个程序Hello World2.1 用记事本写源码环境搞定后就可以写第一个Java程序了。第一步先创建HelloWorld.java文件。新手不建议直接开IDE里点“新建项目”因为第一天先把最原始的手感找出来后面的工具用起来才不糊涂。在D盘建一个day01文件夹用来放这一天的练习代码。然后新建一个文本文件把后缀名改成.java。如果看不到后缀名需要在文件夹“查看”选项中勾选“文件扩展名”。这个动作虽然小但好多人卡在这里改完后缀发现还是txt其实就是没显示扩展名导致改了个寂寞。用记事本打开这个文件输入以下代码public class HelloWorld { public static void main(String[] args) { System.out.println(Hello World); } }保存后先检查文件名是不是HelloWorld.java注意大小写必须和class后面的名字完全一致。Java是严格区分大小写的语言helloworld.java和HelloWorld.java是两回事。为什么文件名必须和类名一致因为java命令在执行时会根据你传入的类名去加载对应的.class文件如果文件名和类名对不上编译器直接报错。这算是Java的一条硬性规定第一天记住它后面能少挨很多次报错。2.2 编译和运行javac和java写好代码后在day01文件夹的地址栏输入cmd回车就能直接打开定位到这个目录的命令行窗口。这一步比手动cd来cd去省事得多也是我平时最常用的操作方式。然后执行编译命令javac HelloWorld.java如果没有任何输出说明编译成功。去文件夹里看一眼会发现多了一个HelloWorld.class文件。这个.class文件就是字节码文件Java程序最终运行的就是它。接着执行运行命令java HelloWorld注意这里不需要带.class后缀也不需要带.java后缀直接写类名HelloWorld就行。命令执行后会输出Hello World。javac和java的分工可以这样理解javac把.java源码编译成.class字节码java命令启动JVM把.class字节码加载进来执行。字节码是Java跨平台的关键同一份.class文件在Windows、Linux、Mac上都能运行因为JVM帮我们屏蔽了底层差异。javac像是把一份中文菜谱翻译成通用菜谱java则是不同地区的厨师按照通用菜谱做菜。2.3 第一个程序的常见报错第一次写Java程序几乎人人都会遇到报错。我把最常见的情况列出来免得你在那干瞪眼错误: 找不到符号输出System.out.println时就会遇到。多数原因是拼写问题比如System第一个字母大写、String首字母大写新手常把这俩写成小写。println里的字母l不是数字1也不是大写L虽然看着像但只能用小写。错误: 找不到或无法加载主类运行java命令时最常见。原因一般是类名不对、命令行窗口当前目录不对、或者运行了java HelloWorld.class这种写法。记住java命令后面跟的是类名不是文件名。编码GBK的不可映射字符中文注释乱码。Windows记事本默认可能是GBK编码而JDK编译时默认按系统编码读取就会冲突。最简单的处理是代码文件保存成UTF-8格式再用javac -encoding UTF-8 HelloWorld.java编译。这几种错误我都见过很多次本质上不是你不会写代码而是对编译运行流程还不熟。多敲几遍把报错信息逐字读明白每解决一个错误你对Java的理解就深一层。3. 基础语法入门变量与数据类型3.1 变量是怎么回事第一个程序跑通后第二天手感就开始慢慢建立。接下来就得接触Java程序的“积木块”——变量。变量可以理解成一个带名字的盒子用来存放数据。盒子的名字叫变量名盒子里放的东西叫变量值。Java是强类型语言定义变量时必须先说明这个盒子能装什么类型的数据不能今天装数字明天装文本。定义变量的基本格式是int age 18; String name 张三;声明变量时先写类型再写变量名然后用等号赋值。变量必须先声明再使用否则编译器不知道这个变量是什么类型直接报错。变量的值可以随时改变所以叫变量。第一天你只要掌握“声明-赋值-输出”这条链路就够了。比如写一个程序输出你的年龄定义int类型变量age赋值然后用System.out.println(age)输出。能完成这个说明你对变量的理解到位了。3.2 8种基本数据类型Java的基本数据类型一共有8种分别是byte、short、int、long、float、double、char、boolean。第一天不需要全部死记硬背但至少要把它们的用途和常见选择搞清楚。从最常用的说起int是整数double是小数boolean是布尔值只有true和false两个值char是单个字符用单引号包起来比如char c A;String是字符串用双引号包起来比如String s Hello;。这里要特别注意String不是基本数据类型它是引用类型但因为太常用了很多零基础教程会把它和基本类型放在一起讲。用的时候知道字符串跟字符的区别就够了单引号是字符双引号是字符串不能混用。每个基本数据类型都有自己的取值范围比如int大概能表示正负21亿之间的整数超出这个范围就要用long。新手容易忽略这一点比如算一个很大的数结果莫名其妙变成负数往往是int溢出。这个坑以后做算法题会经常遇到。3.3 关键字和标识符的规矩写变量名时第一个大坑就是撞上关键字。break、for、if、class这些词已经被Java预留了不能当变量名。你不能写int class 10;编译器会直接骂你。Java标识符的规则也不需要背记住几条核心的标识符只能由字母、数字、下划线和美元符号组成不能以数字开头不能是Java关键字严格区分大小写。常见的写法比如userName、helloWorld都是合法的。除了语法规则还有一套行业通用的命名规范类名用大写字母开头后面每个单词首字母大写比如HelloWorld变量名用小写字母开头后面每个单词首字母大写比如userAge常量全部大写用下划线连接比如MAX_VALUE。这些不是语法强制的但大家都这么写代码可读性会高很多。我第一次写代码时变量名起的是a、b、c这种后来回头看完全想不起那些变量是干嘛用的。现在我的习惯是变量名宁可长一点也要能表达含义。这个习惯建议从第一天就开始培养比学任何一个技巧都值钱。4. 实操全程记录从零到跑通4.1 完整流程演示这一节把整个day01的实操串起来你可以照着一遍跑通。第一步安装JDK。安装到D:\Java\jdk8重新打开命令行执行java -version和javac -version看到版本信息就说明环境OK。第二步建好代码目录。我在D盘下建了day01目录把所有练习代码放里面。这样做有几个好处目录结构清晰、以后复习好找、命令行里切换路径也方便。第三步写一个关于变量的程序。我们在HelloWorld的基础上加点东西public class MyInfo { public static void main(String[] args) { String name 张三; int age 18; double height 175.5; System.out.println(name); System.out.println(age); System.out.println(height); } }第四步编译运行。在day01目录的命令行窗口执行javac MyInfo.java java MyInfo程序运行后依次输出张三、18、175.5。程序运行后两个命令顺序不能反也不能漏。很多人直接跳过javac去执行java MyInfo结果提示找不到或无法加载主类这就是对流程还不熟。4.2 乱码和路径的坑我身边很多同学第一天都遇到过同一个现象代码里的中文输出到命令行就变成乱码或者javac报“编码GBK的不可映射字符”。这种情况通常是代码文件的编码和命令行解码的方式不一致。现在的记事本一般默认UTF-8但命令行窗口默认使用的编码可能与UTF-8不一致导致中文显示异常。解决思路是让两边统一。一个办法是编译时显式指定编码javac -encoding UTF-8 MyInfo.java另一个办法是把代码文件统一存成UTF-8格式然后运行命令设置一下chcp 65001这个命令把命令行编码切成UTF-8再执行java MyInfo就不会乱码了。路径的坑则是降低折腾成本。我见过有人把JDK装到“D:\我的工具\jdk-21”这种目录平时用着没问题但一旦某些工具不认识中文路径就各种诡异现象。还有安装在Program Files目录虽然引号能兜底但每次配置都要小心翼翼。我现在的原则很简单Java相关的工具一律丢到简洁的英文路径下比如D:\Java、D:\dev。4.3 要不要第一天就装IDE“既然以后要用IDE我第一天直接装一个不行吗”这是每个初学者都会问的问题。我的回答是第一天先别用。不是说IDE不好而是第一天你的核心任务是把“源码→字节码→运行”这条链路看清楚。用记事本和命令行每一步都明明白白直接打开IDE点一下运行按钮代码背后的过程全被工具隐藏了一旦出错你根本不知道去哪看。等到你熟练了编译运行这套流程能看懂javac和java的报错了再去用IDE。到了那个阶段IDE替你省掉的重复操作会让你感激它。过早使用IDE就像刚学开车就上自动驾驶真遇到状况反而不会处理。所以我给新手的路线都是第一周用手工方式把基本功打好第二周再切IDE效率会高很多。5. 学习节奏和笔记建议5.1 day01重点到底抓什么第一天不需要追逐新潮的技术或者复杂的框架目标就三个环境能跑通、第一个程序能运行、变量的基本概念能说出来。如果你还有余力就把数据类型和标识符规则捋一遍。这些基础东西看似简单但它们是后面所有内容的地基。我建议用自查清单来确认学习效果能不能解释JDK、JRE、JVM的区别能不能不看笔记从零写出一个HelloWorld程序并手动编译运行遇到“找不到或无法加载主类”的报错能不能自己找到原因能不能说出int和double在什么场景下使用如果这四件事你都能独立完成第一天就算达标了。别觉得慢慢就是快。很多学得飞快的同学到后面连环境变量都不会配反而要回头补课。5.2 第一天笔记的正确打开方式学习Java的Day01很多人的笔记只有一行配置了JDK环境写了Hello World。这样的笔记价值很低。真正有价值的笔记记的不是结果而是过程和问题。我自己的笔记习惯是记录三部分内容第一今天学到的新概念用大白话写一遍比如“JVM是能运行字节码的虚拟机”第二实际操作中的关键命令和步骤比如javac和java的区别哪怕写下来很啰嗦第三今天遇到的报错以及解决办法。我常嫌弃以前记报错只记了个报错信息事后再看根本想不起来当时怎么解决的。这里有一个很实用的小方法用“报错信息—原因—解决步骤”这样的三栏式表格记问题。以后再遇到同样的报错一眼就能从笔记里翻出答案。这个方法虽然土但比任何记笔记的工具都可靠。5.3 规划一下第二天环境会配了程序会跑了变量会用了第二天就能往更实用的方向走写一个可以读键盘输入的程序。Java提供了Scanner类可以获取用户在命令行输入的内容配合变量能做出很多有意思的小交互比如输入姓名后回复一句欢迎语。这个练习能帮你同时消化“变量”“数据类型”“输出输入”三块内容性价比很高。如果你第一天的进度比较快还可以尝试自己写一个小程序定义几个变量计算两个数字的和把结果输出到屏幕上。不要写“11等于2”这种固定答案要定义变量a和b然后让程序输出ab的结果。变量值变了输出结果也跟着变你会第一次体会到“写程序”和“背答案”的区别。最后说点实际的我见过不少人第一天就急着问“Java到底要学多久才能找工作”“框架什么时候开始学”。这些都可以放一放。以我自己带过新人的经验来看真正拉开差距的不是谁先学会了多少语法而是谁的基础链路更牢固。环境变量配不明白的人后面装Maven、配数据库时还会继续踩坑HelloWorld流程糊弄过去的人未来排查问题经常分不清是编译失败还是运行失败。第一天的耐心会省掉你未来无数次折腾。代码这门手艺没有捷径但每一步都不会白走。