博客参考:C++中的多态和内部实现:https://www.cnblogs.com/qiaoconglovelife/p/5128523.html

虚函数表存放的地址:https://blog.csdn.net/jiary5201314/article/details/52627630

为什么STL和linux都采用红黑树作为平衡树的实现:https://www.zhihu.com/question/20545708

进程关系:父子进程之间的数据共享:http://blog.sina.com.cn/s/blog_1550922e60102z7gm.html

(1)C++语言中多态的实现:一个接口,多种行为(向不同对象发送同一消息,可以产生不同的行为)

1)编译时多态:函数的重载和模板实现,编译器在编译的时候,通过实参的个数和类型,选择最终调用的函数;

2)运行时多态:通过虚函数实现,基类的某个成员函数为虚函数,派生类又定义一成员函数,除函数体的其余部分都与基类的成员函数相同;

每一个含有虚函数的类,都会生成虚表(virtual table)。这个表,记录了对象的动态类型,决定了执行此对象的虚成员函   数的时候,真正执行的那一个成员函数。

对于有多个基类的类对象,会有多个虚表,每一个基类对应一个虚表,同时,虚表的顺序和继承时的顺序相同。

在每一个类对象所占用的内存中,虚指针位于最前边,每个虚指针指向对应的虚表。

3)虚指针存放在内存的哪里:虚函数表是全局共享的一个元素,即全局只有一个,存放在内存的静态/全局变量区

函数表类似一个数组,类对象中存储vptr指针,指向虚函数表.即虚函数表不是函数,不是程序代码,不肯能存储在代码段.。

.虚函数表存储虚函数的地址,即虚函数表的元素是指向类成员函数的指针。

(2)STL容器的底层实现:

1)map的底层实现用红黑树,而不用AVL

a)AVL是一个高度平衡的树,对树进行插入和删除更容易导致树的unbalance,因此AVL需要rebalance的概率更大,AVL插入最多也只需要两次旋转;而红黑树插入只要两次旋转,删除至多三次旋转;虽然使用AVL树搜索的效率非常稳定,但选取红黑树,是一个折中的方案;

b)插入一个节点导致树的不平衡,AVL和红黑树都最多只需要两次旋转操作;但删除节点引起树的不平衡,最坏情况,AVL需要维护从被删节点到root这条路径上所有节点的平衡性,因此旋转量级为O(logN),而红黑树至多需要三次旋转;

c)红黑树在需要大量插入和删除节点的场景下,效率更高;AVL由于高度平衡,所有搜索的效率更高;

d)map的实现是折中了两者在搜索,插入,删除的效率,总体来说红黑树更好;

(3)ucos操作系统和linux操作系统的区别

参考博客:ucos ii和linux操作系统的区别:https://blog.csdn.net/chen_geng/article/details/51556459

(4)全局变量在多任务之间可以共享吗?

1)对于多进程而言(父子进程和兄弟进程):如果其中一方调用了exec族函数(进程的代码和数据,全部替换,实际使用的物理内存也会重新申请),此时进程的代码段,数据段和堆栈都是独立的,没有任何关系;

2)对于父子进程,其全局变量遵循“读时共享,写时独享”的原则,因此,如果在父子进程中有修改全局变量的情况,系统会再给变化的全局变量分配不同的物理内存;

3)对于不同进程的线程,不能通过全局变量来通信;

4)对于同一进程的线程,可以通过全局变量来铜线的,它们共享进程的代码段、数据段、BSS段。页目录和页表使用进程的页目录和页表;

(5)进程之间共享的内容有哪些?

1)对于没有联系的进程之间的数据是相互独立的;

2)对于父子进程:相同的地方:全局变量,堆栈,环境变量,用户id,宿主目录,进程工作目录,信号处理方式;

不同的地方:进程id,fork返回值,父进程id,进程运行时间,闹钟,未决信号集;

可以理解成,子进程拷贝了父进程0~3G用户空间的内容,以及父进程的pcb,但是pid不同,然后再映射到物理内存;

(6)虚拟内存和物理内存的映射

参考博客:虚拟地址和物理地址的转换:https://blog.csdn.net/a8316124/article/details/56485642

汇顶软件开发初面总结20180921相关推荐

  1. 汇丰银行java框架_【汇丰银行Java面试】毕业生面试汇丰软件开发-看准网

    JSA一共四个section,第一个section相信大家已经well aware了,没错,就是your greatest strength and how will this support you ...

  2. 【面经】2019汇顶科技(固件开发)、地平线机器人(嵌入式)面经

    秋招也快结束了,回忆总结一下整个秋招过程中的一些公司的面试情况,也算是对自己这段时间的总结,也可以对其他人有一些借鉴吧.这篇主要是汇顶科技(固件开发)和地平线机器人(嵌入式)的面经. 汇顶科技 岗位: ...

  3. 2021届秋招嵌入式软件开发(联发科、海康威视、浙江大华、高德红外、汇顶科技、瑞芯电子、深圳有为)

    非985/211学校,研究生!本科专业机械设计及其自动化,设计到一点单片机知识,对于单片机没有项目实践经验,底子弱!后来考研,没有考上自己想去的学校,调剂到湖北双非院校继续读研,选导师的时候,师姐师兄 ...

  4. 汇顶科技【软件工程师】面经

    技术面(30min) 1.自我介绍 2.平时使用过哪些外设?简单说一下IIC的工作原理吧. 3.平时有自己做过电路吗? 4.高频电路了解吗,高频电路需要注意什么,为什么高频电路会产生影响,到底怎么影响 ...

  5. 软件开发基于JavaScript实现快速转换文本语言(繁体中文和简体中文)_javascript技巧

    软件开发基于JavaScript实现快速转换文本语言(繁体中文和简体中文)_javascript技巧 一般商业网站都有一个语言的需求,就是为了照顾使用正体中文的国人,会特地提供一个切换到正体中文的选项 ...

  6. 软件开发基于JavaScript实现快速转换文本语言

    软件开发基于JavaScript实现快速转换文本语言 一般商业网站都有一个语言的需求,就是为了照顾使用正体中文的国人,会特地提供一个切换到正体中文的选项(或曰"繁体中文").传统做 ...

  7. 软件开发工具(第1章:绪论)

    一. 软件开发工具的由来 计算机语言和软件开发工具的发展和历史 机器语言(第一代语言):难以记忆的.无意义的.二进 制的字符串 汇编语言(第二代语言)针对难以记忆的.无意义的.二进 制的字符串.人们试 ...

  8. 揭秘软件开发的达摩克利斯之剑

    ↑ ???? 万字长文不想看,那就听一听叭 ↑ 为什么你的程序总是出现 bug? 凭什么让改 bug 占据了你大部分的时间? 看完本文,保证你能设计出更稳定的程序,摆脱 bug 的缠绕,做项目更安心! ...

  9. 通过造车来了解软件开发模式

    看到 好的 东西, 老是忍不住收藏一下,谢谢作者:伯乐在线 - 艾凌风 的文章, 若有不妥,请留言. 1913 年,美利坚工业之神--亨利福特,发明了世界上第一条流水线,汽车工业从此进入了大规模生产的 ...

最新文章

  1. Java正则表达式校验工具类_【Java工具类】----正则表达式校验工具类
  2. flex的mxmlc命令行编译as3文件成swf
  3. 果园种树java_Java版淘金果园系统
  4. java 遍历map集合
  5. 笔记本电脑关机后指示灯还亮_汽车仪表常见指示符号之清洗液指示灯,灯亮了怎么办?...
  6. jmeter线程数并发数区别_如何确定Kafka的分区数、key和consumer线程数、以及不消费问题解决...
  7. 进阶15 IO流+字节字符输入输出+IO异常处理+属性集+缓冲流+各种编码+序列化
  8. 拉格朗日插值与拉格朗日反演
  9. 机器学习-随机森林之回归
  10. 更多免费资源解压密码_更多免费(几乎免费)法律图片资源
  11. 二分法和黄金分割法的区别和联系,附Python代码
  12. android夜间模式监控
  13. 恭敬观世音菩萨( 远离色欲)
  14. python学习——廖雪峰网站
  15. presentViewController: 如何不覆盖原先的 viewController界面
  16. 2013年第四届丘成桐大学生数学竞赛获奖名单
  17. jQuery炫酷3d背景视觉差特效
  18. 反向链接的类型(转)
  19. linux毁了所有数据,小心!数据在你不注意的时候居然偷偷损毁了
  20. 新装wamp后局域网无法访问的问题

热门文章

  1. 安装svn、git等托管软件
  2. my-innodb-heavy-4g.cnf
  3. dorado开发模式下实现动态查询
  4. Acer Travelmate T3290笔记本拆机指南
  5. Windows 7 / Vista 分区问题
  6. 简述select语句的完整语法_SQL里的各种语句的完整语法
  7. python控制台执行代码字符串_编写Python脚本以使用控制台命令执行
  8. 禁用mysql的sleep函数_MySQL的sleep函数的特殊特现象
  9. 查看PLC IP 端口_西门子828D数控系统X130接口通讯怪异现象(X130手动设置的 IP)...
  10. python正则r的作用_Python正则表达式,这一篇就够了!