捣鼓了一下午,比传统搜索引擎好用,已经替换掉传统搜索引擎了。
个人觉得,思维导图还是自己整理下比较好,不要像我一样偷懒(捣鼓加最后完工用了四五个小时,自己整理不知道猴年马月了……
除了图没什么好看的,不用往下翻了。记得点赞加收藏嗷
Java SE 思维导图
Java基础
数据类型
- 基本数据类型:包括整型、浮点型、字符型和布尔型,这些是Java中最基础的数据存储单位。
- 引用数据类型:包括类、接口和数组,用于存储更复杂的数据结构。
运算符
- 算术运算符:用于执行基本的数学运算,如加、减、乘、除等。
- 关系运算符:用于比较两个值的大小关系。
- 逻辑运算符:用于组合或修改布尔值。
- 位运算符:用于直接操作整数类型的位。
- 赋值运算符:用于将右边的值赋给左边的变量。
控制流
- 顺序结构:代码按照从上到下的顺序执行。
- 选择结构:根据条件判断执行不同的代码块。
- 循环结构:重复执行某段代码,直到满足某个条件为止。
Java面向对象
类与对象
- 类的定义:定义了一个数据类型,包括属性和方法。
- 对象的创建:根据类的定义创建实例。
- 构造函数:特殊的方法,用于初始化对象。
- 访问控制修饰符:决定哪些代码可以访问类的成员。
继承
- 继承的概念:子类继承父类的属性和方法,实现代码重用。
- 子类与父类的关系:子类是对父类的扩展和特殊化。
- 方法重写:子类可以重新定义父类的方法。
- super关键字:用于引用父类的成员。
多态
- 方法多态:同一个方法名在不同的对象上产生不同的行为。
- 构造器多态:在子类构造器中调用父类构造器。
- 重载与重写的区别:重载是同一个类内方法名相同但参数不同,重写是子类对父类方法的覆盖。
Java集合框架
集合接口
- Collection:表示一组对象的集合,是集合框架的根接口。
- List:有序的集合,允许包含重复元素。
- Set:无序的集合,不允许包含重复元素。
- Map:存储键值对映射关系的集合。
集合实现类
- ArrayList:基于数组实现的动态列表。
- LinkedList:基于链表实现的双向列表。
- HashSet:不允许重复元素的集合。
- TreeSet:基于红黑树实现的有序集合。
- HashMap:基于哈希表实现的键值对映射。
- TreeMap:基于红黑树实现的有序键值对映射。
Java异常处理
异常类
- Exception:所有非运行时异常的基类。
- RuntimeException:所有运行时异常的基类,如空指针异常等。
异常处理机制
- try-catch块:用于捕获并处理异常。
- 多重捕获:一个catch块捕获多种类型的异常。
- 抛出异常:使用throws关键字声明可能抛出的异常。
Java多线程
线程的基本概念
- 进程与线程:进程是程序执行的实例,线程是进程中的执行单元。
- 线程的生命周期:包括新建、就绪、运行、阻塞和终止等状态。
- 线程的优先级:决定线程的执行顺序。
线程的创建
- 继承Thread类:通过继承Thread类并重写run()方法创建线程。
- 实现Runnable接口:实现Runnable接口并重写run()方法,然后将实现类对象作为参数传递给Thread类。
- 实现Callable接口:与Runnable类似,但可以返回结果,通常与Future和ExecutorService一起使用。
线程同步
- synchronized关键字:用于控制多个线程对共享资源的访问。
- wait()和notify()方法:用于线程间的通信,控制线程的等待和唤醒。
- Lock接口:提供比synchronized更灵活的线程同步机制。
线程通信
- 共享变量:多个线程通过共享变量进行通信。
- 生产者消费者模型:生产者和消费者共享固定大小缓冲区并通过同步机制协调数据生产和消费的过程。
Java IO系统
输入输出流
- 输入流:用于从数据源读取数据。
- 输出流:用于向目标写入数据。
- 字节流与字符流:根据数据处理方式的不同,分为字节流(InputStream和OutputStream)和字符流(Reader和Writer)。
文件操作
- 文件读写:使用FileInputStream、FileOutputStream、FileReader和FileWriter进行文件的读写操作。
- 文件复制:使用FileInputStream和FileOutputStream实现文件的复制。
- 文件删除:使用File类的delete()方法删除文件。
- 文件列表:使用File类的listFiles()方法获取目录中的文件列表。
文件I/O类
- File类:代表文件和目录路径名的抽象表示形式。
- FileInputStream和FileOutputStream:用于文件的字节输入和输出。
- FileReader和FileWriter:用于文件的字符输入和输出。
- BufferedInputStream、BufferedOutputStream、BufferedReader和BufferedWriter:为输入/输出流提供缓冲功能,提高读写效率。
对象序列化
- 序列化与反序列化:将对象的状态转换为字节流,以便存储或传输,然后再从字节流中恢复对象的状态。
- 序列化标记:通过在类定义上添加serialVersionUID字段来标识类的版本,确保序列化和反序列化的兼容性。
- 序列化注意事项:实现Serializable接口,处理静态和瞬态成员变量等。
Java网络编程
网络基础
- IP地址与端口号:用于标识网络中的设备和通信的端点。
- TCP与UDP:两种常见的网络传输协议,TCP提供可靠的连接,UDP提供无连接的通信。
Java网络API
- InetAddress类:用于表示IP地址,可以解析主机名。
- DatagramSocket类:用于UDP通信,发送和接收数据报。
- DatagramPacket类:表示UDP数据报,包含发送或接收的数据。
- ServerSocket类:用于创建TCP服务器套接字,监听客户端连接。
- Socket类:用于创建TCP客户端套接字,与服务器建立连接并发送和接收数据。
Java泛型
基础
- 泛型类:允许类、接口和方法具有类型参数。
- 泛型接口:接口也可以定义类型参数,使得实现该接口的类需要遵循这些类型参数。
- 泛型方法:可以独立于类创建泛型方法,使得方法的返回类型、参数类型或内部类型可以是泛型。
通配符
- 无界通配符:用于表示未知类型,可以匹配任何类型。
- 有界通配符:对未知类型施加上界或下界约束,例如只接受特定类型或其子类型的对象。
集合
- 泛型集合类:如List, Set, Map等,提供了类型安全的集合实现。
- 类型擦除:Java泛型在运行时被擦除,只保留原始类型信息,这导致了泛型数组的限制等问题。
Java反射(Reflection)
反射基础
- 定义:Java反射机制允许程序在运行时获取类的内部信息,并能直接操作任意对象的内部属性及方法。
核心类
- Class类:
- 代表类的元信息
- 获取类的名称、包、父类、实现的接口等
- 创建类的实例
- 访问类的字段、方法和构造函数
- Field类:
- Method类:
- 代表类的方法
- 调用方法
- 获取方法的参数类型、返回类型等
- Constructor类:
获取Class对象
- 使用.class语法:MyClass.class
- 使用对象的getClass()方法:myObject.getClass()
- 使用Class类的静态方法forName():Class.forName(“com.example.MyClass”)
操作类的属性和方法
- 访问属性:
- 使用Field类获取属性
- 通过setAccessible(true)访问私有属性
- 使用get()和set()方法读取和设置属性值
- 调用方法:
- 使用Method类获取方法
- 通过setAccessible(true)访问私有方法
- 使用invoke()方法调用方法
应该不会有人翻到最底下吧?翻到了就祝你开心吧!总不能白来底部一趟。(笨拙的比心