- 博客(8)
- 收藏
- 关注
原创 Map源码解析
Java7 HashMap HashSet 和 HashMap 在 Java 里有着相同的实现,前者仅是对后者进行了一层包装,也就是说 HashSet 里面有一个 HashMap(适配器模式)。 HashMap 实现了 Map 接口,即允许放入 key 为 null 的元素,也允许插入 value 为 null 的元素;除该类未实现同步外,其余跟 Hashtable 大致相同;跟 TreeMap 不同,该容器不保证元素顺序,根据需要该容器可能会对元素重新哈希,元素的顺序也会被重新打散,因此不同时间迭代同一个
2022-03-08 11:21:37
568
原创 Collection类
Set: TreeSet: 基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。查找效率不如 HashSet,HashSet 查找的时间复杂度为 O(1),TreeSet 则为 O(logN) HashSet: 基于哈希表实现,支持快速查找,不支持有序性操作。并且失去了元素的插入顺序信息,即:使用 Iterator 遍历 HashSet 得到的结果是不确定的 LinkedHashSet: 具有 HashSet 的查找效率,且内部使用双向链表维护元素的插入顺序 List: ArrayList: 基
2022-03-04 18:42:15
529
原创 计网复习笔记
最大传送单元 MTU:规定了所能传送的帧的数据部分长度上限 误码率 BER:在一段时间内,传输错误的比特占所传输比特总数的比率 **循环冗余检验 CRC ** 帧检验序列 FCS(+余数) 数据链路层 封装成帧 透明传输 差错检测 PPP 点对点协议 作用 / 功能: 全双工操作 有动态分配 IP 地址的能力 支持多种网络协议 错误检测 组成: 一个将 IP 数据报封装到串行链路的方法 一个链路控制协议 LCP 一套网络控制协议 NCP CSMA / CD 协议:(总线) 要点: 多点接入
2022-01-10 13:34:10
1593
原创 Java线程基础
一、线程状态转换 新建(New): 创建后尚未启动 可运行(Runnable): 可能正在运行,也可能正在等待 CPU 时间片。包含了操作系统线程状态中的 Running 和 Ready 阻塞(Blocking): 等待获取一个排它锁,如果其线程释放了锁就会结束此状态 无期限等待(Waiting): 等待其他线程显式地唤醒,否则不会被分配 CPU 时间片 进入方法 退出方法 没有设置 Timeout 参数的 Object.wait() 方法 Object.notify() / Obje
2021-10-28 22:39:54
170
原创 Java虚拟机中线程安全
为什么需要多线程 为了合理利用 CPU 的高性能,平衡 CPU、内存、I/O 设备的速度的差异 CPU 增加了缓存,均衡与内存的速度差异; //导致可见性问题 操作系统增加了进程、线程,以分时复用 CPU,进而均衡 CPU 与 I/O设备的速度差异; // 导致原子性问题 编译程序优化指令执行次序,使得缓存能够得到更加合理的利用。// 导致 有序性 问题 若多个线程对同一个共享数据进行访问而不采取同步操作,操作结果是不一致的 public class ThreadUnsafeExample {
2021-10-28 22:21:36
292
转载 2021-03-21
力扣122:买卖股票的最佳时机II 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 示例 2: 输入: [1,2,3,4,5] 输出: 4 示例 3: 输入: [7,6,4,3,1] 输出: 0 动态规划: class solution{ publ
2021-03-21 17:20:17
153
原创 idea中MySQL和导入jar包
MySQL 创建一个项目,然后点击右方的Database–>点击加号–>点击Data sourse–>选择MySQL 输入用户名和密码点击确认即可: 导入jar包 没有导入jar包时应为: 点击File–>Project Structure–>Modules–>选择下方的加号–>JARs or Directors–>选择jar包–>确定 打开jar包: File–>Project Structure–>Arti
2021-03-11 13:04:44
674
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅