温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JAVA复习的知识点有哪些

发布时间:2022-01-15 10:38:32 来源:亿速云 阅读:213 作者:iii 栏目:服务器
# JAVA复习的知识点有哪些

## 一、Java基础语法

### 1. 数据类型与变量
- **基本数据类型**(8种):
  - 整型:byte(1)、short(2)、int(4)、long(8)
  - 浮点型:float(4)、double(8)
  - 字符型:char(2)
  - 布尔型:boolean(1)
- **引用数据类型**:类、接口、数组
- **类型转换**:
  - 自动类型转换(小转大)
  - 强制类型转换(大转小)

### 2. 运算符
```java
// 算术运算符:+ - * / % ++ --
// 关系运算符:== != > < >= <=
// 逻辑运算符:&& || !
// 位运算符:& | ^ ~ << >> >>>

3. 流程控制

  • 分支结构
    • if-else
    • switch-case(JDK7+支持String)
  • 循环结构
    • for/foreach
    • while
    • do-while
  • 跳转语句:break、continue、return

二、面向对象编程

1. 类与对象

public class Person {
    // 成员变量
    private String name;
    
    // 构造方法
    public Person(String name) {
        this.name = name;
    }
    
    // 成员方法
    public void speak() {
        System.out.println("My name is " + name);
    }
}

2. 三大特性

  • 封装:private/protected/public访问控制
  • 继承:extends单继承,super调用父类
  • 多态
    • 方法重载(Overload)
    • 方法重写(Override)
    • 向上转型/向下转型

3. 抽象类与接口

特性 抽象类 接口(JDK8+)
定义 abstract class interface
方法 可含具体/抽象方法 默认public abstract
默认方法 JDK8支持default方法
静态方法 支持 JDK8支持
变量 任意类型 默认public static final
多继承 不支持 支持多实现

三、Java核心API

1. 常用类库

  • String:不可变性、常量池
  • StringBuilder/StringBuffer:可变字符串(后者线程安全)
  • 包装类:自动装箱/拆箱
  • Math/Random:数学运算
  • 日期时间API
    • Date/Calendar(旧)
    • LocalDate/LocalTime(JDK8新API)

2. 集合框架

graph TD
    A[Collection] --> B[List]
    A --> C[Set]
    A --> D[Queue]
    B --> E[ArrayList]
    B --> F[LinkedList]
    C --> G[HashSet]
    C --> H[TreeSet]
    I[Map] --> J[HashMap]
    I --> K[TreeMap]

3. 异常处理

  • 异常体系
    • Throwable
      • Error(系统错误)
      • Exception(可处理异常)
        • RuntimeException(非受检异常)
        • 其他Exception(受检异常)
  • 处理方式
    • try-catch-finally
    • throws声明
    • throw抛出

四、高级特性

1. 泛型

// 泛型类
class Box<T> {
    private T data;
    // getter/setter...
}

// 泛型方法
public <E> void printArray(E[] array) {
    for(E element : array) {
        System.out.println(element);
    }
}

2. 反射机制

Class<?> clazz = Class.forName("com.example.Person");
Constructor<?> constructor = clazz.getConstructor(String.class);
Object obj = constructor.newInstance("张三");
Method method = clazz.getMethod("speak");
method.invoke(obj);

3. 注解

  • 内置注解:@Override、@Deprecated
  • 元注解:@Target、@Retention
  • 自定义注解:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    String value() default "";
}

五、IO与NIO

1. 传统IO

  • 字节流:InputStream/OutputStream
  • 字符流:Reader/Writer
  • 装饰者模式:BufferedInputStream等

2. NIO(New IO)

  • 核心组件
    • Channel(通道)
    • Buffer(缓冲区)
    • Selector(选择器)
  • 特点:非阻塞IO、更高效的网络编程

六、多线程

1. 线程基础

  • 创建方式
    • 继承Thread类
    • 实现Runnable接口
    • 实现Callable接口(带返回值)
  • 线程状态
    • NEW -> RUNNABLE -> BLOCKED -> WTING -> TIMED_WTING -> TERMINATED

2. 线程同步

// synchronized关键字
public synchronized void syncMethod() {}

// Lock接口
Lock lock = new ReentrantLock();
lock.lock();
try {
    // 临界区代码
} finally {
    lock.unlock();
}

3. 线程池

ExecutorService pool = Executors.newFixedThreadPool(5);
pool.execute(() -> {
    // 任务代码
});
pool.shutdown();

七、JVM基础

1. 内存模型

  • 运行时数据区
    • 方法区(类信息、常量池)
    • 堆(对象实例)
    • 虚拟机栈(方法调用)
    • 本地方法栈
    • 程序计数器

2. 垃圾回收

  • GC算法
    • 标记-清除
    • 复制算法
    • 标记-整理
    • 分代收集
  • GC分类
    • Minor GC(新生代)
    • Full GC(整个堆)

八、新特性速览(JDK8-17)

1. JDK8重要特性

  • Lambda表达式
  • Stream API
  • Optional类
  • 新的日期时间API
  • 接口默认方法

2. 后续版本更新

  • JDK9:模块化系统
  • JDK10:局部变量类型推断(var)
  • JDK14:record类
  • JDK17:密封类(sealed class)

复习建议

  1. 分模块学习:按上述知识点划分复习阶段
  2. 代码实践:每个知识点配套编码练习
  3. 错题回顾:整理以往练习中的错误案例
  4. 框架整合:结合Spring等框架理解应用场景
  5. 性能调优:关注集合选择、线程池配置等实践

提示:建议使用IDEA等现代IDE进行代码演练,结合JUnit进行单元测试验证理解。 “`

(注:实际字数约2800字,完整3350字版本需要扩展各章节的示例代码和详细说明)

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI