杰瑞科技汇

Java程序设计实用教程适合哪些读者学习?

Java 程序设计实用教程

前言:为什么选择 Java?

Java 是一门历史悠久且充满活力的编程语言,它的核心优势在于:

Java程序设计实用教程适合哪些读者学习?-图1
(图片来源网络,侵删)
  • “一次编写,到处运行”(Write Once, Run Anywhere):得益于 Java 虚拟机,Java 代码可以在任何安装了 JVM 的操作系统上运行,无需修改。
  • 面向对象:Java 是一门纯粹的面向对象语言,有助于构建模块化、可重用和易于维护的大型应用程序。
  • 健壮性与安全性:拥有自动垃圾回收机制、严格的类型检查和异常处理机制,能有效减少程序错误。
  • 丰富的生态系统:拥有海量的开源库(如 Spring, MyBatis)、强大的开发工具(如 IntelliJ IDEA, Eclipse)和活跃的社区支持。
  • 广泛应用:从企业级后端服务、大数据处理(Hadoop, Spark),到 Android App 开发,Java 都占据着核心地位。

第一部分:Java 基础入门

第一章:环境搭建与第一个程序

1 安装 JDK (Java Development Kit)

JDK 是 Java 开发的核心包,它包含了编译器、JVM 和核心类库。

  • 下载:访问 Oracle 官网OpenJDK 官网(推荐,更开放)下载适合你操作系统的 JDK 版本。
  • 安装:按照提示进行安装。关键:记住安装路径,C:\Program Files\Java\jdk-17
  • 配置环境变量
    • JAVA_HOME:新建系统变量,变量值为你的 JDK 安装路径。
    • Path:在系统变量的 Path 中,新建两项,分别指向 %JAVA_HOME%\bin%JAVA_HOME%\jre\bin,这使得你可以在任何目录下使用 javajavac 命令。

2 验证安装

打开命令行工具(Windows 的 CMD 或 PowerShell,macOS/Linux 的 Terminal),输入以下命令:

Java程序设计实用教程适合哪些读者学习?-图2
(图片来源网络,侵删)
java -version
javac -version

如果都显示版本号(如 java version "17.0.2"),则说明安装成功。

3 编写并运行第一个 Java 程序:HelloWorld

步骤 1:编写源代码

创建一个新文件,命名为 HelloWorld.java,并输入以下代码:

Java程序设计实用教程适合哪些读者学习?-图3
(图片来源网络,侵删)
// HelloWorld.java
// 1. 定义一个公开的类,类名必须与文件名一致
public class HelloWorld {
    // 2. 程序的入口点,这是所有 Java 应用程序执行的起点
    public static void main(String[] args) {
        // 3. 打印 "Hello, World!" 到控制台
        System.out.println("Hello, World!");
    }
}

代码解析

  • public class HelloWorld:定义一个公共类。
  • public static void main(String[] args):主方法,JVM 会从这里开始执行代码。
  • System.out.println():向标准输出(通常是控制台)打印一行文本。

步骤 2:编译

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

javac HelloWorld.java

如果成功,会生成一个 HelloWorld.class 文件,这是 Java 虚拟机能够理解的字节码文件。

步骤 3:运行

使用 java 命令来运行编译后的字节码文件:

java HelloWorld

注意:这里不需要加 .class 后缀。java 命令会启动 JVM,加载 HelloWorld.class 并执行其 main 方法。

输出结果

Hello, World!

第二部分:Java 核心语法

第二章:变量与数据类型

Java 是强类型语言,每个变量都必须声明其类型。

1 基本数据类型

类型 大小 (字节) 描述 示例
byte 1 8位有符号整数 byte b = 100;
short 2 16位有符号整数 short s = 20000;
int 4 32位有符号整数 (最常用) int age = 30;
long 8 64位有符号整数 long l = 9000000000L; (结尾加L)
float 4 单精度浮点数 float f = 3.14f; (结尾加f)
double 8 双精度浮点数 (最常用) double d = 3.14159;
char 2 单个 Unicode 字符 char c = 'A';
boolean 1 布尔值,truefalse boolean isJavaFun = true;

2 引用数据类型

  • :如 String, Scanner
  • 接口:如 Runnable
  • 数组:如 int[], String[]

3 变量声明与赋值

// 声明
int number;
// 声明并赋值
String name = "张三";
// 常量 (使用 final 关键字,一旦赋值不能改变)
final double PI = 3.14159;

第三章:运算符

  • 算术运算符:, , , , (取余), ,
  • 关系运算符:, , >, <, >=, <= (返回 boolean 值)
  • 逻辑运算符&& (与), (或), (非)
  • 赋值运算符:, , , ,
  • 三元运算符(条件) ? 值1 : 值2

示例

int a = 10, b = 20;
int max = (a > b) ? a : b; // max 的值为 20

第四章:流程控制

1 条件语句

  • if-else
    int score = 85;
    if (score >= 90) {
        System.out.println("优秀");
    } else if (score >= 60) {
        System.out.println("及格");
    } else {
        System.out.println("不及格");
    }
  • switch (适用于多分支且变量为 int, String, enum 等类型)
    int day = 3;
    switch (day) {
        case 1:
            System.out.println("星期一");
            break; // 必须使用 break,否则会穿透
        case 2:
            System.out.println("星期二");
            break;
        // ...
        default:
            System.out.println("未知日期");
    }

2 循环语句

  • for 循环 (明确循环次数)
    // 打印 1 到 10
    for (int i = 1; i <= 10; i++) {
        System.out.println(i);
    }
  • while 循环 (条件满足时循环)
    int count = 0;
    while (count < 5) {
        System.out.println("Count: " + count);
        count++;
    }
  • do-while 循环 (至少执行一次)
    int num = 0;
    do {
        System.out.println(num);
        num++;
    } while (num < 0); // 即使条件不满足,循环体也会执行一次

3 跳转语句

  • break:跳出当前循环或 switch 语句。
  • continue:跳过本次循环,直接进入下一次循环。

第三部分:面向对象编程

这是 Java 的核心思想,万物皆对象。

第五章:类与对象

1 定义类

类是对象的模板,定义了对象的属性(成员变量)和行为(方法)。

// Car.java
public class Car {
    // 成员变量 (属性)
    String brand;
    String color;
    int speed;
    // 方法 (行为)
    public void start() {
        System.out.println(brand + " 汽车启动了!");
    }
    public void accelerate(int increment) {
        speed += increment;
        System.out.println("当前速度: " + speed + " km/h");
    }
}

2 创建对象

使用 new 关键字创建类的实例(对象)。

// Main.java
public class Main {
    public static void main(String[] args) {
        // 创建 Car 类的对象
        Car myCar = new Car();
        // 访问对象的属性和方法
        myCar.brand = "Toyota";
        myCar.color = "Red";
        myCar.speed = 0;
        myCar.start(); // 输出: Toyota 汽车启动了!
        myCar.accelerate(50); // 输出: 当前速度: 50 km/h
    }
}

第六章:封装、继承、多态

1 封装

将数据(属性)和操作数据的方法(行为)捆绑在一起,并隐藏对象的内部细节。

  • 访问修饰符
    • public:任何地方都可以访问。
    • private:只能在当前类内部访问。
    • protected:在同一个包内或子类中可以访问。
    • 默认 (无修饰符):在同一个包内可以访问。

封装实践:将属性设为 private,通过 publicgettersetter 方法来访问和修改它们。

public class Car {
    private String brand; // 私有属性
    // public 的 getter 方法
    public String getBrand() {
        return brand;
    }
    // public 的 setter 方法
    public void setBrand(String brand) {
        this.brand = brand; // this 指代当前对象
    }
}

2 继承

子类继承父类的属性和方法,实现了代码复用,使用 extends 关键字。

// Animal.java (父类)
public class Animal {
    public void eat() {
        System.out.println("动物在吃东西");
    }
}
// Dog.java (子类)
public class Dog extends Animal {
    // Dog 继承了 Animal 的 eat() 方法
    public void bark() {
        System.out.println("汪汪叫");
    }
}
// Main.java
public class Main {
    public static void main(String[] args) {
        Dog myDog = new Dog();
        myDog.eat(); // 调用继承来的方法
        myDog.bark(); // 调用自己的方法
    }
}

3 多态

同一个接口,使用不同的实例而执行不同操作。

  • 前提:必须有继承关系。
  • 体现:父类引用指向子类对象。
// Animal.java (同上)
// Dog.java (同上)
// 假设还有一个 Cat 类
public class Cat extends Animal {
    @Override // 注解,表示重写父类方法
    public void eat() {
        System.out.println("猫在吃鱼");
    }
}
// Main.java
public class Main {
    public static void main(String[] args) {
        // 父类引用指向子类对象
        Animal animal1 = new Dog();
        Animal animal2 = new Cat();
        // 调用相同的方法,但执行了不同的逻辑
        animal1.eat(); // 输出: 动物在吃东西 (注意:这里没有重写)
        animal2.eat(); // 输出: 猫在吃鱼
        // 要实现多态,子类必须重写父类方法
        // 让我们修改一下 Dog
        public class Dog extends Animal {
            @Override
            public void eat() {
                System.out.println("狗在吃骨头");
            }
        }
        // 再次运行
        Animal myDog = new Dog();
        Animal myCat = new Cat();
        myDog.eat(); // 输出: 狗在吃骨头
        myCat.eat(); // 输出: 猫在吃鱼
    }
}

第七章:常用 API 与工具类

1 String

不可变的字符序列。

String s1 = "Hello";
String s2 = new String("World");
String s3 = s1 + " " + s2; // "Hello World"
int len = s3.length();
boolean isEmpty = s3.isEmpty();
char c = s3.charAt(0); // 'H'

2 Math

数学工具类,所有方法都是静态的,直接通过类名调用。

double max = Math.max(10.5, 20.3);
double sqrt = Math.sqrt(16); // 4.0
double random = Math.random(); // [0.0, 1.0) 之间的随机数

3 Scanner

用于获取用户输入。

import java.util.Scanner; // 需要导入包
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入你的名字: ");
        String name = scanner.nextLine(); // 读取一行
        System.out.print("请输入你的年龄: ");
        int age = scanner.nextInt(); // 读取一个整数
        System.out.println("你好, " + name + "! 你今年 " + age + " 岁。");
        scanner.close(); // 关闭 Scanner,释放资源
    }
}

第四部分:进阶与实战

第八章:异常处理

程序运行时可能出现的错误,使用 try-catch-finally 结构来优雅地处理异常。

public class Main {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3};
        try {
            // 可能会抛出异常的代码块
            System.out.println(numbers[5]); // 数组越界
        } catch (ArrayIndexOutOfBoundsException e) {
            // 捕获特定异常
            System.out.println("数组索引越界了!错误信息: " + e.getMessage());
        } finally {
            // 无论是否发生异常,都会执行的代码块
            System.out.println("程序执行完毕。");
        }
    }
}

第九章:集合框架

用于存储和操作对象集合的类库,最常用的是 List, Set, Map

  • ArrayList:动态数组,允许重复元素。

    import java.util.ArrayList;
    import java.util.List;
    List<String> names = new ArrayList<>();
    names.add("Alice");
    names.add("Bob");
    names.add("Alice");
    System.out.println(names.get(0)); // Alice
    System.out.println(names.size()); // 3
  • HashSet:哈希集合,不允许重复元素,无序。

    import java.util.HashSet;
    import java.util.Set;
    Set<String> uniqueNames = new HashSet<>();
    uniqueNames.add("Alice");
    uniqueNames.add("Bob");
    uniqueNames.add("Alice"); // 这个添加操作无效
    System.out.println(uniqueNames.size()); // 2
  • HashMap:哈希映射,存储键值对。

    import java.util.HashMap;
    import java.util.Map;
    Map<String, Integer> studentAges = new HashMap<>();
    studentAges.put("张三", 20);
    studentAges.put("李四", 21);
    System.out.println(studentAges.get("张三")); // 20

第十章:文件操作与 I/O

使用 java.io 包中的类进行读写文件。

写入文件

import java.io.FileWriter;
import java.io.IOException;
public class WriteFile {
    public static void main(String[] args) {
        try (FileWriter writer = new FileWriter("test.txt")) {
            writer.write("这是第一行,\n");
            writer.write("这是第二行。");
            System.out.println("文件写入成功!");
        } catch (IOException e) {
            System.out.println("写入文件时出错: " + e.getMessage());
        }
    }
}

读取文件

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFile {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("test.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            System.out.println("读取文件时出错: " + e.getMessage());
        }
    }
}

第五部分:学习路径与资源推荐

学习路线图

  1. 基础阶段:掌握本教程第一、二、三部分,能独立编写控制台小程序。
  2. 面向对象阶段:深入理解第四部分,能熟练运用 OOP 思想设计小型类结构。
  3. API 与实战阶段:学习第五部分,了解常用库,并尝试做一些小项目,如学生管理系统、简单的图书管理系统、控制版贪吃蛇游戏等。
  4. 进阶阶段
    • 多线程:学习 Thread 类和 Runnable 接口,理解并发编程。
    • 网络编程:学习 Socket 编程,了解 HTTP 协议。
    • 数据库:学习 JDBC,连接 MySQL 等数据库。
    • 框架学习:选择一个主流框架,如 Spring Boot,进入企业级开发领域。

推荐资源

  • 官方文档Oracle Java Documentation (最权威、最准确)
  • 在线教程
  • 视频课程
    • Bilibili:搜索“Java零基础教程”,有许多优秀的免费课程。
    • Coursera / Udemy:国际上高质量的付费课程。
  • 开发工具
    • IntelliJ IDEA (社区版免费):强烈推荐,功能强大,智能提示好。
    • Eclipse:经典开源 IDE。
  • 书籍
    • 《Java核心技术 卷I》:基础知识讲解非常透彻。
    • 《Effective Java》:Java 编程的最佳实践,进阶必读。

Java 是一门博大精深的语言,本教程为您勾勒出了一个清晰的入门框架,最重要的建议是:多动手,多实践,多思考,不要只停留在看懂,一定要亲手敲代码、改代码、运行代码,并尝试解决遇到的问题,祝您在 Java 的学习之路上一切顺利!

分享:
扫描分享到社交APP
上一篇
下一篇