- 博客(17)
- 收藏
- 关注
原创 深入理解Rust引用规则
本文是对Rust官方书籍中关于引用规则的另一种理解,下面是官方书籍中给的定义在任意给定时间,要么只能有一个可变引用,要么只能有多个不可变引用。引用必须总是有效的。这两句定义在阅读上容易理解的,但在实际写代码过程中似乎又稍显单薄,下面给出另一种解读来帮助大家理解Rust中的引用规则。内存安全问题一直是编程领域的一个痛点。当一段代码直接或间接修改了共享内存区域(例如全局变量、指针指向的内存等),而其他代码对此没有意识到或未加以防范时,就可能导致意料之外的行为。
2024-12-19 11:10:02
233
原创 Java HashMap原理简述
(默认是8),并且table数组的长度达到或者超过了****MIN_TREEIFY_CAPACITY****(默认是64),则底层会将该链表进行树化,将其转换为一颗红黑树,否则仍然采用数组扩容机制。若判断该索引处的元素是一颗红黑树,则用红黑树的方式去添加元素。数组进行扩容,新容量是就旧容量的2倍,同时计算出一个新的临界阈值,以此类。数组该索引的位置是一个链表,则继续判断该链表中的元素有无与当前元素相同的。,若有,则用新值替换旧值,同时返回旧值。反之,则进行判断,如果当前要添加的键值对的。
2024-08-20 14:31:18
298
原创 Ubunt防火墙开放和关闭端口
Ubuntu中的防火墙是由iptables实现的。它通过允许或拒绝特定的网络流量来保护网络。防火墙通过针对网络流量进行规则过滤器来工作。每个规则决定一个数据包是否允许通过防火墙。规则包含源,目标,协议,端口和要执行的操作,例如允许或拒绝。
2023-07-04 00:23:42
2024
原创 Linux线程控制原语
线程共享进程空间,除了栈不共享。其实线程就是 运行一个函数,因此有自己的栈空间。线程编译时,需要链接上pthread库,-pthread。
2023-02-20 17:43:09
89
原创 C++ 显示类型转换
这是一种最不安全的转换机制,最有可能出现问题,主要将一种数据类型从一种类型为另一种类型,它可以将一个指针转换成一个整数,也可以将一个整数转换成一个指针。该运算符用来修改类型的const属性。
2023-02-20 10:37:15
93
原创 MP4文件格式解析
知道如何读取一个mp4文件中的基本信息。从一个mp4文件中抽离对应的视频数据或者音频数据的基本原理。播放一个mp4时seek到指定时间,如何在mp4文件中查找到对应的媒体数据的基本过程mp4协议中一种类似于面向对象的抽象。类似于java语言中任何对象都源于Object类一样,在MP4协议描述都是一个box,不同的box都具有唯一的identifier标识和size。在某些文档中也有atom的叫法。MP4中最基本的单元就是BoxMP4文件是由一个一个独立的Box拼接而成的,例如文件最开始处ftyp。
2023-01-12 18:47:12
7945
5
原创 Android MediaCodec 完全解析
MediaCodec是什么?MediaCodec类为开发者提供了能访问到Android底层媒体Codec(Encoder/Decoder)的能力,它是Android底层多媒体基础架构的一部分(通常和MediaExtractor,MediaSync,MediaMuxer,MediaCrypto,MediaDrm,Image,Surface,AudioTrack一起使用)。从广义上来讲,Code...
2019-04-14 18:41:06
5522
1
原创 深入理解C指针
深入理解C指针什么是变量变量就是一块可以存放数据的内存空间,这块内存空间的大小,取决于变量的类型。什么是指针内存在计算机中以字节为最小单位。将内存中的每一个字节大小的内存单元以16进制从0开始逐一的进行标号,这个标号我们将其称为这块内存单元的地址,也称之为指针。指向指针的指针在C语言中指针的操作时通过指针变量来实现的,指针变量的本质也是一个变量,不同的是它存放内容是地址,既然是变量,...
2019-01-24 08:28:33
262
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人