Java教程:从基础语法到高级编程
基础语法
Java简介
Java是一种广泛使用的编程语言,具有跨平台、面向对象、稳定性高等特点。Java程序通常编译成字节码,运行在Java虚拟机(JVM)上,从而实现了跨平台功能。
Hello World程序
让我们从最基本的Java程序开始,打印“Hello, World!”到控制台。
package cn.juwatech.example;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
基本数据类型与变量
Java的基本数据类型包括 int
、double
、char
、boolean
等。变量在使用前必须声明。
package cn.juwatech.example;
public class DataTypes {
public static void main(String[] args) {
int number = 10;
double price = 19.99;
char letter = 'A';
boolean isJavaFun = true;
System.out.println("Number: " + number);
System.out.println("Price: " + price);
System.out.println("Letter: " + letter);
System.out.println("Is Java Fun? " + isJavaFun);
}
}
控制流
Java的控制流包括条件语句和循环语句。常见的条件语句有 if
和 switch
,循环语句包括 for
、while
和 do-while
。
package cn.juwatech.example;
public class ControlFlow {
public static void main(String[] args) {
// if-else 语句
int age = 20;
if (age >= 18) {
System.out.println("You are an adult.");
} else {
System.out.println("You are a minor.");
}
// switch 语句
int day = 2;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
default:
System.out.println("Other day");
break;
}
// for 循环
for (int i = 0; i < 5; i++) {
System.out.println("For loop iteration: " + i);
}
// while 循环
int count = 0;
while (count < 5) {
System.out.println("While loop iteration: " + count);
count++;
}
}
}
面向对象编程
类和对象
Java是一种面向对象的语言,类是对象的蓝图。下面是一个简单的类定义和对象创建示例。
package cn.juwatech.example;
public class Person {
String name;
int age;
// 构造方法
public Person(String name, int age) {
= name;
this.age = age;
}
// 方法
public void greet() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
public static void main(String[] args) {
Person person = new Person("Alice", 30);
person.greet();
}
}
继承和多态
Java支持继承和多态,使得类可以从其他类派生,并能够重写方法。多态允许使用父类类型的引用来调用子类的方法。
package cn.juwatech.example;
// 父类
class Animal {
public void makeSound() {
System.out.println("Animal makes a sound");
}
}
// 子类
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog barks");
}
}
public class InheritanceDemo {
public static void main(String[] args) {
Animal myDog = new Dog();
myDog.makeSound(); // 输出: Dog barks
}
}
接口与抽象类
接口定义了一组方法签名,而抽象类可以包含方法的实现。实现接口或继承抽象类的类必须提供具体的实现。
package cn.juwatech.example;
// 接口
interface Drawable {
void draw();
}
// 实现接口的类
class Circle implements Drawable {
@Override
public void draw() {
System.out.println("Drawing a circle");
}
}
// 抽象类
abstract class Shape {
abstract void draw();
}
// 继承抽象类的类
class Rectangle extends Shape {
@Override
void draw() {
System.out.println("Drawing a rectangle");
}
}
public class InterfaceAbstractDemo {
public static void main(String[] args) {
Drawable drawableCircle = new Circle();
drawableCircle.draw(); // 输出: Drawing a circle
Shape rectangle = new Rectangle();
rectangle.draw(); // 输出: Drawing a rectangle
}
}
高级编程
异常处理
Java使用异常处理机制来处理程序运行时的错误。try-catch
块用于捕获和处理异常。
package cn.juwatech.example;
public class ExceptionHandling {
public static void main(String[] args) {
try {
int division = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("Exception caught: " + e.getMessage());
} finally {
System.out.println("Finally block executed");
}
}
}
多线程编程
Java提供了多线程编程的支持。可以通过继承 Thread
类或实现 Runnable
接口来创建线程。
package cn.juwatech.example;
// 继承 Thread 类
class MyThread extends Thread {
@Override
public void run() {
System.out.println("Thread running: " + Thread.currentThread().getId());
}
}
// 实现 Runnable 接口
class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("Runnable running: " + Thread.currentThread().getId());
}
}
public class ThreadDemo {
public static void main(String[] args) {
// 通过 Thread 类创建线程
MyThread thread1 = new MyThread();
thread1.start();
// 通过 Runnable 接口创建线程
Thread thread2 = new Thread(new MyRunnable());
thread2.start();
}
}
Java 8 新特性
Lambda 表达式
Lambda 表达式是 Java 8 引入的特性,用于简化函数式接口的实现。
package cn.juwatech.example;
import java.util.ArrayList;
import java.util.List;
public class LambdaDemo {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("John");
names.add("Jane");
names.add("Jack");
// 使用 Lambda 表达式进行遍历
names.forEach(name -> System.out.println(name));
}
}
Stream API
Stream API 使得对集合的操作变得更加简洁和功能强大。
package cn.juwatech.example;
import java.util.Arrays;
import java.util.List;
public class StreamDemo {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
// 使用 Stream API 过滤和打印数据
numbers.stream()
.filter(n -> n % 2 == 0)
.forEach(System.out::println); // 输出: 2 4
}
}
总结
本文介绍了Java从基础语法到高级编程的各个方面。包括基本数据类型、控制流、面向对象编程、异常处理、多线程编程及Java 8的新特性。掌握这些内容可以帮助你在Java编程中更高效地解决问题和开发应用。