09 2018 档案
摘要:商汤面试 "C++11中智能指针的原理, 使用和实现" 商汤一面面经(软件开发) 我是面的C/C++, 大部分时间是问项目, 中间问了几个技术问题, 但有一个没有回答上,直接被挂掉; 怎么让浮点数向上取整; int(a+0.5); 怎么保存大的浮点数 用字符串保存; C++怎么实现多态 用virtu
阅读全文
摘要:8大排序算法的总结 "常见算法思想" ; 简介 插入排序 冒泡排序 直接插入排序 折半插入排序 归并排序 快速排序 希尔排序 堆排序 直接选择排序 稳定性比较 快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法; 基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法; 稳
阅读全文
摘要:顺丰的电话面试 程序的地址空间(栈, 段, 堆, 静态数据段, bbs段, 代码段(.code)), const变量保存在那个段中; static无论是全局变量还是局部变量都存储在全局/静态区域,在编译期就为其分配内存,在程序结束时释放; const全局变量存储在只读数据段,编译期最初将其保存在符号
阅读全文
摘要:2018百度校招面试总结 目前走流程到二面, 写一波面经希望能够收到三面通知, 上天请赐予我运气和力量吧; 校招走流程的两个面试官都很nice, 比较随和, 面试体验非常好; 百度一面 在酒店一楼等面试官通知, 叫到名字就坐电梯去对应房间号面试; 交完简历, 面试官会安静的浏览简历(这时候比较尴尬,
阅读全文
摘要:2018网易的初级游戏开发工程师的面经 自我介绍: 先是自我介绍, 简单介绍了一下自己的项目经历, 会什么技术(自己认怂, 说了非科班出身, 技术不咋地); 然后问我, 有看那些计算机相关的书籍; 自己却只回答了一本书, 简直是失败呀; 好的自我介绍是一个好的面试的开始, 所以自我介绍一定要有底气,
阅读全文
摘要:2018百度云校招面试总结 在这个面试体验感很不舒服, 有压力面试的感觉; 总结起来人家对我的项目一点不感兴趣, 面后台的岗位都会很难; 现场笔试题 树的和为k的所有路径 树的先序遍历, 注意到递归结束条件 我代码写出来了, 但涂涂改改有点乱, 而且当时自己也不太确定, 就直接给面试官说给他讲思路,
阅读全文
摘要:剖析epoll机制 Linux epoll机制; select,poll,epoll之前的区别 写这篇文章的原因是, 上次百度面试被问到一个事件怎么添加到epoll的双向链表中的; 这个问题比较深入, 涉及到内核的实现问题, 今天就来理解一下; epoll和select/poll完全不同, epol
阅读全文
摘要:Hash算法 "Hash算法的原理" ; 决绝冲突的办法是: 线性探查法; 双散列函数法; 拉链法处理碰撞; "哈希原理及实现" ; "哈希表 Hash table, 也叫散列表" ;
阅读全文
摘要:高级树的总结 参考《邓俊辉的数据结构》 AVL(Adelson Velskii 和Landis)树 AVL(Adelson Velskii 和Landis)树是带有平衡条件的二叉查找树, 保证树的深度为O(logN); 左右子树具有相同的高度, 高度差最多差1, 用一次或两次旋转操作维持平衡状态;
阅读全文
摘要:muduo库学习笔记1 C++多线程系统编程 网上都说这本书很适合初学者入门学习, 我今天开始准备从头再来; 第一章线程安全的对象管理 对象的生与死不能由对象自身拥有的mutex(互斥器)来保护; 如何避免对象析构时可能存在的race conditon(竞态条件)是C++多线程编程面临的基本问题,
阅读全文
摘要:Linux内核之进程地址空间 内核中的函数以相当直接了当的方式获得动态内存: __get_free_pages 或 alloc_pages从分区页框分配器中获得页框; kmem_cache_alloc或kmalloc使用slab分配器为专用或通用对象分配块; vmalloc获得一块非连续的内存块;
阅读全文
摘要:Linux内核之内存管理 Linux利用的是分段+分页单元把逻辑地址转换为物理地址; RAM的某些部分永久地分配给内核, 并用来存放内核代码以及静态内核数据结构; RAM的其余部分称动态内存(dynamic memory); 整个系统的性能取决于如何有效的管理动态内存; 尽力优化对动态内存的使用,
阅读全文
摘要:内存寻址 操作系统本身不必完全理解物理内存; 理解分页单元的一般原理, 又要更好地研究内存寻址技术在其他平台是如何实现的; 内存管理其实可以分成三个部分: 内存寻址, 内核给自己分配主存, 内核怎样给进程分配线性地址; 三种内存地址 1. 逻辑地址(logical address): 包含机器语言指
阅读全文
摘要:内存管理之内存寻址 内存管理是迄今为止Unix内核中最复杂的活动 1. 虚拟内存: 所有新近的Unix系统都提供一种有用的抽象, 叫作虚拟内存(virtual memory); 虚拟内存可以理解为一种 逻辑层 ; 处于应用程序的内存请求与硬件内存管理单元(Memory Management Unit
阅读全文
摘要:进程间通信(InterProcess Communication) "讲得很好的链接" 进程间通信的概念 每个进程各自有不同的用户地址空间, 任何一个进程的全局变量在另一个进程中都看不到, 所以进程之间要交换数据必须通过内核, 在内核中开辟一块缓冲区, 进程1把数据从用户空间拷贝到内核缓冲区中, 进
阅读全文
摘要:epoll机制详解 "大牛的详解" epoll详解 1. 什么是epoll? epoll是为处理大批量句柄而作了改进的poll, 是性能最好的多路I/O就绪通知方法; 只有三个系统调用: epoll_create, epoll_ctl, epoll_wait; epoll_ctl epoll的事件注
阅读全文
摘要:面试中问到 RT thread嵌入式操作系统相关的问题 RT thread操作系统调度器的实现细节 RT Thread中提供的线程调度器是基于优先级的全抢占式调度: 在系统中除了中断处理函数、调度器上锁部分的代码和禁止中断的代码是不可抢占的之外,系统的其他部分都是可以抢占的,包括线程调度器自身。 系
阅读全文
摘要:重载和重写的区别 重载 重载的定义是: 允许存在多个同名函数, 而函数的参数列表不同(参数个数不同, 参数类型不同, const也是可以重载的); 重写 重写是指子类重新定义父类的方法; (多态 vitual 和 指针或引用实现) 从原理上分析 1. 重载:编译器根据函数不同的参数表,对同名函数的名
阅读全文
摘要:Linux内核设计与实现之虚拟文件系统的读书笔记 虚拟文件系统(VFS) 为用户空间提供了文件和文件系统相关的接口. 文件系统抽象层 内核在底层文件系统上建立了一个抽象层, 该抽象层使Linux能够支持各种文件系统; VFS提供了一个通用的文件模型; 解析用户空间执行一个write函数的过程: 该系
阅读全文
摘要:Linux内核设计与实现之内存管理的读书笔记 初探Linux内核管理 1. 内核本身不像用户空间那样奢侈的使用内存; 内核不支持简单快捷的内存分配机制, 用户空间支持? 这种简单快捷的内存分配机制是什么呢? 内核不能睡眠; 内核空间和用户空间分配内存是不一样的, 差一点在哪里呢? 2. 内核是如何管
阅读全文
摘要:搞清楚指针和引用的本质区别, 需要站在语言设计者的角度看待问题; 一切设计都是为了让问题变得更简单.
阅读全文
摘要:new delete malloc free关系总结 写在前面的话 这个系列的笔记总结是根据网上的两篇基础拓展而来的 1. "C++经典面试题(最全,面中率最高)" 2. "C++面试集锦( 面试被问到的问题 )" 面试中可以这样简单的回答 1. new/delete会调用对象的构造/析构函数, 而
阅读全文
摘要:视源面试总结 1. 虚函数列表的结构(vptr) RTTI (Run time type information 运行时刻识别) 虚表(virtual table)和虚函数表, 存放着该类所有的虚函数对应的函数指针; 所以虚函数是占用内存空间的 "虚函数的实现的基本原理" "深入虚表结构" 派生类虚
阅读全文

浙公网安备 33010602011771号