uunnfly

如切如磋,如琢如磨

操作系统实战(一)实验环境搭建

实战目的:建立自己的操作系统本节目标:搭建实验环境课程来源:操作系统实战45讲 实验环境:windows 总体思路我们使用Ubuntu进行操作系统(COSMOS)的开发工作, 为了避免套娃操作(虚拟机启动Ubuntu,Ubuntu再启动一个虚拟机运行COSMOS),将一块硬盘同时挂载在两个虚拟机..


服务端缓存初探

​ 缓存,在计算机世界中很早就出现了,例如在CPU中,就有一级缓存,二级缓存,三级缓存。根据局部性原理(时间局部性:如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。空间局部性:在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。), 使用缓存能让我们以较低的成..


Redis原理之数据结构学习笔记

底层实现dictdict类似于java里的hashmap,当发生冲突时,使用链地址法,把新加入的节点插入到链表的最前面。哈希算法使用Murmruhash2,这种算法即使输入的键是有规律的,算法仍能给出一个很好的随机分布性,计算速度非常快,使用简单。 dict的数据结构里包含两个哈希表。在重哈希期..


ConcurrentHashMap源码解读(一)

1.7的ConcurrentHashMapConcurrentHashMap是由Segment数组结构和HashEntry数组结构组成。Segment实际继承自可重入锁(ReentrantLock),在ConcurrentHashMap里扮演锁的角色;HashEntry则用于存储键值对数据。一个..


使用vmware搭建hdfs集群

实验设备: vmware workstation 16 pro centos 7 hadoop 3.3 实验步骤 安装centos,先安一台,配置好再克隆两台 网络可使用桥接模式,或者NAT模式。需使用静态ip 配置NAT vmware选择编辑 -> 虚拟网络编辑器 -> N..


函数式编程刷题笔记

刷题地址见此:hackerrank的fp刷题专题 使用语言:scala List Replication解法一:for + yield 123def f(num:Int,arr:List[Int]):List[Int] = { for {e <- arr; _ &..


scala初学笔记

数据结构Array 定长数组: 有序,可变类型,长度不可变。ArrayBuffer 不定长数组:有序,可变类型,长度可以扩展。List 列表:有序,不可变类型。Set 集合:无序,不可变类型。如果你想使用可变集合,需要引用 scala.collection.mutable.Set 包。Map 映..


java的Lambda表达式

Lambda表达式是java8的新特性,允许把函数作为一个方法的参数,使代码更加简洁。语法:(argument) -> (body)如:123(arg1, arg2...) -> { body }(type1 arg1, type2 arg2...) -> ..


位运算总结

位运算是直接对整数在内存中的二进制位进行操作,而且不会对邻近位造成影响,不需要考虑进位的问题。 符号 描述 运算规则 & 按位与 相同位的两个数字都为1,则为1;若有一个不为1,则为0。 | 按位或 相同位只要一个为1即为1。 ^ 按位异或 如果某位不同..


java-观察者模式

观察者模式是指一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。比如说软件开发时的热更新功能,修改了代码之后能够自动重新部署。 原理(idea自动生成的类图) Subject:被观察对象的抽象类,持有一个List保存观察者对象的引用,可以添加、删除观察者对象,并且在..