以下是一个详细的 Java 教程,涵盖从基础到高级的一些关键概念。Java 是一种面向对象的编程语言,广泛用于开发应用程序,尤其在企业级系统、移动应用和大数据技术中得到了广泛应用。

目录

  1. Java 简介
  2. 安装 Java 开发环境
  3. Java 基础
  4. 面向对象编程
  5. Java 集合框架
  6. 异常处理
  7. Java IO 操作
  8. Java 线程
  9. 总结

1. Java 简介

Java 是一种高性能、面向对象的编程语言,最初由 Sun Microsystems(后被 Oracle 收购)开发。Java 的一个重要特点是 “一次编写,到处运行”,意味着 Java 程序可以在任何支持 Java 的平台上运行,而不需要修改代码。

Java 支持多种应用程序类型,如桌面应用、Web 应用、企业级应用和移动应用(特别是 Android)。Java 程序通常通过 Java Virtual Machine (JVM) 执行,这使得 Java 程序能够跨平台运行。

2. 安装 Java 开发环境

  1. 安装 JDK
    • 下载并安装 Java Development Kit(JDK)。可以从 Oracle 官方网站(JDK 下载)下载适合你操作系统的版本。
  2. 设置环境变量
    • 配置 JAVA_HOME 环境变量,指向 JDK 的安装目录。
    • 配置 PATH 环境变量,加入 bin 目录的路径,这样可以在命令行中直接运行 javajavac
  3. 安装 IDE
    • 推荐使用集成开发环境(IDE)如 IntelliJ IDEA 或 Eclipse 来编写 Java 程序。IDE 提供了代码自动完成、调试、项目管理等功能。

3. Java 基础

Hello World 程序

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

解释

  • public class HelloWorld: 定义一个公共类 HelloWorld
  • public static void main(String[] args): 程序的入口点,main 方法是每个 Java 程序的起点。
  • System.out.println("Hello, World!");: 打印输出 Hello, World!

变量和数据类型

Java 支持多种数据类型,分为两类:基本数据类型和引用数据类型。

  • 基本数据类型int, double, boolean, char, float, long, short, byte
  • 引用数据类型:类、数组、接口
int num = 10;
double price = 99.99;
boolean isActive = true;
String name = "Java";

运算符

Java 提供了各种运算符,包括算术运算符、比较运算符、逻辑运算符等。

  • 算术运算符+, -, *, /, %
  • 比较运算符==, !=, <, >, <=, >=
  • 逻辑运算符&&, ||, !

控制流

Java 提供了多种控制流结构,例如条件语句(if/else)和循环(for, while)。

// if-else 语句
if (num > 10) {
    System.out.println("Greater than 10");
} else {
    System.out.println("Less than or equal to 10");
}

// for 循环
for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

4. 面向对象编程

类和对象

Java 是面向对象的,所有的代码都应该在类中定义。类是对象的模板,而对象是类的实例。

class Car {
    String make;
    String model;

    // 构造函数
    public Car(String make, String model) {
        this.make = make;
        this.model = model;
    }

    // 方法
    public void displayInfo() {
        System.out.println("Make: " + make + ", Model: " + model);
    }
}

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car("Toyota", "Corolla");
        myCar.displayInfo();
    }
}

继承

Java 允许类之间建立继承关系,子类可以继承父类的属性和方法。

class Animal {
    void speak() {
        System.out.println("Animal speaks");
    }
}

class Dog extends Animal {
    void speak() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.speak();  // 输出:Dog barks
    }
}

多态

多态允许我们通过父类的引用指向子类的对象。

Animal animal = new Dog(); // 多态
animal.speak();  // 输出:Dog barks

封装

封装是将数据(属性)和代码(方法)绑定在一起,并控制访问权限。

class Person {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

抽象

抽象类不能实例化,它只能作为其他类的父类使用。抽象方法没有实现,需要子类来实现。

abstract class Animal {
    abstract void sound();
}

class Dog extends Animal {
    void sound() {
        System.out.println("Bark");
    }
}

5. Java 集合框架

List 和 Set

  • List:有序集合,允许重复元素,常见实现包括 ArrayListLinkedList
  • Set:无序集合,不允许重复元素,常见实现包括 HashSetTreeSet
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");

Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");

Map

Map 是一个键值对集合,其中每个键只能映射到一个值。常见实现包括 HashMapTreeMap

Map<String, Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);

6. 异常处理

Java 使用 try-catch 块来捕获和处理异常。

try {
    int result = 10 / 0; // 会引发 ArithmeticException
} catch (ArithmeticException e) {
    System.out.println("Error: " + e.getMessage());
}

7. Java IO 操作

Java 提供了丰富的类库来处理文件和流的操作。

文件操作

import java.io.*;

public class FileExample {
    public static void main(String[] args) throws IOException {
        FileWriter writer = new FileWriter("file.txt");
        writer.write("Hello, Java!");
        writer.close();
    }
}

流的使用

import java.io.*;

public class InputStreamExample {
    public static void main(String[] args) throws IOException {
        InputStream input = new FileInputStream("file.txt");
        int data;
        while ((data = input.read()) != -1) {
            System.out.print((char) data);
        }
        input.close();
    }
}

8. Java 线程

Java 支持多线程,可以通过继承 Thread 类或实现 Runnable 接口来创建线程。

class MyThread extends Thread {
    public void run() {
        System.out.println("Thread is running");
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread t = new MyThread();
        t.start();
    }
}

9. 总结

Java 是一种强大且广泛应用的编程语言,具备面向对象编程特性。掌握 Java 基础后,你可以深入学习更高级的 Java 概念,如并发编程、网络编程、JVM 优化等。掌握 Java 集合框架和异常处理,将帮助你编写更加高效和健壮的代码。