一、Java 初相识
(一)Java 是什么
Java 是一门广泛应用的高级编程语言,由 Sun 公司(后被 Oracle 收购)于 1995 年推出。它就像一个万能工具箱,可用于开发各类软件。从常见的桌面应用程序,如办公软件、图像编辑工具;到大型的企业级应用,如电子商务平台、金融交易系统;再到移动领域的安卓应用开发,Java 都发挥着重要作用。其核心优势在于 “一次编写,到处运行”,借助 Java 虚拟机(JVM),Java 程序能够在不同操作系统和硬件平台上无缝运行,大大提高了开发效率和程序的可移植性。
(二)为什么学 Java
Java 在编程领域地位举足轻重,拥有庞大且活跃的开发者社区。众多知名企业,如谷歌、亚马逊、阿里巴巴等,都广泛使用 Java 进行项目开发。学习 Java 能为你打开进入这些顶尖企业的大门,获得丰厚的职业回报。而且 Java 的生态系统极为丰富,有大量开源框架和类库可供使用,如 Spring、Hibernate 等,能显著提升开发速度和质量。此外,Java 的语法规范、结构清晰,非常适合初学者入门,有助于培养良好的编程习惯和思维方式。
二、开发环境搭建
(一)安装 JDK
JDK(Java Development Kit)是 Java 开发的核心工具包,包含了 Java 编译器(javac)、Java 运行时环境(JRE)以及其他开发工具。以下是安装步骤:
- 下载 JDK:访问 Oracle 官方网站(Java Downloads | Oracle),根据你的操作系统(Windows、Linux 或 macOS)选择合适的 JDK 版本进行下载。目前,Java 17 是长期支持(LTS)版本,稳定性高,推荐使用。
- 安装 JDK:下载完成后,双击安装包,按照安装向导的提示进行操作。在安装过程中,注意选择合适的安装路径,建议避免使用含有中文或空格的路径,例如
C:\Program Files\Java\jdk-17
。
(二)安装 IDE
IDE(Integrated Development Environment)即集成开发环境,能为开发者提供代码编辑、编译、调试等一站式服务,提高开发效率。这里推荐使用 IntelliJ IDEA,它是一款功能强大、智能高效的 Java 开发工具。安装步骤如下:
- 下载 IntelliJ IDEA:访问 JetBrains 官网(Download IntelliJ IDEA),选择免费的社区版进行下载。
- 安装 IntelliJ IDEA:下载完成后,双击安装包,按照向导提示完成安装。安装过程中可以根据自己的需求选择安装选项,如创建桌面快捷方式等。
(三)配置环境变量
配置环境变量是为了让系统能够找到 JDK 的相关工具。以 Windows 系统为例,配置步骤如下:
- 右键点击 “此电脑”,选择 “属性”。
- 在左侧导航栏中点击 “高级系统设置”。
- 在弹出的 “系统属性” 窗口中,点击 “环境变量” 按钮。
- 在 “系统变量” 区域,找到 “Path” 变量,点击 “编辑”。
- 在弹出的 “编辑环境变量” 窗口中,点击 “新建”,添加 JDK 安装路径下的
bin
目录,例如C:\Program Files\Java\jdk-17\bin
。 - 依次点击 “确定” 保存设置。
配置完成后,打开命令提示符(按下 Win + R
键,输入 cmd
并回车),输入 java -version
和 javac -version
,如果能看到相应的版本信息,说明环境变量配置成功。
三、第一个 Java 程序
(一)创建项目
打开 IntelliJ IDEA,选择 “Create New Project”。在弹出的窗口中,选择 “Java”,点击 “Next”。在 “Project name” 中输入项目名称,如 “HelloWorld”,选择项目存储位置,然后点击 “Finish”。IntelliJ IDEA 会自动创建项目结构。
(二)编写代码
在项目的 src
目录下,右键点击,选择 “New” -> “Java Class”。在弹出的窗口中,输入类名 “HelloWorld”,点击 “OK”。在自动生成的 HelloWorld.java
文件中,输入以下代码:
java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
(三)代码解释
public class HelloWorld
:public
是访问修饰符,表示该类是公共的,可以被其他类访问;class
是定义类的关键字;HelloWorld
是类名,遵循大驼峰命名法,即每个单词的首字母大写。public static void main(String[] args)
:这是 Java 程序的入口方法,程序从这里开始执行。public
表示该方法是公共的;static
表示该方法是静态的,不需要创建类的实例就可以调用;void
表示该方法没有返回值;main
是方法名,是固定的;String[] args
是一个字符串数组,用于接收命令行参数。System.out.println("Hello, World!");
:System
是 Java 中的一个类,out
是System
类的一个静态成员变量,代表标准输出流;println
是PrintStream
类的一个方法,用于打印一行文本并换行。
(四)运行程序
在代码编辑器中,右键点击空白处,选择 “Run 'HelloWorld.main ()'”,或者点击编辑器右上角的绿色三角形按钮。如果一切正常,你会在控制台看到输出的 “Hello, World!”,这标志着你的第一个 Java 程序成功运行。
四、Java 基础语法
(一)变量和数据类型
1. 变量
变量是存储数据的容器,在使用前需要先声明其类型。声明变量的语法格式为:数据类型 变量名;
,例如:
java
int num; // 声明一个整数类型的变量
声明后可以使用赋值语句给变量赋值:
java
num = 10; // 给变量 num 赋值为 10
也可以在声明变量的同时进行赋值:
java
int num = 10; // 声明并初始化变量 num
2. 数据类型
Java 有两种数据类型:基本数据类型和引用数据类型。
基本数据类型:
数据类型 | 位数 | 范围 | 默认值 | 示例 |
---|---|---|---|---|
byte | 8 位 | -128 到 127 | 0 | byte b = 10; |
short | 16 位 | -32768 到 32767 | 0 | short s = 100; |
int | 32 位 | -2147483648 到 2147483647 | 0 | int i = 1000; |
long | 64 位 | 很大 | 0L | long l = 1234567890123L; |
float | 32 位 | 单精度浮点数 | 0.0f | float f = 3.14F; |
double | 64 位 | 双精度浮点数 | 0.0d | double d = 3.14; |
char | 16 位 | 单个 Unicode 字符 | '\u0000' | char c = 'A'; |
boolean | 1 位 | true 或 false | false | boolean flag = true; |
引用数据类型:
引用数据类型包括类、接口、数组等。最常见的引用数据类型是字符串(String
),例如:
java
String str = "Hello"; // 声明并初始化一个字符串变量
(二)运算符
1. 算术运算符
算术运算符用于进行基本的数学运算,常见的算术运算符有:+
(加法)、-
(减法)、*
(乘法)、/
(除法)、%
(取余)。示例代码如下:
java
public class ArithmeticOperatorExample {
public static void main(String[] args) {
int a = 10;
int b = 3;
int sum = a + b; // 加法
int diff = a - b; // 减法
int prod = a * b; // 乘法
int quot = a / b; // 除法,结果为 3
int rem = a % b; // 取余,结果为 1
System.out.println("加法结果: " + sum);
System.out.println("减法结果: " + diff);
System.out.println("乘法结果: " + prod);
System.out.println("除法结果: " + quot);
System.out.println("取余结果: " + rem);
}
}
2. 关系运算符
关系运算符用于比较两个值的大小关系,返回一个布尔值(true
或 false
)。常见的关系运算符有:==
(等于)、!=
(不等于)、>
(大于)、<
(小于)、>=
(大于等于)、<=
(小于等于)。示例代码如下:
java
public class RelationalOperatorExample {
public static void main(String[] args) {
int x = 5;
int y = 10;
boolean isEqual = x == y; // false
boolean isNotEqual = x != y; // true
boolean isGreater = x > y; // false
boolean isLess = x < y; // true
boolean isGreaterOrEqual = x >= y; // false
boolean isLessOrEqual = x <= y; // true
System.out.println("x 是否等于 y: " + isEqual);
System.out.println("x 是否不等于 y: " + isNotEqual);
System.out.println("x 是否大于 y: " + isGreater);
System.out.println("x 是否小于 y: " + isLess);
System.out.println("x 是否大于等于 y: " + isGreaterOrEqual);
System.out.println("x 是否小于等于 y: " + isLessOrEqual);
}
}
3. 逻辑运算符
逻辑运算符用于组合多个布尔表达式,返回一个布尔值。常见的逻辑运算符有:&&
(逻辑与)、||
(逻辑或)、!
(逻辑非)。示例代码如下:
java
public class LogicalOperatorExample {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
boolean andResult = a && b; // 逻辑与,结果为 false
boolean orResult = a || b; // 逻辑或,结果为 true
boolean notResult = !a; // 逻辑非,结果为 false
System.out.println("a 与 b 的逻辑与结果: " + andResult);
System.out.println("a 与 b 的逻辑或结果: " + orResult);
System.out.println("a 的逻辑非结果: " + notResult);
}
}
4. 赋值运算符
赋值运算符用于给变量赋值,最基本的赋值运算符是 =
。此外,还有复合赋值运算符,如 +=
、-=
、*=
、/=
、%=
等。示例代码如下:
java
public class AssignmentOperatorExample {
public static void main(String[] args) {
int num = 10;
num += 5; // 相当于 num = num + 5;
num -= 3; // 相当于 num = num - 3;
num *= 2; // 相当于 num = num * 2;
num /= 4; // 相当于 num = num / 4;
num %= 3; // 相当于 num = num % 3;
System.out.println("最终结果: " + num);
}
}
(三)控制结构
1. 顺序结构
顺序结构是最简单的控制结构,程序按照代码的先后顺序依次执行。示例代码如下:
java
public class SequenceStructureExample {
public static void main(String[] args) {
System.out.println("第一步");
System.out.println("第二步");
System.out.println("第三步");
}
}
2. 选择结构
选择结构根据条件的真假来决定执行哪一段代码。Java 提供了 if-else
语句和 switch
语句。
if-else
语句:
java
public class IfElseExample {
public static void main(String[] args) {
int score = 80;
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
}
}
switch
语句:
java
public class SwitchExample {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("无效的输入");
break;
}
}
}
3. 循环结构
循环结构用于重复执行一段代码。Java 提供了 for
循环、while
循环和 do-while
循环。
for
循环:
java
public class ForLoopExample {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
}
}
while
循环:
java
public class WhileLoopExample {
public static void main(String[] args) {
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
}
}
do-while
循环:
java
public class DoWhileLoopExample {
public static void main(String[] args) {
int i = 0;
do {
System.out.println(i);
i++;
} while (i < 5);
}
}
五、数组
(一)数组的定义和初始化
数组是一种用于存储多个相同类型数据的容器。在 Java 中,数组的长度是固定的,一旦创建就不能改变。数组的定义和初始化有以下几种方式:
1. 静态初始化
java
int[] numbers = {1, 2, 3, 4, 5}; // 静态初始化一个整数数组
2. 动态初始化
java
int[] numbers = new int[5]; // 动态初始化一个长度为 5 的整数数组
for (int i = 0; i < numbers.length; i++) {
numbers[i] = i + 1; // 给数组元素赋值
}
(二)数组的访问和遍历
数组的下标从 0 开始,可以通过下标来访问数组中的元素。示例代码如下:
java
public class ArrayAccessExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
System.out.println("第一个元素: " + numbers[0]); // 访问第一个元素
System.out.println("最后一个元素: " + numbers[numbers.length - 1]); // 访问最后一个元素
}
}
可以使用 for
循环或 foreach
循环来遍历数组。示例代码如下:
java
public class ArrayTraversalExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
// 使用 for 循环遍历
System.out.println("使用 for 循环遍历:");
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
// 使用 foreach 循环遍历
System.out.println("使用 foreach 循环遍历:");
for (int num : numbers) {
System.out.println(num);
}
}
}
(三)多维数组
多维数组是数组的数组,常见的是二维数组。二维数组可以看作是一个表格,有行和列。示例代码如下:
java
public class TwoDimensionalArrayExample {
public static void main(String[] args) {
// 静态初始化一个二维数组
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 访问二维数组元素
System.out.println("第一行第二列的元素: " + matrix[0][1]);
// 遍历二维数组
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}
六、总结
通过以上内容的学习,你已经了解了 Java 编程的基础知识,包括开发环境搭建、第一个 Java 程序、基础语法和数组等。这些知识是 Java 编程的基石,希望你能认真掌握。接下来,你可以继续学习 Java 的面向对象编程、异常处理、输入输出等更高级的内容,不断提升自己的编程能力。加油,你一定可以成为一名优秀的 Java 程序员!
七、以下是一些学习 Java 的经验和技巧:
基础入门阶段
- 打好理论基础:Java 的语法、面向对象编程概念(如类、对象、继承、多态)等是根基。选择经典教材如《Effective Java》《Java 核心技术》系统学习,配合线上优质课程,像慕课网的 Java 入门课程,透彻理解每个知识点。
- 多敲代码:学习编程不能只看理论,要动手实践。按照教程示例代码一行行敲,观察运行结果,尝试修改代码,观察变化,加深理解。比如学习循环结构时,自己编写不同类型的循环代码,实现简单的功能,如计算 1 到 100 的和。
实践提高阶段
- 做小项目:积累一定基础后,着手做小项目。如命令行版的图书管理系统,能锻炼运用知识解决实际问题的能力。通过项目理解数据的存储、操作,以及不同模块间的交互。
- 参与开源项目:参与开源项目能接触到优秀代码和先进编程思想。可以从给一些简单项目提交代码开始,学习他人的代码风格、设计模式和架构思路。
优化巩固阶段
- 阅读优秀代码:阅读优秀的 Java 开源框架(如 Spring、MyBatis)源码,学习其设计模式和编程技巧。开始可能较难理解,但随着知识储备增加,收获会很大。
- 持续学习与交流:Java 技术不断发展,关注行业动态和新技术,如 Java 新特性。加入技术交流群、论坛,与其他开发者交流经验、解决问题。
调试和测试阶段
- 学会调试:掌握调试技巧能快速定位和解决代码中的问题。利用 IDE(如 IntelliJ IDEA)的调试功能,设置断点、观察变量值变化。
- 编写测试用例:学习使用 JUnit 等测试框架编写单元测试,保证代码质量,提高代码的可维护性和稳定性。