首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
摆烂了的可乐很不想泡池子
门头沟学院 嵌入式软件开发
关注
已关注
取消关注
@许愿offerzxd:
八股2
除了brk+mmap,malloc还有以下实现方式:sbrk:sbrk是brk的一个变体,它可以增加或减少进程数据段的大小。与brk不同的是,sbrk只能增加或减少数据段的大小,而不能直接设置数据段的大小。mmap:mmap可以将一个文件或者一个匿名映射区映射到进程的地址空间中。通过mmap可以在进程的地址空间中创建一个新的映射区,这个映射区可以用来存储malloc分配的内存。buddy算法:buddy算法是一种内存分配算法,它将内存分成大小相等的块,并将这些块组织成一棵二叉树。每个节点表示一个内存块,节点的左右子节点表示该内存块被分成的两个子块。当需要分配内存时,buddy算法会在二叉树中找到一个大小合适的内存块,并将其分配出去。slab分配器:slab分配器是一种内存分配器,它将内存分成大小相等的块,并将这些块组织成一个或多个slab。每个slab包含若干个大小相等的内存块,slab分配器会根据需要从slab中分配内存块,并在内存块不再使用时将其返回给slab。Page cache(页缓存)是操作系统中的一种内存区域,用于缓存磁盘上的文件数据。它与一般的内存区域(如用户空间和内核空间)有以下区别:功能:Page cache主要用于提高文件系统的性能,通过将磁盘上的文件数据缓存在内存中,减少对磁盘的读写操作,从而加快文件的访问速度。而一般的内存区域用于存储程序的代码和数据,以及操作系统的内核数据结构。分配方式:Page cache的内存是通过文件系统缓存管理机制分配的,它是按需分配的,根据文件的访问情况动态调整大小。而一般的内存区域是通过操作系统的内存管理机制分配的,通常在程序启动时就会分配一定的内存空间。内存回收:Page cache的内存可以被操作系统回收,以便为其他进程或文件提供更多的缓存空间。而一般的内存区域通常只有在进程退出或被操作系统终止时才会被释放。分界的方式通常是通过操作系统的虚拟内存管理机制来实现的。操作系统将整个内存空间划分为多个页(通常是4KB大小),每个页可以被分配给不同的内存区域,包括Page cache和一般的内存区域。操作系统根据需要将文件数据加载到Page cache中,并根据访问模式进行缓存管理。当需要访问文件数据时,操作系统首先检查Page cache中是否存在相应的数据,如果存在则直接返回,否则从磁盘读取数据并将其缓存到Page cache中。智能指针是一种用于管理动态内存的工具,它可以自动化内存的分配和释放,从而减少程序员手动管理内存的出错可能性。然而,智能指针也有一些缺点,包括以下几点:1.性能开销:智能指针需要进行额外的内存管理和引用计数操作,这可能会导致程序的性能下降。相比于原始指针,智能指针需要更多的计算资源和时间来完成内存管理任务。2.循环引用:如果智能指针被用于管理对象之间的循环引用,就可能会出现内存泄漏的问题。当两个对象相互引用时,它们的引用计数永远不会达到零,因此它们的内存也永远不会被释放。3.难以调试:由于智能指针管理的内存是自动分配和释放的,因此在程序运行时,很难确定哪个指针指向哪个内存块,以及哪个指针可能导致内存泄漏或悬挂指针等问题。这使得调试非常困难。4.不适用于某些场景:智能指针通常适用于单线程环境,但在某些多线程或异步环境中,智能指针的使用可能会导致竞态条件或死锁等问题。此外,智能指针也不适用于需要在不同的进程之间共享内存的场景。erase"和"remove"都是用于删除容器中的元素的函数,但它们的实现方式和使用场景略有不同。"erase"是一个成员函数,用于从容器中删除指定位置的元素或指定范围内的元素。例如,可以使用vector的erase函数删除指定位置的元素:std::vector<int> vec = {1, 2, 3, 4, 5};vec.erase(vec.begin() + 2); // 删除第三个元素,即3"remove"是一个算法函数,用于从容器中删除指定值的元素。例如,可以使用vector的erase和remove函数删除所有值为3的元素:std::vector<int> vec = {1, 2, 3, 4, 5};vec.erase(std::remove(vec.begin(), vec.end(), 3), vec.end()); // 删除所有值为3的元素需要注意的是,remove函数并不会真正删除元素,而是将所有需要删除的元素移到容器的末尾,并返回一个指向新的末尾的迭代器。因此,需要再使用erase函数将这些元素真正删除。vector与deque不同,其内存占用空间只会增长,不会减小。比如你首先分配了10,000个字节,然后erase掉后面9,999个,则虽然有效元素只有一个,但是内存占用仍为10,000个。所有空间在vector析构时回收。empty()是用来检测容器是否为空的,clear()可以清空所有元素。但是即使clear(),所占用的内存空间依然如故。如果你需要空间动态缩小,可以考虑使用deque。如果非要用vector,这里有一个办法:在《effective STL》和其实很多C++文章中都有指明,用clear()无法保证内存回收。但是swap技法可以。具体方法如下所示:vector<int> nums;nums.push_back(1);nums.push_back(1);nums.push_back(2);nums.push_back(2);vector<int>().swap(nums); //或者nums.swap(vector<int>());oracle和mysql的区别:规模、费用、权限管理、表空间、自动提交(事务)、性能、稳定性、扩展性、是否支持全外连接、性能诊断工具SQL加锁规则:原则 1:加锁的基本单位是 next-key lock。next-key lock 是前开后闭区间。原则 2:查找过程中访问到的对象才会加锁。优化 1:索引上的等值查询,给唯一索引加锁的时候,next-key lock 退化为行锁。优化 2:索引上的等值查询,向右遍历时且最后一个值不满足等值条件的时候,next-key lock 退化为间隙锁。一个 bug:唯一索引上的范围查询会访问到不满足条件的第一个值为止。加何种锁与where条件的字段是否有索引以及是否是唯一索引以及where条件的数据是否存在有关,比如:在 update 语句的 where 条件使用了唯一索引,那么 next-key 锁会退化成记录锁,也就是只会给一行记录加锁。在 update 语句的 where 条件没有使用索引,就会对所有记录和间隙加上 next-key 锁(记录锁 + 间隙锁),相当于把整个表锁住了。总之,非唯一索引就会加next key 锁redis的线程模型:所以,Redis 的多线程部分只是用来处理网络数据的读写和协议解析,执行命令仍然是单线程顺序执行,也就不存在并发安全问题。TCP长连接:本来就是HTTP长连接:就是keepalive,不断开TCPTCP keepalive:一段时间没有消息自动关闭HTTP/2.0:采用二进制协议,而不是HTTP/1.x的文本协议,可以更快地传输数据。支持多路复用,可以在一个连接上同时发送多个请求和响应,减少了延迟和网络拥塞。强制使用加密传输,提高了安全性。支持服务器推送,可以在客户端请求之前主动向客户端发送资源,提高了性能。HTTP/3.0:采用QUIC协议,而不是TCP协议,可以更快地建立连接和传输数据。支持多路复用和服务器推送,与HTTP/2.0类似。支持0-RTT连接,可以在第一次连接时就发送数据,减少了延迟。支持快速恢复,可以在网络中断后更快地恢复连接。虚函数能内联吗:一般人肯定说不能用对象调用可以内联,用基类指针调用不能内联HTTP包格式:请求行:请求方法。URI。协议版本消息头:Accept:指定客户端能够接收的内容类型。Accept-Charset:指定客户端能够接收的字符集。Accept-Encoding:指定客户端能够接收的内容编码。Accept-Language:指定客户端能够接收的自然语言。Authorization:包含客户端提供的认证证书,用于访问受密码保护的资源Cache-Control:指定请求/响应链上所有缓存机制必须服从的指令。Connection:指定与连接相关的选项。Content-Length:指定请求体的长度。Content-Type:指定请求体的MIME类型。Cookie:包含客户端发送的CookieHost:指定请求的服务器的域名和端口号。If-Modified-Since:指定只有在指定日期之后修改过的资源才会被返回。If-None-Match:指定只有在指定的ETag与服务器上对应资源的ETag不同时才会被返回。Referer:指定当前请求的来源页面。User-Agent:指定客户端使用的浏览器类型和版本号。消息体只有vector.deque.array.string 支持随机访问迭代器线程共享的资源:文件描述符列表、进程空间、代码、全局数据、堆、共享库数据库优化的方法:数据库逻辑结构的设计:是否满足第几范式查询语句是否高效、是否进行了全表扫描。查询加索引了吗、是否是二级索引、是否是聚簇索引:查看慢查询表,或者分库分表、负载均衡、主从数据库同步redis缓存:缓存预热。缓存雪崩、缓存击穿、缓存穿透,server层缓存,引擎层缓存并发事务优化:更换隔离级别硬件优化:合理配置硬件资源可以提高数据库性能。增加内存、优化磁盘读写速度、使用高性能的存储设备等都可以提高数据库的响应速度。数据库版本升级:注意考虑兼容性问题主机上的最大连接数:1.端口号限制2.文件描述符限制:系统级。用户级。进程级3.线程并发过多:使用多路复用
点赞 0
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
10-08 19:23
莉莉丝游戏_2026届校招HRBP(准入职员工)
众安保险内推,众安保险内推码
众安保险产品运营1自我介绍2你偏向于产品运营还是产品经理3你能说说这两者的区别吗4 你认为两者分别有什么特质5 你认为自己具备什么特质6 你说一个你的缺点7你现在做的措施有帮助你改正缺点吗 你还有采取什么其他的措施吗8 你喜欢什么样的领导和团队氛围9 讲一个你实习内容10 你们部门架构是什么,你的leader主要负责什么?11说一个跨部门交流的经历 有没有遇到什么困难12 你为什么想投众安的产品运营呢?和你专业经历不太相符13 你为什么不留在现在实习的公司14 可以提前实习吗 目前投递了哪些公司15 你家哪里的 性格?星座?16 你如何看待加班呢众安保险26届校招启动啦【关于众安】众安保险是中...
点赞
评论
收藏
分享
10-09 13:50
安克创新 Anker_嵌入式软件工程师(准入职员工)
安克内推,安克内推码
一面直接略过了,因为我觉得终面更有深度一些,复盘了一下,准备挑战面遍所有电商运营岗位,争做电商运营面霸,下一篇更新蓝月亮面经~ 岗位 亚马逊电商运营 1.如何看待跨境电商?(个人思路:整体到局部,整体电商行业怎么看,过渡到跨境电商和国内电商的区别) 2.在电商运营过程中,哪些模块是需要提前布局的(个人思路:产品展示,库存预测,利润核算,每个人想法不一样,这是我的想法) 3.如何看待安克布局中东市场(个人思路:安克本身北美起家,关税以及近期亚马逊平台佣金上涨,尾端配送费增加,利润减少,需要布局其他国家分散风险,中东市场目前存在很大的机会,消费力高,而且中东市场主要消费力集中在时尚和消费电子,安克...
点赞
评论
收藏
分享
09-28 23:07
襄阳职业技术学院 网络安全
大概懂事长也有烦恼吧!!!
我以为我只有我找不到工作,没想到董事长也招不到人
站队站对牛:
你别不懂事
秋招感动瞬间
点赞
评论
收藏
分享
09-21 21:14
门头沟学院
又有素材了
后悔把简历发过去了。。
否极泰来来来来:
和他说:这里不好骂你,我们加个微信聊
点赞
评论
收藏
分享
10-10 08:37
蚌埠坦克学院 嵌入式软件开发
裸机开发真的不够用,RTOS 成必备了
一、从“写死循环”开始的时代早期的嵌入式系统,大多数开发者都从裸机程序开始。程序结构简单:初始化硬件、进入 while(1) 循环,不断执行任务。这种方式逻辑直观、上手容易,适合学习硬件驱动和外设控制。在 8 位单片机时代,这种开发模式几乎可以满足一切需求——传感器采集、简单通信、LED 控制、按键检测,全靠主循环+中断完成。但是,随着设备功能越来越复杂,裸机开发的局限开始显现。全网最全面的嵌入式八股文专栏:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk二、裸机开发的困境1. 任务越来越多,主循环变得臃肿过去只有一个传...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
除了卷大厂,还有其他出路吗?
3336
2
...
懂车帝二面 2025.10.11 1h32min
3111
3
...
26国考公告出炉,放宽到38岁意味着什么
2025
4
...
双非秋招大厂time line参考
2002
5
...
牛牛求救🆘,不敢梭哈后端第二技能点怎么搭配
1992
6
...
最近面试回答不出来的题
1757
7
...
第一次去很远的地方实习很不安,大家有这种感觉吗
1625
8
...
27届速通第一段前端实习后续--节孝子启动!
1607
9
...
10.12pdd笔试大鸭蛋
1431
10
...
校招谈薪一定要知道的事
1279
创作者周榜
更多
正在热议
更多
#
找工作中的小确幸
#
5600次浏览
62人参与
#
实习在多还是在精
#
1370次浏览
29人参与
#
爱玛科技集团求职进展汇总
#
29263次浏览
205人参与
#
面包vs爱情,怎么选?
#
14639次浏览
164人参与
#
秋招踩过的“雷”,希望你别再踩
#
10561次浏览
91人参与
#
发面经攒人品
#
2317307次浏览
32312人参与
#
深信服秋招来了
#
280309次浏览
2917人参与
#
实习下班不想学习,正常吗?
#
1786次浏览
30人参与
#
机械求职避坑tips
#
66949次浏览
449人参与
#
贝壳求职进展汇总
#
35634次浏览
196人参与
#
机械人值得去的小众企业
#
24014次浏览
54人参与
#
校招谈薪一定要知道的事
#
1662次浏览
30人参与
#
你觉得什么岗位会被AI替代
#
3145次浏览
69人参与
#
秋招结束之后的日子
#
87582次浏览
985人参与
#
浪潮求职进展汇总
#
17596次浏览
137人参与
#
投格力的你,拿到offer了吗?
#
118780次浏览
686人参与
#
新凯来求职进展汇总
#
51347次浏览
131人参与
#
职场新人体验
#
86337次浏览
610人参与
#
机械制造面试点评
#
72046次浏览
452人参与
#
招银网络求职进展汇总
#
171775次浏览
997人参与
#
秋招盘点:机械人值得去的企业
#
85593次浏览
709人参与
#
面试被问“你的缺点是什么?”怎么答
#
155804次浏览
2207人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务