☰
Java零基础Day01:JDK环境配置到Hello World入门
2026/10/12 8:40:34 网站建设 项目流程

如果你点进这篇笔记,大概率是准备开始学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 World

2.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类,可以获取用户在命令行输入的内容,配合变量能做出很多有意思的小交互,比如输入姓名后回复一句欢迎语。这个练习能帮你同时消化“变量”“数据类型”“输出输入”三块内容,性价比很高。

如果你第一天的进度比较快,还可以尝试自己写一个小程序:定义几个变量,计算两个数字的和,把结果输出到屏幕上。不要写“1+1等于2”这种固定答案,要定义变量a和b,然后让程序输出a+b的结果。变量值变了,输出结果也跟着变,你会第一次体会到“写程序”和“背答案”的区别。

最后说点实际的

我见过不少人第一天就急着问“Java到底要学多久才能找工作”“框架什么时候开始学”。这些都可以放一放。以我自己带过新人的经验来看,真正拉开差距的不是谁先学会了多少语法,而是谁的基础链路更牢固。环境变量配不明白的人,后面装Maven、配数据库时还会继续踩坑;HelloWorld流程糊弄过去的人,未来排查问题经常分不清是编译失败还是运行失败。第一天的耐心,会省掉你未来无数次折腾。代码这门手艺,没有捷径,但每一步都不会白走。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询