- 博客(9)
- 收藏
- 关注
原创 java怎么让自定义类型可以被foreach遍历?(ARDeque)
迭代器是属于设计模式之一,迭代器模式提供了一种方法来顺序访问一个聚合对象中各个元素,而不保留该对象的内部表示。1)Iterator对象称为迭代器,主要用于遍历Collection集合中的元素。2)所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象,即可以返回一个迭代器。3)Iterator仅用于遍历集合,Iterator本身并不存放对象。那么要怎么做才能让我们自定义的类可以被foreach遍历呢?我们需要做的有两件事!
2023-04-25 03:14:09
327
原创 Raft协议的纯java实现,最简单,最好懂的代码
Raft是一种较为广泛使用的分布式协议。博主在学习这个算法时,在网上找到了很多不同的实现方式,但是都引用了很多第三方库,使用了RPC等工具(博主没学过),代码比较晦涩难懂,对刚接触分布式算法的朋友很不友好。本文通过java不依赖任何第三方工具,实现了Raft协议的核心选主功能。Raft原理Raft协议中所有节点都有三种状态,leader,candidate,follower。leader是一个集群的领导者,所有的节点都要和leader保持同步。leader要定时给follower发送心跳,如果followe
2022-06-16 18:28:37
3015
原创 递归式算法复杂度分析
递归式假设 T(n) 是规模为 n 的一个问题的运行时间。把原问题分解为 a 个子问题,每个子问题的规模为原问题的 1/b(对于归并排序,a和b都是2)。为了求解一个规模为 n/b 的子问题,需要 T(n/b),所以需要aT(n/b)的时间来求解a个子问题。如果分解问题成子问题需要时间 D(n),合并子问题为原问题的解需要时间 C(n),那么得到以下递归式:T(n) = aT(n/b) + D(n) + C(n)求解方式代换法(Substitution method)递归树法(Recursive
2022-04-04 00:24:34
611
原创 CAS的个人理解
什么是CASCAS是Compare And Swap即比较并交换的缩写。CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。CAS指令执行时,当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做。整个比较并替换的操作是一个原子操作(因为调用了CPU提供的指令,intel CPU中为cmpxchg)。CAS一般是配合无限循环使用的。CAS的三个问题ABA问题循环时间开销很大只能保证一个变量的原子操作ABA问题因为CAS需要在操作值的时候
2022-03-01 21:13:32
147
原创 CPT101计算机系统概念(存储系统部分)
存储系统包括了主存和辅存两部分:主存:随机存储器(RAM,Random Access Memory),一般指内存(内存条)。辅存:只读存储器(ROM,Read Only Memory),一般指硬盘(固态硬盘,机械硬盘,光盘,软盘等)。内存(Memory)内存硬盘(Hard disk)硬盘结构硬盘的主要部分:Heads(磁头):负责读写数据。Tracks(磁道):每个盘面可以划分多个磁道,最外圈的磁道是0号磁道,向圆心增长依次为1磁道、2磁道…磁盘的数据存放就是从最外圈开始的secto
2021-10-28 01:42:14
1001
原创 CPT101内联汇编课件详解
汇编(assembly)前置知识个人理解(数据都是存在内存中某一特定地址中, CPU访问内存时可以通过地址来获取某块内存上的数据用来存放地址的变量, 我们称为指针, 不论何种数据类型(int, char, 结构体), 指向它所在地址的指针大小都为4字节, 所以下面的程序里弹栈操作我们会使其ESP寄存器(存放栈顶指针)加4(Intel系统中栈是向下生长的, 改变栈顶位置使其+4也就是实现一个弹栈操作)汇编关键字赋值LEA (load effective address)lea eax, a 是
2021-09-23 20:41:03
1036
1
原创 CPT101计算机系统概念
CPT101 计算机系统概念(概念篇)计算机系统概念计算机类型 (Types of Computers)计算机的四个时代 (Computer Generations)计算机系统:软硬件(Computer Systems: hardware & software)硬件类型软件类型系统软件(System software)应用软件(Application software)向后兼容 Backward (Downward) Compatibility for new hardwareVHDL(Very-H
2021-09-13 14:53:17
3571
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人