动力节点Java教程2024笔记 (305~514)


以下内容为B站动力节点的JAVA基础课程2024全部内容,课程链接如下:https://www.bilibili.com/video/BV1Eb4y1P7iq,该笔记根据课程资料整理,顺序按照课程PPT截图整理,附有部分个人的问题和重点整理,如有侵权请联系下架,后续会持续更新整理课程中的重难点,课程中有很多重点和细节部分值得反复思考、消化,个人觉得是很不错的JAVA课程




第七章 集合

在这里插入图片描述

Collection的继承机构

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

泛型

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

迭代时删除元素

在这里插入图片描述

Iterator 是Java中的一个接口,它允许你遍历一个集合(Collection),如列表(List)、集合(Set)等,而不需要关心集合的底层实现。Iterator 提供了一种统一的方法来访问和操作集合中的元素。

以下是 Iterator 接口的一些关键点:

  1. 接口定义: Iterator 接口定义了三个方法:hasNext(), next(), 和 remove()

  2. hasNext(): 此方法用来检测迭代器是否还有更多的元素可以迭代。

  3. next(): 此方法返回迭代的下一个元素。

  4. remove(): 此方法从集合中移除 next() 方法返回的最后一个元素。注意,remove() 操作必须在调用 next() 方法之后和再次调用 next()hasNext() 之前执行。

  5. Fail-Fast 行为: Iterator 接口的实现通常是“快速失败”的,这意味着如果集合在迭代过程中被修改(除了通过迭代器自身的 remove() 方法),迭代器会立即抛出 ConcurrentModificationException

  6. 使用场景: 当你需要遍历集合中的元素,并且不需要关心集合的具体类型时,使用 Iterator 是一个很好的选择。

  7. 与普通循环的区别: 使用 Iterator 可以避免使用索引来遍历集合,这使得代码更加简洁和安全。

示例代码:

import java.util.ArrayList;
import java.util.Iterator;

public class IteratorExample {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("Element 1");
        list.add("Element 2");
        list.add("Element 3");

        Iterator<String> iterator = list.iterator();
        
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);
        }
    }
}

在这个例子中,我们创建了一个 ArrayList 并添加了一些元素。然后,我们使用 iterator() 方法获取了一个迭代器,并使用 hasNext()next() 方法遍历了集合中的所有元素。

Iterator 接口是Java集合框架中非常重要的一部分,它提供了一种灵活且安全的方式来遍历集合中的元素

在这里插入图片描述

List接口

在这里插入图片描述

在这里插入图片描述

ArrayList

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Vector

在这里插入图片描述

链表存储结构

在这里插入图片描述

在这里插入图片描述

LinkedList双向链表

在这里插入图片描述

栈数据结构

在这里插入图片描述

队列数据结构

在这里插入图片描述

在这里插入图片描述

Map接口

在这里插入图片描述

在这里插入图片描述

Map继承结构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

HashMap

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

手写HashMap基础代码

在这里插入图片描述

在这里插入图片描述

HashMap在Java8后的改进(包括Java8)

在这里插入图片描述

HashMap的容量及扩容

在这里插入图片描述

在这里插入图片描述

为什么说HashMap集合扩容成本较高呢?

因为length一定会发生改变!!

哈希值计算:

​ int index = hash % length 或 int index = hash & length - 1

为了提高程序的执行效率,建议减少HashMap集合的扩容次数

怎样减少HashMap集合的扩容次数呢?

在创建HashMap集合的时候给定初始化容量

给定一个初始化容量,能让其存储1000个节点,并且在存储过程中,不会发生扩容,应该怎样选

首先,1000个节点不该超过HashMap的75%,1000 / 75% = 1333.33333

其次应该满足是2 的次幂,由此可得,应为2048

LinkedHashMap

在这里插入图片描述

HashTable

在这里插入图片描述

Properties

在这里插入图片描述

二叉树与红黑树

二叉树

在这里插入图片描述

排序二叉树

在这里插入图片描述

平衡二叉树

在这里插入图片描述

红黑二叉树

在这里插入图片描述

TreeMap

在这里插入图片描述

集合中 能 / 不能 为NULL的总结

HashTable的key和value都不能为null

Properties的key和value都不能为null

TreeMap的key不能为null

TreeSet不能添加null

其余的都能为null

在这里插入图片描述

Collections工具类

在这里插入图片描述

第八章 IO流

IO流概述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

IO流的体系结构

在这里插入图片描述
在这里插入图片描述

FileInputStream

在这里插入图片描述

FileOutputStream

在这里插入图片描述

FileReader

在这里插入图片描述

FileWriter

在这里插入图片描述

缓冲流

在这里插入图片描述

在这里插入图片描述

转换流

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

数据流

在这里插入图片描述

对象的序列化和反序列化

对象流

在这里插入图片描述

在这里插入图片描述

打印流

在这里插入图片描述

在这里插入图片描述

标准输入流和输出流

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

File类

在这里插入图片描述

读取属性配置文件

在这里插入图片描述

装饰器设计模式

在这里插入图片描述

压缩和解压缩流

在这里插入图片描述

在这里插入图片描述

数组流

在这里插入图片描述

字节数组流输入和输出的理解

在这里插入图片描述

对象的克隆

在这里插入图片描述

第九章 多线程

线程概述

在这里插入图片描述

在这里插入图片描述

并发与并行

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

线程的调度策略

在这里插入图片描述

实现线程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

线程生命周期

在这里插入图片描述

在这里插入图片描述

线程的休眠与终止

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

如何正确的终止一个线程的执行

在这里插入图片描述

守护线程

在这里插入图片描述

定时任务

在这里插入图片描述

线程调度

在这里插入图片描述

线程安全问题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

同步实例方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

死锁

在这里插入图片描述

在这里插入图片描述

线程间的通信

在这里插入图片描述

单例模式线程安全问题

在这里插入图片描述

可重入锁

在这里插入图片描述

在这里插入图片描述

Callable实现线程

在这里插入图片描述

在这里插入图片描述

线程池实现线程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

第十章 反射机制

反射机制概述

在这里插入图片描述

获取Class的方式

在这里插入图片描述

反射作用的体现

在这里插入图片描述

反射Field

在这里插入图片描述

反射Method

在这里插入图片描述

反射Constructor

在这里插入图片描述

模拟框架的部分实现

在这里插入图片描述

类加载及双亲委派机制

在这里插入图片描述

在这里插入图片描述

获取Class的四种方式

在这里插入图片描述

类加载机制

在这里插入图片描述在这里插入图片描述

双亲委派机制

在这里插入图片描述

反射泛型

在这里插入图片描述

  • 13
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值