偏底层(深入)的一些概念整理
来源:互联网 发布:圣马可吉他怎么样知乎 编辑:程序博客网 时间:2024/06/01 07:33
1. 大端模式和小段模式
key:网络通信、字节序、底层驱动开发、Big-Endian & Little-Endian
- 【大端模式和小端模式】
2. 字节对齐
key:padding
- 【c语言字节对齐】
- 【结构体字节对齐和位域对齐】
3. 编码
简单来说,GBK、GB2312、Unicode这些是字符编码格式,是字符对应的编码值,根据编码表可以找到对应字符的编码值;而UTF_8、UTF_16这些是编码值的存储方式(几个字符存储,大小端字节序),其中UTF_8是变长格式存储方式即不同的字符需要的存储空间大小可能不同,而UTF_16是2字节存储。GBK和GB2312是2字节存储一个汉字,GB2312仅包含简体字,而GBK包含了繁体字;UTF_8因为是变长格式存储,汉字以3字节存储较多。
- 【Unicode、GBK、UTF-8区别】
- 【为啥需要Unicode】
- 【GBK、GB2312、Big5、Unicode、UTF_8、UTF_16区别】
4. 带缓冲和不带缓冲的IO
- 带缓存的文件操作是标准C库的实现,第一次调用带缓存的文件操作函数时标准库会自动分配内存并且读出一段固定大小的内容存储在缓存中。标准IO库提供缓冲的目的是尽可能减少使用read和write调用的次数,降低执行IO的时间,它提供三种类型的缓冲:全缓冲、行缓冲、不带缓冲
- 不带缓存的文件操作通常都是系统提供的系统调用,更加低级,直接从硬盘中读取和写入文件,由于IO瓶颈的原因,速度并不如意,而且原子操作需要程序员自己保证,但使用得当的话效率并不差。另外标准库中的带缓存文件IO是调用系统提供的不带缓存IO实现的
链接:
- 【不带缓冲IO和带缓冲IO】 (很好的解释)
- 【缓冲IO和非缓冲IO的区别】(直观的例子1!!)
摘录:可以看出标准IO会缓冲4096Bytes的数据,当达到这么多数据时才会进行实际的磁盘写入,而系统调用write则是直接写入,不进行缓冲。
- (例子2)
0 0
- 偏底层(深入)的一些概念整理
- MySQL中一些深入概念整理
- 硬件以及编程的一些底层概念
- Java的一些概念整理
- JAVA 中一些常常混淆的概念 (整理)
- 子网的概念的一些整理
- java的一些概念和深入
- Java的一些概念和深入
- 待整理的linux一些概念理解
- 整理的一些Java基础概念
- Spark机器学习的一些概念整理
- 机器学习整理的一些概念
- 一些逻辑概念整理
- KVO、Notification、Delegate 三个概念的深入理解整理
- 对于底层概念的理解
- AOP的底层实现概念
- 响应式布局的一些概念的整理
- 程序中一些需要深入理解的概念
- Foundation -- OC集合 --NSSet
- 基于asio实现pop3的几个指令
- Performance between Sets and List
- 黑马程序员——反射
- P51第15题
- 偏底层(深入)的一些概念整理
- PC用Kinect玩水果忍者核心代码
- __asm__ __volatile__
- Foundation -- OC集合 --NSDictionary
- CF 526C Om Nom and Candies
- LinkedList
- UVA1599 Ideal Path
- 桶排序
- Foundation -- OC集合 --NSNumber