Java基础

Java基础

概述

Java是一种面向对象的编程语言,具有"一次编写,到处运行"的特性。本文档涵盖Java语言的核心概念和基础知识。

Java语言特性

1. 面向对象

  • 封装(Encapsulation):将数据和操作数据的方法封装在一起
  • 继承(Inheritance):子类可以继承父类的属性和方法
  • 多态(Polymorphism):同一个接口可以有多种不同的实现

2. 平台无关性

  • Java源代码编译成字节码(.class文件)
  • 字节码在Java虚拟机(JVM)上运行
  • 不同平台有对应的JVM实现

3. 自动内存管理

  • 垃圾回收器自动管理内存
  • 程序员无需手动释放内存

基本数据类型

整数类型

  • byte:8位,范围 -128 到 127
  • short:16位,范围 -32,768 到 32,767
  • int:32位,范围 -2^31 到 2^31-1
  • long:64位,范围 -2^63 到 2^63-1

浮点类型

  • float:32位单精度浮点数
  • double:64位双精度浮点数

其他类型

  • char:16位Unicode字符
  • boolean:true或false

面向对象编程

类和对象

java
public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
}
public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
}

继承

java
public class Student extends Person {
    private String studentId;
    
    public Student(String name, int age, String studentId) {
        super(name, age);
        this.studentId = studentId;
    }
}
public class Student extends Person {
    private String studentId;
    
    public Student(String name, int age, String studentId) {
        super(name, age);
        this.studentId = studentId;
    }
}

接口

java
public interface Drawable {
    void draw();
}

public class Circle implements Drawable {
    @Override
    public void draw() {
        System.out.println("Drawing a circle");
    }
}
public interface Drawable {
    void draw();
}

public class Circle implements Drawable {
    @Override
    public void draw() {
        System.out.println("Drawing a circle");
    }
}

异常处理

异常层次结构

  • Throwable
    • Error:系统级错误,程序无法处理
    • Exception:程序可以处理的异常
      • RuntimeException:运行时异常(非检查异常)
      • 其他Exception:检查异常

try-catch-finally

java
try {
    // 可能抛出异常的代码
    int result = 10 / 0;
} catch (ArithmeticException e) {
    // 处理算术异常
    System.out.println("除零错误:" + e.getMessage());
} finally {
    // 无论是否发生异常都会执行
    System.out.println("清理资源");
}
try {
    // 可能抛出异常的代码
    int result = 10 / 0;
} catch (ArithmeticException e) {
    // 处理算术异常
    System.out.println("除零错误:" + e.getMessage());
} finally {
    // 无论是否发生异常都会执行
    System.out.println("清理资源");
}

常用API

String类

  • 不可变字符串类
  • 常用方法:length()charAt()substring()indexOf()

StringBuilder和StringBuffer

  • 可变字符串类
  • StringBuilder:非线程安全,性能更好
  • StringBuffer:线程安全

包装类

  • 基本数据类型对应的包装类
  • 自动装箱和拆箱机制

总结

Java基础是学习Java技术栈的根基,掌握这些核心概念对于深入学习Java框架和技术至关重要。建议通过大量的编程实践来巩固这些基础知识。