切片结构
1 | type slice struct { |
1 | a = make([]int, 0) |
切片组成元素:
- 指针:指向底层数组
- 长度:切片中元素的长度,不能大于容量
- 容量:指针所指向的底层数组的总容量
1 | type slice struct { |
1 | a = make([]int, 0) |
切片组成元素:
CPU获取内存数据:CPU通过地址总线(Address Bus)发送地址信号到内存,并将控制总线(Control Bus)信号设置为Enable信号,之后内存会将数据通过数据总线(Data Bus)返回给CPU。
CPU写入内存数据:CPU通过地址总线(Address Bus)发送地址信号到内存,并将控制总线(Control Bus)信号设置为Set信号,最后将数据通过数据总线(data bus)发送到内存并进行写入。
CPU要想从内存读取数据,需要通过地址总线,把地址传输给内存,内存准备好数据,输出到数据总线
若是32位地址总线,可以寻址[0,2的32次方-1],占用内存4g
哈希查找表一般会存在“碰撞”的问题,就是说不同的 key 被哈希到了同一个 bucket。一般有两种应对方法:链表法
和开放地址法
。链表法
将一个 bucket 实现成一个链表,落在同一个 bucket 中的 key 都会插入这个链表。开放地址法
则是碰撞发生后,通过一定的规律,在数组的后面挑选“空位”,用来放置新的 key。
Apache Kafka 是一款开源的消息引擎系统,也是分布式流处理平台,使用的是纯二进制的字节序列。
Topic: 发布订阅的对象是主题(Topic) 生产者程序通常持续不断地向一个或多个主题发送消息
Producer: 向主题发布消息的客户端应用程序称为生产者(Producer)
Consumer: 订阅这些主题消息的客户端应用程序就被称为消费者(Consumer)
今年的最后一段时间是在罗振宇的跨年演讲中度过的,当然不是在现场。
2019是一个有意思的一年,如在北京待的越久,似乎就越不愿意离开了。在这里认识了更多厉害的人,就会看到自己的渺小。
数据库占用空间太大,把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变?
以下是例子
1 | SELECT * FROM TABLE WHERE xxx = 11 |
如果列xxx确实只有11的,你是否就认为筛选出来的就一定只有xxx=11的呢?
在过滤字段为数值类型的时候,数值类型有一种隐式转换,如果是以数字开头的,包含有字符,后面的字符会被截断,只取前面的数字值。
大概说一下业务场景,需要定时计算一些数据,从其他系统、接口拉取达到的数据比较多,然后经计算后的值存储在本系统中。拉取的数据量可能有万左右,然后以主键存在的数据是需要更新的。不存在则插入。每次做全量更新/插入。
大概有这样的需求