初学java从这里开始
很多新手学 Java,一上来就被”JDK、JVM、JRE、环境变量、面向对象、多态”这一堆词砸晕,不知道先抓哪头。这篇文章把 Java 入门必须过的 18 个知识点串成一条线:先让程序跑起来,再学语言基础,最后进到面向对象和高级特性。跟着这条线走,你会对 Java 有一个完整而不混乱的骨架。
说明:原文笔记里用到的 J2SE、J2EE、J2SDK 是早期(Java 5 之前)叫法,现在分别对应 Java SE(标准版)、Java EE / Jakarta EE(企业版)。正文首次出现时会标注现代叫法,方便你对照资料。
一、先把环境跑起来
1. Java 程序开发三步
Java 不是写完就能直接运行,而是要经过”写 → 编译 → 执行”三步:
-
JVM(Java 虚拟机):负责解释执行 .class字节码。它是 Java”一次编写,到处运行”的关键——你写的代码不直接跑在操作系统上,而是跑在 JVM 上,所以换台机器只要有对应 JVM 就能跑。
2. JDK 家族:别被名字绕晕
| 名称 | 含义 | 现代叫法 |
|---|---|---|
| JDK | Java 开发工具包(含编译器、解释器、类库) | 仍叫 JDK |
| J2SDK / JDK | Java 2 标准开发工具包 | Java SE Development Kit |
| J2SE | Java 2 标准环境 | Java SE(标准版,做桌面/基础应用) |
| J2EE | J2SDK + 网络开发类库 | Java EE / Jakarta EE(企业版,做 Web/服务器) |
记住一句话:想写 Java 程序,装 JDK 就够了;J2SE/J2EE 只是 JDK 按用途划分的版本。
3. JAVA_HOME 与核心工具
装好 JDK 后,关键目录是 JAVA_HOME(JDK 安装根目录):
-
编译器: %JAVA_HOME%\bin\javac.exe -
解释器: %JAVA_HOME%\bin\java.exe -
类库:各种 *.jar文件
4. 编译与执行命令
5. PATH 环境变量
-
作用:告诉系统去哪些目录找可执行文件(让 javac、java在任意目录都能敲)。 -
格式: set path=%path%;C:\Java\jdk\bin -
%path%代表已有的 path 内容;查看当前配置直接敲path。
6. CLASSPATH 环境变量
-
作用:告诉 JVM 去哪些目录找 .class文件(即字节码搜索路径)。 -
格式: set classpath=%classpath%;路径
现代开发基本用构建工具(Maven/Gradle)或 IDE 管理依赖,很少手动配 CLASSPATH,但理解它的含义能帮你排查”找不到类”的报错。
7. 开发工具
原文提到 Eclipse、JBuilder。现在主流是:
-
IntelliJ IDEA(社区版免费,功能强,新手首选) -
Eclipse(老牌免费) -
也可以用 VS Code + Java 插件
新手建议直接上 IntelliJ IDEA,自带编译运行,不用手敲命令也能学。
二、语言基础
8. 数据类型
原始(基本)数据类型——8 种:
| 类型 | 说明 | 示例 |
|---|---|---|
| byte | 1 字节整数 | byte b = 100; |
| short | 2 字节整数 | short s = 1000; |
| int | 4 字节整数(最常用) | int i = 100; |
| long | 8 字节整数 | long l = 100L; |
| float | 4 字节浮点 | float f = 1.2f; |
| double | 8 字节浮点(最常用) | double d = 1.2; |
| char | 单个字符 | char c = 'A'; |
| boolean | 布尔值 | boolean ok = true; |
引用数据类型:数组、类、接口(本质是”指向对象的引用”,不是值本身)。
9. 运算符
| 类别 | 例子 |
|---|---|
| 算术运算符 | + - * / % |
| 赋值运算符 | = += -= *= |
| 关系运算符 | > < == != >= <= |
| 逻辑运算符 | && || ! |
| 条件运算符(三元) | 条件 ? 真值 : 假值 |
10. 控制语句
三类:判断、循环、跳转。
三、数组
数组是”同一类型元素的集合”,三种写法:
遍历:
四、面向对象(OOP 核心)
11. 对象与类
-
类:对象的”模板/原型”,定义了一类事物长什么样、能干什么。 -
对象:类的实体,用 new创建。
12. 类的定义
用 class 关键字。类里包含:
-
属性(字段) -
方法(行为,含构造方法) -
构造方法:没有返回类型,名字和类名一样,用来初始化对象
13. 封装、抽象、继承、多态(四大特性)
封装:隐藏内部细节,只暴露安全的访问方式。靠修饰符实现:
| 修饰符 | 访问范围 |
|---|---|
| private | 仅本类 |
| 默认(不写) | 本包内 |
| protected | 本包 + 外包子类 |
| public | 任何地方 |
非权限修饰符也常用:
-
static:静态成员,可通过类直接调用(Student.count),静态方法内不能调非静态成员;静态块用于初始化静态成员。 -
final:final 变量值不可变(常量);final 方法不能被重写;final 类不能被继承。 -
abstract:抽象方法无方法体;含抽象方法的类必须是抽象类,抽象类不能new对象;即使没有抽象方法也可声明为抽象类。
接口(interface):比抽象类更”纯”的抽象。
-
用 interface定义,implements实现 -
方法默认 public,只有声明没有实现 -
一个类可实现多个接口 -
接口可用 extends继承其他接口
继承:用 extends。
-
子类继承父类所有方法和属性 -
不继承构造方法 -
创建子类对象时,父类构造方法先于子类调用
多态:同一操作作用不同对象表现不同,主要靠:
-
方法重载(overload):同名、参数列表不同(不看返回值) -
方法重写(override):子类重新定义父类方法体
五、异常处理
异常:程序运行时发生的错误。Java 用 try/catch 优雅处理,不让程序直接崩:
四种处理方式:
-
try/catch单 catch 或多重 catch -
try/catch/finally -
throw(手动抛)/throws(声明抛出) -
自定义异常类(继承 Exception)
六、包(package)
包用来组织类、避免命名冲突,类似文件夹。
编译带包的文件要指定输出目录:
常用包:java.lang(基础类,自动导入)、java.util(集合等工具)、java.io(输入输出)。
七、输入输出 I/O
Java 用”流”处理输入输出。java.io 包下读文本文件示例:
传统写法是用 FileInputStream / BufferedReader 等,理解”流”的概念即可,实战中按需查文档。
八、并发与多线程
单线程像一条流水线,多线程让程序”同时”做几件事(如一边下载一边刷新界面)。Java 创建线程两种主流方式:
多线程涉及线程安全、锁等进阶话题,入门阶段先理解”线程是什么、怎么启动”就够了。
九、下一步去哪
走完上面 18 站,你已经有了 Java 的完整骨架。后续建议路线:
| 阶段 | 内容 |
|---|---|
| 巩固基础 | 多做小练习:计算器、学生管理、文件批量改名 |
| 集合框架 | ArrayList、HashMap 等(在 java.util) |
| 主流框架 | 学 Maven 管理依赖,再进 Spring Boot 做 Web 应用 |
| 工程化 | Git 版本管理、单元测试、调试技巧 |
一句话总结:Java 不难在某一知识点,难在”先建立完整地图,再逐点深挖”。这篇文章就是那张地图——收藏它,每学一个新概念,回来对照它在整张图里的位置,就不会迷路。
转载请注明来源:初学java从这里开始





















![AOP 那点事儿[续]](https://ai.zhousir.top/wp-content/themes/Enews/timthumb.php?src=https%3A%2F%2Fai.zhousir.top%2Fwp-content%2Fuploads%2F2017%2F11%2F%E2%95%AC%D0%B2%E2%95%A8%E2%94%BC%E2%95%9C%E2%95%AA%E2%95%90%E2%95%9D_20200508200107.png&h=60&w=67&zc=1)







