以下是一个详细的 Java 教程,涵盖从基础到高级的一些关键概念。Java 是一种面向对象的编程语言,广泛用于开发应用程序,尤其在企业级系统、移动应用和大数据技术中得到了广泛应用。
目录
1. Java 简介
Java 是一种高性能、面向对象的编程语言,最初由 Sun Microsystems(后被 Oracle 收购)开发。Java 的一个重要特点是 “一次编写,到处运行”,意味着 Java 程序可以在任何支持 Java 的平台上运行,而不需要修改代码。
Java 支持多种应用程序类型,如桌面应用、Web 应用、企业级应用和移动应用(特别是 Android)。Java 程序通常通过 Java Virtual Machine (JVM) 执行,这使得 Java 程序能够跨平台运行。
2. 安装 Java 开发环境
- 安装 JDK:
- 下载并安装 Java Development Kit(JDK)。可以从 Oracle 官方网站(JDK 下载)下载适合你操作系统的版本。
- 设置环境变量:
- 配置
JAVA_HOME
环境变量,指向 JDK 的安装目录。 - 配置
PATH
环境变量,加入bin
目录的路径,这样可以在命令行中直接运行java
和javac
。
- 配置
- 安装 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:有序集合,允许重复元素,常见实现包括
ArrayList
和LinkedList
。 - Set:无序集合,不允许重复元素,常见实现包括
HashSet
和TreeSet
。
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
Map
Map
是一个键值对集合,其中每个键只能映射到一个值。常见实现包括 HashMap
和 TreeMap
。
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 集合框架和异常处理,将帮助你编写更加高效和健壮的代码。
发表回复