如果你打算认真学 Java,又担心零基础课程只是把语法念一遍、学完还是写不出东西,这套《零基础学Java》值得先了解清楚再决定要不要投入时间。它面向的是完全没有编程经验的人,从装 JDK、配环境变量开始,一路讲到多线程和并发,中间不跳过任何一块基础。对转行者来说,这种从零起步、不默认你懂 C 语言或计算机原理的讲法,能省掉很多自己补课的麻烦。

它解决的是"看得懂语法,写不出程序"的问题

很多人自学 Java 卡在同一处:变量、循环、if 判断都背下来了,但给一个具体需求就不知道从哪下手。这门课的做法是拿"超市"这个场景贯穿始终——商品、订单、库存、结算,这些概念随着知识点推进反复出现。学到类与对象时,超市里的商品就是对象;学到集合时,购物车就是集合;学到异常时,库存不足就是异常。抽象概念有了具体落点,你更容易理解每个语法到底在什么场合用。课程后段还有聊天室和游戏小程序两个实战,用来检验前面学到的东西能不能串起来。

适合什么基础,以及先看哪几块

真正零基础可以直接从第一部分跟起,环境搭建那几讲不要跳,很多人后面报错都出在这一步。如果你已经会一点别的语言,比如 Python 或前端 JS,可以快速过掉基础语法部分,重点看面向对象、集合框架、泛型和多线程这几块——这些是 Java 区别于脚本语言、也是面试和实际工作里最常被问到的内容。有编程经验但没系统学过 Java 的人,建议把静态、继承与多态那一段认真看,Java 的这套机制和很多语言不一样,凭直觉写容易踩坑。

学完能独立做什么,资料怎么配合练

跟完并动手做完练习,你应该能独立写出带图形界面或多线程的小工具,比如一个能收发消息的聊天程序、一个本地运行的小游戏,也能看懂中等规模 Java 项目的代码结构,知道 Maven 是干什么的、依赖怎么管理。这个程度对应的是初级开发岗的入门线,不是学完就能拿高薪,但足以支撑你继续往下学框架。资料里的视频建议按顺序看,每看完一节立刻自己敲一遍,不要只跟着看;超市案例的代码可以自己改需求,比如加一个折扣功能、加一个商品分类,改的过程比看的过程有用得多。实战项目不要直接抄,先自己想思路,卡住了再对照,这样两个项目做完才算真的掌握。

课程目录

课程目录169 条
  • 课程名称:极客时间《零基础学Java》 课程简介 本课程专为 零基础学习者 设计,从开发环境搭建、基础语法讲起,逐步深入到面向对象、异常处理、集合框架、泛型、注解、Lambda表达式、I/O操作、网络编程、多线程并发、反射、Maven项目管理,最后通过 聊天室 和 游戏小程序 两个实战项目收尾。全程以“超市”案例贯穿,让抽象的概念变得具体可感。 课程内容详情(按学习顺序) 第一部分:课程概览与环境搭建(第01-09讲)
  • 01 零基础学Java课程介绍
  • 02 内容综述
  • 03 开发环境搭建(macOS)
  • 04 HelloWorld程序编译和运行(macOS)
  • 05 开发环境搭建(Windows) 06 HelloWorld程序编译和运行(Windows)
  • 07 详解HelloWorld程序
  • 08 IntelliJ IDEA安装和使用(macOS)
  • 09 IntelliJ IDEA安装和使用(Windows) 第二部分:Java基础语法(第10-28讲)
  • 10 从加减乘除到变量
  • 11 再探计算加减乘除的程序
  • 12 Java中的基本数据类型
  • 13 Java中的运算符
  • 14 Java中的位运算符
  • 15 基本数据类型的更多语法点
  • 16 字符集编码和字符串
  • 17 操作符和数据类型总结
  • 18 程序执行流程之if-else语句(上)
  • 19 程序执行流程之if-else语句(下)
  • 20 程序循环之for语句
  • 21 代码块和变量的作用域
  • 22 程序循环之while语句
  • 23 程序执行流程之switch语句
  • 24 循环和判断的总结(上)
  • 25 循环和判断的总结(下)
  • 26 用数组保存成绩
  • 27 认识变量和数组(上)
  • 28 认识变量和数组(下)
  • 29 多维数组
  • 30 用数组灵活处理程序
  • 31 类(class)
  • 32 初探类和对象
  • 33 认识引用类型(上)
  • 34 认识引用类型(下)
  • 35 类、对象和引用的关系
  • 36 认识数组类型
  • 37 引用的缺省值null
  • 38 像自定义类型一样使用类 第三部分:面向对象基础(第39-56讲)
  • 39 Java中的包和访问修饰符(上)
  • 40 Java中的包和访问修饰符(下)
  • 41 打造一个小超市
  • 42 IntelliJ调试程序初探
  • 43 方法:让Merchandise对象有行为
  • 44 返回值:让商品计算毛利润
  • 45 参数:让商品计算多件商品总价
  • 46 参数和返回值的传递方式
  • 47 分清参数、局部变量和实例的地盘
  • 48 隐藏的this自引用
  • 49 理解方法:一种特殊的代码块
  • 50 理解方法的调用:代码的一种特殊跳转
  • 51 给类和方法加Java注释
  • 52 成熟的类的对象要自己做事情
  • 53 方法的签名和重载
  • 54 重载的参数匹配规则
  • 55 构造方法:构造实例的方法
  • 56 构造方法的重载和互相调用 第四部分:静态、继承与多态(第57-82讲)
  • 57 静态变量
  • 58 静态方法
  • 59 静态方法的重载
  • 60 static代码块和static变量初始化
  • 61 方法和属性的可见性修饰符
  • 62 重新认识老朋友:Math和Scanner(上)
  • 63 重新认识老朋友:Math和Scanner(下)
  • 64 最熟悉的陌生人:String(上)
  • 65 最熟悉的陌生人:String(下)
  • 66 重新认识老朋友:main方法和System类
  • 67 String类的好兄弟
  • 68 继承:方便让商品增加新的类别
  • 69 子类对象里藏着一个父类对象
  • 70 覆盖:子类想要一点不一样
  • 71 super:和父类对象沟通的桥梁
  • 72 super:调用父类的构造方法
  • 73 父类和子类的引用赋值关系
  • 74 多态:到底调用的哪个方法?(上)
  • 75 多态:到底调用的哪个方法?(下)
  • 76 多态里更多的语法点(上)
  • 77 多态里更多的语法点(下)
  • 78 instanceof操作符
  • 79 继承专属的访问控制:protected
  • 80 final修饰符(上)
  • 81 final修饰符(下)
  • 82 继承里的静态方法 第五部分:常用类与高级特性(第83-101讲)
  • 83 插曲:for循环的另一种写法
  • 84 万类之祖:Object类
  • 85 hashCode和equals方法(上)
  • 86 hashCode和equals方法(下)
  • 87 toString方法
  • 88 初探Class类
  • 89 初探反射(上)
  • 90 初探反射(下)
  • 91 面向对象三要素:封装、继承和多态
  • 92 枚举:定义商品的门类
  • 93 接口:让商品类型更丰富(上)
  • 94 接口:让商品类型更丰富(下)
  • 95 抽象类:接口和类的混合体
  • 96 有方法代码的接口
  • 97 接口内代码的更多内容
  • 98 静态内部类
  • 99 成员内部类 1
  • 00 局部内部类 1
  • 01 匿名类 1
  • 02 特殊类的总结 第六部分:超市实战与异常处理(第103-113讲) 1
  • 03 让我们的超市运转起来:设计篇 1
  • 04 让我们的超市运转起来:代码篇 1
  • 05 初识异常:try-catch 1
  • 06 Java中异常的分类 1
  • 07 抛出异常的语法 1
  • 08 Java异常的传递 1
  • 09 自定义异常 1
  • 10 异常传递不是凌波微步 1
  • 11 try-catch-finally语句 1
  • 12 自动回收资源的try语句 1
  • 13 Java中的常见异常 第七部分:集合框架与泛型(第114-126讲) 1
  • 14 Collection类族简介 1
  • 15 Collection中的List(上) 1
  • 16 Collection中的List(下) 1
  • 17 Collection中的Set 1
  • 18 范型简析(上) 1
  • 19 范型简析(下) 1
  • 20 再探范型 1
  • 21 Iterator接口 1
  • 22 Map:key和value的映射 1
  • 23 定义自己的注解 1
  • 24 lambda的理解和使用(上) 1
  • 25 lambda的理解和使用(下) 1
  • 26 基本类型的自动装箱和拆箱 第八部分:I/O与网络编程(第127-135讲) 1
  • 27 Java中的File类 1
  • 28 Java I/O简介 1
  • 29 写文件内容小程序 1
  • 30 读文件内容小程序 1
  • 31 网络通讯名词简介 1
  • 32 简单的网络通讯小程序(上) 1
  • 33 简单的网络通讯小程序(下) 1
  • 34 简单的抓取网页内容的程序 1
  • 35 JDK和JRE 第九部分:多线程与并发(第136-152讲) 1
  • 36 初识线程 1
  • 37 创建自己的线程 1
  • 38 再探线程 1
  • 39 多线程:混乱开始了 1
  • 40 同步控制之synchronized 1
  • 41 同步控制之wait/notify 1
  • 42 多线程经典模型:生产者消费者 1
  • 43 线程同步之join 1
  • 44 死锁 1
  • 45 ThreadLocal线程专属的变量 1
  • 46 定时任务 1
  • 47 volatile关键字的作用 1
  • 48 concurrent包基本原理 1
  • 49 concurrent包中的Atomic类族 1
  • 50 concurrent包中的锁 1
  • 51 concurrent包中的数据结构 1
  • 52 concurrent包中的线程池 第十部分:Maven与项目管理(第155-162讲) 1
  • 55 什么是学习一门语言 1
  • 56 Java平台简介 1
  • 57 Maven概念简介 1
  • 58 Maven的安装和配置 1
  • 59 创建一个简单的Maven项目 1
  • 60 一个从pptx文件中抽取文字的小工具 1
  • 61 Maven常用命令和插件 1
  • 62 Intellij更多功能介绍 第十一部分:进阶扩展与实战(第163-170讲) 1
  • 63 值得学习的类库简介 1
  • 64 如何在StackOverflow上提问才不会被骂 1
  • 65 浅谈程序设计 1
  • 66 游戏小程序功能定义 1
  • 67 游戏小程序设计和模块划分 1
  • 68 游戏小程序代码分析 169 使用Swagger创建一个SpringBoot的Web服务 1
  • 70 结束语 第十二部分:聊天室实战(第153-154讲) 1
  • 53 聊天室开张喽(上) 1
  • 54 聊天室开张喽(下) 学习建议 零基础学员:按顺序从第01讲开始,不要跳跃。 有基础学员:可从第41讲“打造一个小超市”或第68讲“继承”开始。 重点章节:多态(74-77)、集合框架(114-122)、多线程(136-152)是面试高频区。