# Java 零基础完整入门教程(超详细,循序渐进)

# Java 零基础完整入门教程(超详细,循序渐进)

你想要一套完整的Java编程语言入门教程,这份内容从零基础环境搭建核心语法+实战案例全覆盖,逻辑清晰、知识点完整,学完能掌握Java基础开发能力,适合纯新手入门学习 ✅

一、Java 简介 & 核心优势(必知)

Java 是一门 面向对象、跨平台、编译型+解释型 的高级编程语言,由Sun公司(现Oracle)推出,诞生至今稳居编程语言排行榜前列。

Java 核心三大特性(灵魂)

  1. 跨平台(一次编写,到处运行) :Java代码编译后生成字节码文件(.class),不是直接运行在操作系统,而是运行在 JVM(Java虚拟机) 上。不同操作系统(Windows、Mac、Linux)安装对应版本的JVM,就能运行同一个class文件,这是Java最核心的优势。
  2. 面向对象(OOP) :Java纯面向对象,万物皆对象,核心思想是:封装、继承、多态,能更贴合现实世界的业务逻辑开发。
  3. 安全稳定 :Java自带垃圾回收机制(GC),自动释放内存,几乎不会出现内存泄漏;无指针操作,避免非法内存访问,广泛用于企业级项目、金融系统、大型网站。

Java 主要应用场景

  • 后端开发(主流):电商网站、金融系统、企业管理系统、微服务架构
  • 移动端:Android应用开发(Android的编程语言就是Java)
  • 大数据开发:Hadoop、Spark等大数据框架,核心开发语言都是Java
  • 桌面应用:桌面客户端软件(如IDEA部分功能)

二、Java 开发环境搭建(第一步,必做)

学习Java的第一步,必须先搭建好开发环境,核心是安装 JDK,这是所有Java开发的基础,缺一不可。

2.1 核心概念区分(避免混淆)

  • JVM(Java虚拟机) :运行Java字节码文件的核心,是跨平台的基础。
  • JRE(Java运行环境) :包含JVM + 运行Java程序的核心类库,只能运行Java程序,不能编译
  • JDK(Java开发工具包) :包含JRE + 编译工具(javac)、运行工具(java)等开发必需的工具,开发Java程序必须安装JDK

2.2 JDK 安装与环境变量配置(Windows/Mac通用)

✅ 步骤1:下载JDK

推荐版本:JDK8(最稳定,企业主流) 或 JDK17(长期支持版),Oracle官网或国内镜像站均可下载,安装无脑下一步即可(建议安装路径不要有中文和空格)。

✅ 步骤2:配置环境变量(核心,Windows重点)
  • 新增系统变量 JAVA_HOME :值为你的JDK安装根目录(例:C:\Program Files\Java\jdk1.8.0_301
  • 编辑系统变量 Path :新增两个值 %JAVA_HOME%\bin%JAVA_HOME%\jre\bin
  • Mac/Linux 无需手动配置,安装完成后自动生效
✅ 步骤3:验证是否安装成功

打开电脑「命令提示符(cmd)」或「终端」,输入以下两个命令,能输出版本信息即表示成功:

java-version javac -version

三、Java 开发工具选择

✅ 入门首选(推荐100%新手用)

  1. 记事本/Notepad++ :纯文本编辑器,无任何语法提示,适合入门初期手写代码,能帮你牢牢记住语法规则,打好基础。
  2. IDEA(IntelliJ IDEA) :业界公认的最好用的Java开发工具,分社区版(免费)和旗舰版(付费),新手装社区版完全够用。IDEA自带语法提示、自动补全、编译运行一键搞定,后期写项目效率极高,学会记事本入门后,直接切换IDEA即可。
补充:Eclipse也是Java开发工具,免费,但界面和易用性不如IDEA,新手优先选IDEA。

四、Java 第一个程序 HelloWorld(必写)

所有编程语言的入门第一课,都是编写输出 Hello World 的程序,Java也不例外,我们分记事本手动编译运行IDEA一键运行两种方式。

4.1 记事本编写 + 手动编译运行(核心,必须懂)

Java是严格区分大小写的语言,且语法规范极强,一个字符都不能错

步骤1:新建记事本,编写代码

新建一个txt文件,重命名为 HelloWorld.java(⚠️ 后缀必须是.java,文件名必须和代码中的class类名完全一致,包括大小写),写入以下代码:

// 这是Java的单行注释:第一个Java程序 HelloWorldpublicclassHelloWorld{// main方法:程序的入口,所有Java程序都从main方法开始执行,固定写法publicstaticvoidmain(String[] args){// 输出语句:控制台打印指定内容,分号是Java语句的结束标志,必须加System.out.println("Hello World! 你好,Java!");}}
步骤2:编译Java源文件(javac命令)

打开cmd,进入HelloWorld.java所在的文件夹,执行编译命令:

javac HelloWorld.java 

✅ 编译成功:文件夹中会新增一个 HelloWorld.class 文件(这就是Java的字节码文件,跨平台的核心)
❌ 编译失败:大概率是代码写错、大小写错误、少分号,对照修改即可。

步骤3:运行字节码文件(java命令)

在同一个cmd窗口,执行运行命令(⚠️ 命令里不要加.class后缀):

java HelloWorld 

✅ 运行成功:控制台会打印出 Hello World! 你好,Java!

4.2 核心知识点解释(必须背会)

  1. public class 类名 :定义一个公共类,文件名必须和类名一致,Java源文件中可以有多个类,但只能有一个public类。
  2. public static void main(String[] args) :Java程序的唯一入口,这个写法是固定的,没有任何例外,必须记住!
  3. System.out.println("内容") :向控制台打印内容,打印后自动换行;如果不想换行,用 System.out.print("内容")
  4. 分号 ; :Java中所有语句必须以分号结尾,这是语法规则,少写必报错。
  5. 注释 // :注释是给程序员看的,编译器会忽略,不影响程序运行,单行注释用//,多行注释用/* 注释内容 */

五、Java 基础核心语法(完整版,循序渐进)

掌握了HelloWorld,接下来就是Java的核心基础语法,这是所有Java开发的根基,重中之重,知识点按「从易到难」排序,全部是高频考点和必用知识点。

✅ 语法规则前置(贯穿始终,必遵守)

  1. Java 严格区分大小写(Mainmain 是两个完全不同的东西)
  2. 代码缩进不是语法要求,但必须缩进,增强可读性
  3. 大括号 {} 必须成对出现,包裹代码块
  4. 语句必须以分号 ; 结束

5.1 变量与数据类型

✅ 什么是变量?

变量是程序中用来存储数据的容器,本质是内存中的一块存储空间,通过变量名可以访问这块空间的数据。

✅ Java 数据类型(两大分类,强类型语言

Java是强类型语言:变量在定义时,必须指定数据类型,且赋值的类型必须和定义的类型一致,不能随意转换。

① 基本数据类型(8种,最常用,必须记)

占内存固定,效率高,是Java的基础类型,分为4类8种:

1. 整数类型: byte 占1字节 范围:-128 ~ 127 short 占2字节 范围:-32768 ~ 32767 int 占4字节 范围:-2^31 ~ 2^31-1 【默认整数类型,最常用】 long 占8字节 范围极大,赋值时结尾必须加 L 例:long num = 10000000000L; 2. 浮点类型(小数): float 占4字节 单精度,赋值时结尾必须加 F 例:float price = 9.9F; double 占8字节 双精度 【默认浮点类型,最常用】例:double pi = 3.1415926; 3. 字符类型: char 占2字节 存储单个字符,必须用单引号包裹 例:char ch = 'A'; char ch2 = '中'; 4. 布尔类型(判断真假): boolean 占1字节 只有两个值:true(真)、false(假)【判断语句核心】 
② 引用数据类型

字符串、数组、类、接口等,最常用的就是字符串类型 String,用双引号包裹:

String name ="张三";String address ="北京市朝阳区";
✅ 变量的定义格式(固定写法)
// 格式:数据类型 变量名 = 赋值;int age =18;// 定义整型变量age,赋值18double score =95.5;// 定义浮点型变量score,赋值95.5char sex ='男';// 定义字符型变量sex,赋值男boolean flag =true;// 定义布尔型变量flag,赋值真String username ="Java学习者";// 定义字符串变量
变量命名规范:首字母小写,后面单词首字母大写(驼峰命名),例:studentNamephoneNumber,不能用中文/数字开头。

5.2 运算符(运算的核心,常用)

Java的运算符和数学中的运算逻辑基本一致,分为几大类,都是高频使用:

✅ 算术运算符(加减乘除)

+ - * / % 其中 % 是取模(求余数),例:7%2 = 110%3 = 1

int a =10;int b =3;System.out.println(a + b);// 13System.out.println(a / b);// 3 (整数相除,只取整数部分)System.out.println(a % b);// 1 (取余数)
特别:+ 对字符串是「拼接」作用,例:System.out.println("年龄:" + 18); 输出:年龄:18
✅ 赋值运算符

=+=-=*=/= 最常用的是 =,例:int num = 5;

✅ 比较运算符(判断大小,结果是布尔值)

> < >= <= == != 所有比较运算符的结果,只有 truefalse,是if判断、循环的核心

int x =10;int y =20;System.out.println(x > y);// falseSystem.out.println(x == y);// falseSystem.out.println(x != y);// true
✅ 逻辑运算符(多条件判断)

&&(与)、||(或)、!(非)

  • && :多个条件同时满足,结果才是true
  • || :多个条件满足一个,结果就是true
  • ! :取反,true变false,false变true

5.3 流程控制语句(程序的执行逻辑,重中之重)

程序的执行逻辑默认是「顺序执行」:从上到下一行一行执行。而流程控制语句可以改变执行顺序,分为分支语句循环语句,是所有编程逻辑的核心!

✅ 一、分支语句(条件判断,满足条件才执行对应代码)
1. if 语句(最常用,单条件判断)
// 格式1:单ifif(条件表达式){ 条件为true时,执行的代码;}// 格式2:if-else 二选一执行if(条件表达式){ 条件为true时执行的代码;}else{ 条件为false时执行的代码;}// 案例:判断年龄是否成年int age =20;if(age >=18){System.out.println("你已成年");}else{System.out.println("你未成年");}
2. switch 语句(多值匹配,固定值判断)

适合判断一个变量的多个固定值,比如:判断星期几、判断月份。

✅ 二、循环语句(重复执行一段代码,解放双手)

当需要重复执行某段代码时(比如:打印100遍HelloWorld、计算1-100的和),用循环语句,三大循环:for、while、do-while,其中 for循环 最常用!

1. for 循环(固定次数循环,首选)
// 格式:for(初始化变量; 循环条件; 变量自增/自减) { 循环体 }// 案例1:打印1-5的数字for(int i =1; i <=5; i++){System.out.println(i);}// 案例2:计算1+2+3+...+100的和int sum =0;for(int i =1; i <=100; i++){ sum += i;// 等价于 sum = sum + i}System.out.println("1-100的和:"+ sum);// 结果:5050
2. while 循环(未知次数循环)
// 格式:while(循环条件) { 循环体 }// 案例:打印1-5的数字int i =1;while(i <=5){System.out.println(i); i++;}
循环核心:必须有「循环终止条件」,否则会变成死循环,程序一直运行直到崩溃!

5.4 数组(存储多个同类型数据的容器)

数组是Java中最基础的引用数据类型,作用是:一次性存储多个相同数据类型的变量,比如:存储一个班级的所有学生成绩、存储10个整数。

✅ 数组的定义格式(两种常用格式)
// 格式1:推荐,可读性强 数据类型[] 数组名 =new 数据类型[数组长度];// 格式2:兼容C语言写法,不推荐 数据类型 数组名[]=new 数据类型[数组长度];// 案例:定义一个长度为5的整型数组,存储5个学生的成绩int[] scores =newint[5];
✅ 数组的赋值与访问

数组的索引(下标)从0开始,比如长度为5的数组,索引是 0、1、2、3、4,通过 数组名[索引] 访问元素:

int[] scores =newint[5]; scores[0]=90;// 给第1个元素赋值90 scores[1]=85;// 给第2个元素赋值85System.out.println(scores[0]);// 访问第1个元素,输出90// 简化写法:定义数组时直接赋值(最常用)int[] nums ={1,2,3,4,5};// 长度自动为5// 遍历数组:用for循环打印所有元素for(int i =0; i < nums.length; i++){System.out.println(nums[i]);}
数组名.length 可以获取数组的长度,是固定写法。

六、Java 面向对象核心(OOP,Java的灵魂)

Java 是纯面向对象编程语言万物皆对象,面向对象是Java的核心思想,也是Java区别于C语言(面向过程)的本质,必须理解!

面向过程:关注「步骤」,比如:做饭要先买菜→洗菜→切菜→炒菜,一步一步执行。
面向对象:关注「对象」,比如:找一个「厨师对象」,让厨师去做饭,你只需要调用厨师的「做饭方法」即可,不用关心步骤。

6.1 面向对象的三大核心特征(必须理解+记忆)

✅ 1. 封装

把对象的属性和行为封装在一起,隐藏内部实现细节,只对外暴露访问接口,提高代码安全性。

例:定义一个「学生类」,属性是姓名、年龄、成绩,行为是学习、考试,这些属性和方法都封装在类中。
✅ 2. 继承

子类可以继承父类的属性和方法,减少代码重复,提高代码复用性。

例:「学生类」和「老师类」都继承自「人类」,人类的属性(姓名、年龄)和方法(吃饭、睡觉),学生和老师都可以直接使用。
✅ 3. 多态

同一个行为,对于不同的对象,有不同的表现形式,提高代码的扩展性。

例:同样是「吃饭」这个行为,学生吃饭是在食堂,老师吃饭是在教师餐厅,小狗吃饭是啃骨头。

6.2 类与对象(最基础的OOP概念,必懂)

✅ 核心关系:类是对象的模板,对象是类的实例
  • :是对一类事物的抽象描述,比如:人类、学生类、手机类,包含「属性(特征)」和「方法(行为)」。
    • 属性:事物的特征,比如:学生的姓名、年龄、成绩。
    • 方法:事物的行为,比如:学生的学习()、考试()、跑步()。
  • 对象:是类的具体实例,比如:张三是「学生类」的一个对象,李四也是「学生类」的一个对象。
✅ 类的定义与对象的创建(固定写法,必写)
// 1. 定义一个学生类(模板)publicclassStudent{// 1.1 定义属性(成员变量)String name;// 姓名int age;// 年龄double score;// 成绩// 1.2 定义方法(成员方法)publicvoidstudy(){System.out.println(name +"正在学习Java!");}publicvoidexam(){System.out.println(name +"正在考试,成绩是:"+ score);}}// 2. 创建对象并使用(main方法中执行)publicclassTest{publicstaticvoidmain(String[] args){// 格式:类名 对象名 = new 类名();Student stu1 =newStudent();// 给对象的属性赋值 stu1.name ="张三"; stu1.age =18; stu1.score =98.5;// 调用对象的方法 stu1.study();// 输出:张三正在学习Java! stu1.exam();// 输出:张三正在考试,成绩是:98.5}}

这就是Java面向对象的基础,所有Java项目的代码,都是由一个个「类」和「对象」组成的!


七、Java 入门必做的小实战案例(巩固知识点)

学完基础语法后,一定要做实战案例,只有动手写,才能真正掌握,以下案例由浅入深,全部是入门级必做,覆盖所有核心基础:

  1. 计算圆的面积和周长(使用浮点类型、变量、公式)
  2. 判断一个数是奇数还是偶数(使用if语句、取模运算符)
  3. 打印九九乘法表(使用双层for循环,经典入门题)
  4. 找出数组中的最大值和最小值(数组+循环+判断)
  5. 定义一个「手机类」,包含品牌、价格属性,打电话、发短信方法,创建对象调用(面向对象入门)

八、Java 学习路线规划(零基础→入门→进阶,清晰指引)

✅ 阶段一:基础入门(你当前的阶段,1-2周)

完成以上所有内容:环境搭建 → HelloWorld → 基础语法(变量、运算符、流程控制、数组)→ 面向对象基础(类、对象、三大特征),能独立写简单的案例程序。

✅ 阶段二:Java 核心进阶(2-3周)

面向对象深入(构造方法、封装、继承、多态、抽象类、接口)→ 常用API(字符串String、集合框架ArrayList)→ 异常处理 → IO流(文件读写),这个阶段是Java的核心,学完能写中小型Java项目。

✅ 阶段三:Java 后端开发(就业方向,重点)

MySQL数据库 → JDBC连接数据库 → Web开发(HTML/CSS/JS、Servlet、SSM框架)→ 微服务(SpringBoot、SpringCloud),这是Java最主流的就业方向,市场需求大、薪资高。


总结

这份Java教程是零基础专属完整版,核心知识点总结如下:

  1. Java的核心优势是「跨平台、面向对象、安全稳定」,JVM是跨平台的核心。
  2. 开发Java必须安装JDK,第一个程序HelloWorld的编译命令javac,运行命令java,必须掌握。
  3. Java是强类型语言,8种基本数据类型是基础,流程控制(if/for)是编程逻辑核心。
  4. Java的灵魂是「面向对象」,类和对象是基础,三大特征(封装、继承、多态)是核心。
  5. 学习Java的核心法则:多看、多写、多练,语法背会没用,只有动手敲代码,才能真正掌握!

祝你学习顺利,早日掌握Java编程 💪!

在这里插入图片描述

Read more

未来的鸿蒙 App,还需要“首页”吗?

未来的鸿蒙 App,还需要“首页”吗?

子玥酱(掘金 / 知乎 / ZEEKLOG / 简书 同名) 大家好,我是子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。 我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括前端工程化、小程序、React / RN、Flutter、跨端方案, 在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。 技术方向:前端 / 跨端 / 小程序 / 移动端工程化 内容平台:掘金、知乎、ZEEKLOG、简书 创作特点:实战导向、源码拆解、少空谈多落地 文章状态:长期稳定更新,大量原创输出 我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在“API 怎么用”,而是更关注为什么这么设计、在什么场景下容易踩坑、

By Ne0inhk
Linux--epoll(ET)实现Reactor模式

Linux--epoll(ET)实现Reactor模式

Linux–多路转接之epoll Reactor反应堆模式 Reactor反应堆模式是一种事件驱动的设计模式,通常用于处理高并发的I/O操作,尤其是在服务器或网络编程中。 基本概念 Reactor模式又称之为响应器模式,基于事件多路复用机制,使得单个线程能够同时管理大量并发连接,而不需要为每个连接创建一个独立的线程。它通过一个事件分发器(Reactor)来监听和管理不同的I/O事件,当事件发生时,分发器会将该事件分发给对应的事件处理器来处理。 核心组件 * 事件分发器(Reactor):负责监听各种事件源(如socket、文件描述符)并将事件分发给相应的处理器。事件分发器通常使用I/O多路复用机制(如select、poll、epoll)来同时监听多个I/O事件。 * 事件处理器(Event Handler):定义了如何处理特定事件。当事件分发器检测到某个事件时,就会触发相应的事件处理器中的回调函数。 * 同步事件分离器(Demultiplexer):本质上是系统调用,用于监听事件源上的事件,并将事件通知给事件分发器。例如,在Linux中,可以使用select、p

By Ne0inhk
ARM Linux 驱动开发篇--- Linux 并发与竞争实验(互斥体实现 LED 设备互斥访问)--- Ubuntu20.04互斥体实验

ARM Linux 驱动开发篇--- Linux 并发与竞争实验(互斥体实现 LED 设备互斥访问)--- Ubuntu20.04互斥体实验

🎬 渡水无言:个人主页渡水无言 ❄专栏传送门: 《linux专栏》《嵌入式linux驱动开发》《linux系统移植专栏》 ❄专栏传送门: 《freertos专栏》《STM32 HAL库专栏》 ⭐️流水不争先,争的是滔滔不绝  📚博主简介:第二十届中国研究生电子设计竞赛全国二等奖 |国家奖学金 | 省级三好学生 | 省级优秀毕业生获得者 | ZEEKLOG新星杯TOP18 | 半导纵横专栏博主 | 211在读研究生 在这里主要分享自己学习的linux嵌入式领域知识;有分享错误或者不足的地方欢迎大佬指导,也欢迎各位大佬互相三连 目录 前言  一、实验基础说明 1.1、互斥体简介 1.2 本次实验设计思路 二、硬件原理分析(看过之前博客的可以忽略) 三、实验程序编写 3.1 互斥体 LED 驱动代码(mutex.c) 3.2.1、设备结构体定义(28-39

By Ne0inhk
Flutter 组件 string_stats 的鸿蒙化适配实战 - 驾驭极致文本分析大坝,实现 OpenHarmony 高性能文本审计、字符特征提取与工业级内容解析核

Flutter 组件 string_stats 的鸿蒙化适配实战 - 驾驭极致文本分析大坝,实现 OpenHarmony 高性能文本审计、字符特征提取与工业级内容解析核

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 string_stats 的鸿蒙化适配实战 - 驾驭极致文本分析大坝,实现 OpenHarmony 高性能文本审计、字符特征提取与工业级内容解析核 前言 随着鸿蒙(OpenHarmony)生态深入政企、金融与教育等核心领域,应用中对于“海量文本内容的高性能深度剖析”已经成为了保障系统稳健运行的第一道闸门。无论是实时监控系统中的日志关键词审计,还是编辑器应用中的多维度字符统计,如果开发者只是简单地使用 Dart 原生的字符串操作,在面对数十万乃至百万级别的长文本时,极易由于过度消耗主线程资源导致 UI 掉帧,甚至在重型计算时引发 ANR。 我们需要一种“冷血、精准、高通量”的文本特征提取机制。string_stats 库正是为了这种极致的字符属性审计而生的分析阵列。它通过高效的一阶遍历算法,能够秒级提取文本的行数、字数、高频词以及语法特征。适配到鸿蒙平台后,它不仅能为你的应用提供工业级的统计精度,更是我们构建“

By Ne0inhk