目录
[一、Java 基础认知:是什么?能做什么?](#一、Java 基础认知:是什么?能做什么?)
[1.1 Java 的本质:不只是一门语言](#1.1 Java 的本质:不只是一门语言)
[1.2 Java 的两大核心版本](#1.2 Java 的两大核心版本)
[1.3 Java 的就业方向:覆盖多领域开发](#1.3 Java 的就业方向:覆盖多领域开发)
[1.4 Java 的核心特性:为何能经久不衰?](#1.4 Java 的核心特性:为何能经久不衰?)
[1.5 Java 的发展简史:从橡树到全球主流](#1.5 Java 的发展简史:从橡树到全球主流)
[二、Java 第一个程序:解锁 main 方法,跑通 HelloWorld](#二、Java 第一个程序:解锁 main 方法,跑通 HelloWorld)
[2.1 第一个 Java 程序:HelloWorld 代码实现](#2.1 第一个 Java 程序:HelloWorld 代码实现)
[2.2 程序核心规则:这些要求必须遵守](#2.2 程序核心规则:这些要求必须遵守)
[2.3 运行 Java 程序:编译 + 运行两步走](#2.3 运行 Java 程序:编译 + 运行两步走)
[步骤 1:编译源文件](#步骤 1:编译源文件)
[步骤 2:运行字节码文件](#步骤 2:运行字节码文件)
[2.4 高频问题:JDK、JRE、JVM 的关系](#2.4 高频问题:JDK、JRE、JVM 的关系)
[2.5 入门避坑:这些错误新手最易犯](#2.5 入门避坑:这些错误新手最易犯)
[三、Java 基础语法:注释、标识符、关键字](#三、Java 基础语法:注释、标识符、关键字)
[3.1 注释:代码的 "说明书",不参与编译运行](#3.1 注释:代码的 “说明书”,不参与编译运行)
[3.2 标识符:程序员自定义的 "名字"](#3.2 标识符:程序员自定义的 “名字”)
[3.3 关键字:Java 提前定义的 "保留字"](#3.3 关键字:Java 提前定义的 “保留字”)
[四、Java 数据类型与变量:程序的 "数据容器"](#四、Java 数据类型与变量:程序的 “数据容器”)
[4.1 字面常量:程序中固定不变的量](#4.1 字面常量:程序中固定不变的量)
[4.2 数据类型:Java 的 "数据分类标准"](#4.2 数据类型:Java 的 “数据分类标准”)
[4.3 变量:存储可变数据的 "容器"](#4.3 变量:存储可变数据的 “容器”)
[4.4 类型转换:不同数据类型的 "互通规则"](#4.4 类型转换:不同数据类型的 “互通规则”)
[4.5 类型提升:不同类型运算的 "统一规则"](#4.5 类型提升:不同类型运算的 “统一规则”)
[4.6 字符串类型:特殊的引用类型](#4.6 字符串类型:特殊的引用类型)
作为一门风靡全球的编程语言,Java 凭借跨平台、面向对象、安全性高等特性,在企业级开发、大数据、Android 开发等领域占据着不可替代的地位。对于编程新手来说,Java 是入门的优质选择 ------ 语法规范、生态完善,学会后能快速对接各类开发岗位。本文将从 Java 基础概念、程序入口到数据类型与变量,手把手带大家走进 Java 的世界。
一、Java 基础认知:是什么?能做什么?
1.1 Java 的本质:不只是一门语言
Java 不仅是拥有优美语法和清晰语义的程序设计语言,更是一套包含软件和规范的完整技术体系,能为软件开发和跨平台部署提供全方位支持,广泛应用于嵌入式系统、移动终端、企业服务器、大型机等场景。
1.2 Java 的两大核心版本
Java 的应用场景不同,对应不同的版本体系,核心分为 JavaSE 和 JavaEE,二者的定位和用途差异显著:
| 特性 | JavaSE(标准版) | JavaEE(企业版) |
|---|---|---|
| 核心定位 | Java 基础平台 | JavaSE 的扩展版本 |
| 主要用途 | 桌面应用、简单服务器程序 | 大型分布式企业应用、Web 应用 |
| 核心内容 | 核心语言特性、基础 API(I/O、网络、GUI) | 企业级 API(Servlet、JSP 等) |
| 运行环境 | 标准 JVM | 专用应用服务器 |
| 目标用户 | 通用 Java 开发者 | 企业级应用开发者 |
重要提示:我们熟知的 Spring、SpringBoot 等框架,本质上是 JavaEE 的补充和扩展,想要学习主流框架,必须先夯实 JavaSE 基础。
1.3 Java 的就业方向:覆盖多领域开发
掌握 Java 后,就业选择十分广泛,核心应用领域包括:
- 企业级系统:金融、电信、电商、ERP 等大型分布式系统,依托 Java 的安全机制和跨平台性;
- Web 开发:大型互联网平台的核心解决方案,凭借稳定的性能和良好的扩展性;
- Android 开发:Android SDK 基于 Java 开发,有 Java 基础可快速上手安卓应用开发;
- 大数据开发:Hadoop、Spark、Flink 等主流大数据框架均由 Java 开发,是大数据工程师的必备技能;
- 此外,Java 在游戏、人工智能、科学计算、嵌入式领域也有广泛应用。
1.4 Java 的核心特性:为何能经久不衰?
Java 的核心特性均来自 Java 白皮书,也是其能适应不同开发场景的关键,核心亮点包括:
- 简单性:基于 C++ 做 "减法",去掉指针、操作符重载等复杂特性,开发环境更友好;
- 面向对象:一切皆对象,通过对象交互完成业务逻辑,以接口替代 C++ 的多重继承,更易实现;
- 跨平台性 :核心口号Write once, Run anywhere,编译生成与平台无关的字节码,通过 JVM 解析运行;
- 健壮性 + 安全性:消除指针内存问题,编译器提前检测错误,能防范堆栈溢出、未授权文件读写等攻击;
- 多线程:原生支持并发编程,能更好地实现交互响应和实时行为,适配高并发场景;
- 高性能:通过 JIT 即时编译器、热点代码探测等优化,运行效率媲美 C/C++。
1.5 Java 的发展简史:从橡树到全球主流
Java 诞生于 1991 年 Sun 公司的绿色计划 ,最初命名为 Oak(橡树),目标是开发消费性电子产品的程序架构,后因市场需求不足搁置;1995 年互联网兴起,Sun 公司改造 Oak 并以 Java 正式发布,凭借跨平台特性迅速走红;如今 Java 由 Oracle 维护,最新版本可通过Oracle 官方网站查询。
二、Java 第一个程序:解锁 main 方法,跑通 HelloWorld
想要入门编程,第一步必然是写一个简单的程序并成功运行,Java 的入门程序就是经典的 HelloWorld,通过它我们能掌握 Java 程序的基本结构和运行流程。
2.1 第一个 Java 程序:HelloWorld 代码实现
java
/**
* 文档注释:入门第一个Java程序
* @author 初学者
* @version v1.0.0
*/
public class HelloWorld {
/*
* 多行注释:main方法是Java程序的入口方法,格式固定
*/
public static void main(String[] args) {
// 单行注释:向控制台输出HelloWorld
System.out.println("Hello, World!");
}
}
这是 Java 最基础的程序,看似简单,却包含了 Java 程序的核心结构,记住一个关键原则:类存在于源文件中,方法存在于类中,语句存在于方法中。
2.2 程序核心规则:这些要求必须遵守
- 源文件后缀必须为
.java; - 一个源文件中只能有一个 public 修饰的类,且源文件名必须与 public 类名完全一致(包括大小写);
- main 方法是 Java 程序的唯一入口 ,格式固定:
public static void main(String[] args),缺一不可; - 方法中的语句必须以分号结尾,且必须是英文分号,中文分号会编译报错。
2.3 运行 Java 程序:编译 + 运行两步走
Java 是半编译、半解释型语言,运行程序需经过 "编译生成字节码" 和 "JVM 解释运行" 两个步骤,核心依赖 JDK(Java 开发工具包),需提前安装并配置环境。
步骤 1:编译源文件
使用javac命令将.java源文件编译为 JVM 可识别的.class字节码文件,命令如下:
javac HelloWorld.java
执行成功后,当前目录会生成HelloWorld.class文件。
步骤 2:运行字节码文件
使用java命令启动 JVM,运行编译后的.class文件,注意不加.class 后缀,命令如下:
java HelloWorld
执行成功后,控制台会输出Hello, World!,代表第一个 Java 程序运行成功。
2.4 高频问题:JDK、JRE、JVM 的关系
这是 Java 入门的经典面试题,三者是包含关系,核心作用各有不同:
- JVM(Java 虚拟机):Java 的核心跨平台载体,负责将字节码转换为平台可识别的指令并运行;
- JRE(Java 运行时环境):运行 Java 程序的最小环境,包含 JVM 和 Java 基础类库;
- JDK(Java 开发工具包):面向开发者的完整工具包,包含 JRE,还提供编译器(javac)、调试工具(jconsole、jstack)等。
简单总结:开发 Java 程序需要安装 JDK,仅运行 Java 程序可安装 JRE;JVM 是跨平台的核心,JDK 是开发的基础。
2.5 入门避坑:这些错误新手最易犯
- 源文件名后缀写成
.jav或其他,忘记.java; - 源文件名与 public 类名不一致,比如文件名为
helloworld.java,类名为HelloWorld; - main 方法拼写错误,比如写成
mian; - 语句结尾漏写分号,或使用中文分号;
- JDK 环境未配置,操作系统无法识别
javac/java命令; - 类名、方法名命名不规范,导致代码可读性差。
三、Java 基础语法:注释、标识符、关键字
写出可运行的程序只是基础,写出易读、易维护、符合规范的代码才是关键,这就需要掌握注释、标识符、关键字的基本规则。
3.1 注释:代码的 "说明书",不参与编译运行
注释是对代码的解释和说明,目的是让自己和他人能快速理解代码含义,Java 中的注释不参与编译,不会生成到.class文件中,核心分为三种:
| 注释类型 | 语法格式 | 适用场景 | 特点 |
|---|---|---|---|
| 单行注释 | // 注释内容 |
单行代码说明、临时注释 | 最常用,简洁高效 |
| 多行注释 | /* 注释内容 */ |
多行代码块说明 | 不可嵌套使用 |
| 文档注释 | /** 注释内容 */ |
类、方法、接口的详细说明 | 可被 javadoc 工具解析,生成网页版 API 文档 |
文档注释实用技巧
使用javadoc命令可将文档注释生成标准化 API 文档,命令示例:
javadoc -d myDoc -author -version -encoding UTF-8 -charset UTF-8 HelloWorld.java
-d myDoc:指定生成的文档目录为 myDoc;-author:显示作者信息;-version:显示版本信息;-encoding UTF-8 -charset UTF-8:解决中文乱码问题。
注释编写规范
- 内容准确:注释必须与代码一致,代码修改后及时更新注释;
- 篇幅合理:简洁明了,不啰嗦,也不敷衍;
- 语言规范:国内开发建议使用中文,外企可使用英文;
- 内容积极:避免在注释中写入负能量、辱骂性内容。
3.2 标识符:程序员自定义的 "名字"
在 Java 中,程序员为类、方法、变量 取的名字统称为标识符,比如 HelloWorld(类名)、main(方法名)、a(变量名),标识符的规则分为硬性规则 和软性规范,硬性规则必须遵守,软性规范建议遵循,保证代码可读性。
硬性规则(必须遵守,否则编译报错)
- 可包含:字母、数字、下划线(_)、$ 符号;
- 不可以数字开头;
- 不可是 Java 关键字;
- 严格区分大小写(比如
Person和person是两个不同的标识符)。
软性规范(行业通用,建议遵循)
- 类名:大驼峰命名法,每个单词首字母大写,比如
HelloWorld、UserInfo; - 方法名 / 变量名:小驼峰命名法,首字母小写,后续单词首字母大写,比如
getUserName、studentAge; - 常量名:全大写,单词之间用下划线分隔,比如
MAX_NUM、ARRAY_SIZE; - 命名见名知意:避免使用
a、b、c等无意义的名字,比如用studentAge代替sa。
3.3 关键字:Java 提前定义的 "保留字"
关键字是 Java 语言提前定义、具有特殊含义 的标识符,比如public、class、static、int等,在编译器中会显示特殊颜色,程序员不能使用关键字作为标识符。
Java 的关键字有很多,入门阶段先认识常用的即可,分类举例:
- 访问权限修饰符:
private、protected、public; - 类 / 方法修饰符:
class、static、final、abstract; - 数据类型:
int、long、double、char、boolean; - 流程控制:
if、else、for、while(后续会学); - 其他核心:
new、this、try、catch、package、import。
四、Java 数据类型与变量:程序的 "数据容器"
程序的本质是处理数据,而数据类型和变量是 Java 处理数据的基础 ------ 数据类型规定了数据的存储格式和范围,变量则是存储数据的 "容器"。
4.1 字面常量:程序中固定不变的量
常量是程序运行期间值始终不变 的量,比如数字 100、小数 3.14、字符串 "Hello",这类直接写在程序中的常量称为字面常量,Java 的字面常量分为 6 类:
- 字符串常量 :用双引号括起来,比如
"Java"、"123"、"你好"; - 整型常量 :无小数点的数字,比如
100、0、-50; - 浮点型常量 :带小数点的数字,比如
3.14、0.5、-2.0; - 字符常量 :用单引号括起来的单个字符,比如
'A'、'1'、'中'; - 布尔常量 :只有两个值,
true(真)和false(假); - 空常量 :
null,表示空值(后续讲解)。
示例代码:
java
public class Demo {
public static void main(String[] args) {
System.out.println("字符串常量"); // 字符串常量
System.out.println(100); // 整型常量
System.out.println(3.14); // 浮点型常量
System.out.println('A'); // 字符常量
System.out.println(true); // 布尔常量
}
}
4.2 数据类型:Java 的 "数据分类标准"
Java 是强类型编程语言 ,每个变量都必须指定数据类型,数据类型分为两大类:基本数据类型 和引用数据类型,入门阶段重点掌握基本数据类型。
基本数据类型是 Java 内置的基础类型,分为四类八种,内存占用和取值范围固定,与操作系统无关,核心信息如下:
| 数据类别 | 数据类型 | 关键字 | 内存占用 | 取值范围 | 包装类型 |
|---|---|---|---|---|---|
| 整型 | 字节型 | byte | 1 字节 | -128 ~ 127 | Byte |
| 整型 | 短整型 | short | 2 字节 | -32768 ~ 32767 | Short |
| 整型 | 整型 | int | 4 字节 | -2^31 ~ 2^31-1 | Integer |
| 整型 | 长整型 | long | 8 字节 | -2^63 ~ 2^63-1 | Long |
| 浮点型 | 单精度浮点型 | float | 4 字节 | 约 ±3.4×10^38 | Float |
| 浮点型 | 双精度浮点型 | double | 8 字节 | 约 ±1.8×10^308 | Double |
| 字符型 | 字符型 | char | 2 字节 | 0 ~ 65535 | Character |
| 布尔型 | 布尔型 | boolean | 未明确规定 | true / false | Boolean |
基本数据类型核心注意点
- 整型默认是
int,浮点型默认是double; - 所有整型和浮点型都是带符号的,可表示正数和负数;
char类型采用 Unicode 编码,可存储中文,占 2 个字节;boolean类型不能与 int 相互转换,不存在 "1 表示 true,0 表示 false" 的用法;- 包装类型是基本数据类型的 "对象形式",后续集合框架中会大量使用。
4.3 变量:存储可变数据的 "容器"
变量是程序运行期间值可以改变的量,是存储数据的基本单元,定义变量的核心是 "指定数据类型 + 自定义变量名 + 赋值",语法格式固定。
变量的基本语法
java
// 完整格式:数据类型 变量名 = 初始值;
int age = 18;
double score = 95.5;
char gender = '男';
boolean isStudent = true;
// 一行定义多个同类型变量(不推荐,降低可读性)
int a = 1, b = 2, c = 3;
// 先定义后赋值(使用前必须赋值,否则编译报错)
int num;
num = 100;
变量的核心使用规则
- 变量必须先定义、后赋值、再使用;
- 变量的值可以修改,赋值使用
=号(=表示 "赋值",而非 "等于"); - 变量的取值不能超过其数据类型的范围,否则会编译报错(比如 int 型变量不能赋值 10000000000);
- 变量有作用域(后续讲解),在指定范围内有效。
各类型变量的使用细节
- 长整型变量 :赋值时建议在数字后加
L(大写),区分 int,比如long num = 100L; - 浮点型变量 :单精度 float 赋值时需加
F,比如float f = 3.14F;工程开发中优先使用 double,精度更高; - 字符型变量 :单引号只能包单个字符,比如
char c = '中'合法,char c = '中国'非法; - 布尔型变量:只有 true 和 false 两个值,不能赋值其他数字或字符。
4.4 类型转换:不同数据类型的 "互通规则"
Java 中不同数据类型的变量相互赋值或运算时,需要进行类型转换 ,分为自动类型转换(隐式)和强制类型转换(显式),核心原则是 "数据范围的大小转换"。
自动类型转换(隐式)
特点 :数据范围小→大 ,编译器自动完成,无需手动处理,是安全的转换。示例:
java
int a = 10;
long b = a; // int(4字节)自动转换为long(8字节)
float f = 3.14F;
double d = f; // float(4字节)自动转换为double(8字节)
强制类型转换(显式)
特点 :数据范围大→小 ,编译器无法自动完成,需要手动加(数据类型)强制转换,可能导致精度丢失或数据溢出 。示例:
java
long a = 100L;
int b = (int)a; // long→int,强制转换
double d = 3.14;
float f = (float)d; // double→float,强制转换
byte c = (byte)257; // 257超过byte范围,强制转换后会溢出
类型转换的注意事项
- 自动转换是安全的,强制转换可能丢失精度或溢出,需谨慎使用;
- 字面值常量赋值时,Java 会自动检查范围,比如
byte b = 100(100 在 byte 范围内,自动转换); - 不相干的类型不能转换,比如
int不能转换为boolean,char不能转换为double(无意义)。
4.5 类型提升:不同类型运算的 "统一规则"
不同数据类型的变量相互运算时,范围小的类型会自动提升为范围大的类型,再进行运算,核心目的是保证运算精度,这是新手容易踩坑的点。
类型提升的两种核心场景
-
int 与 long 运算 :int 自动提升为 long,结果为 long;
javaint a = 10; long b = 20; long c = a + b; // 正确:int→long,结果为long // int d = a + b; // 错误:long不能赋值给int -
byte/short 与任何类型运算 :byte/short 先提升为 int,再进行运算;
javabyte a = 10; byte b = 20; // byte c = a + b; // 错误:byte→int,结果为int byte c = (byte)(a + b); // 正确:强制转换为byte
核心原因:计算机 CPU 通常以 4 个字节为单位读写数据,byte/short(小于 4 字节)提升为 int,能提升运算效率。
4.6 字符串类型:特殊的引用类型
字符串是编程中最常用的类型之一,在 Java 中字符串属于引用数据类型 ,用String类定义,双引号括起来,入门阶段掌握基本使用和与整型的转换即可。
字符串的基本使用
java
public class StringDemo {
public static void main(String[] args) {
String s1 = "Hello";
String s2 = "Java";
System.out.println(s1); // 输出Hello
System.out.println(s1 + s2); // 字符串拼接,输出HelloJava
System.out.println(s1 + 100); // 与数字拼接,输出Hello100
}
}
关键特性 :+号对字符串来说是拼接操作,不是加法运算,任何类型与字符串拼接,结果都是字符串。
字符串与整型的相互转换
开发中经常需要将字符串和数字相互转换,核心使用以下方法:
-
int → String :两种常用方法,简单高效
javascriptint num = 100; String str1 = num + ""; // 方法1:与空字符串拼接(最常用) String str2 = String.valueOf(num); // 方法2:使用String类的valueOf方法 -
String → int :使用 Integer 类的 parseInt 方法
javaString str = "100"; int num = Integer.parseInt(str);
注意 :字符串转 int 时,字符串必须是纯数字,否则会抛出异常(比如"100a"无法转换为 int)。
五、入门总结与学习建议
Java 入门的核心是夯实基础,本文从 Java 的基础概念、第一个程序,到语法规范、数据类型与变量,覆盖了 Java 入门的所有核心知识点,想要真正掌握,关键在于多敲代码、多试错:
- 跑通所有示例:把本文中的 HelloWorld、变量定义、类型转换等代码全部手动敲一遍,确保能成功运行,理解每一行代码的含义;
- 刻意避坑:针对新手易犯的错误(比如分号、类名、数据范围),刻意练习,形成规范的编码习惯;
- 注重规范:从入门开始就遵循命名规范、注释规范,写出的代码不仅要能运行,还要易读、易维护;
- 循序渐进:Java 的学习是一个循序渐进的过程,掌握基础后,后续会学习流程控制、面向对象、集合框架等内容,一步一个脚印。
Java 作为一门经典的编程语言,基础越扎实,后续的学习就越轻松。希望本文能帮助零基础的小伙伴快速入门 Java,迈出编程之路的第一步!