当前位置: 首页 > wzjs >正文

北京便宜的网站建设关键词优化设计

北京便宜的网站建设,关键词优化设计,网络建设公司的问答营销案例,天津交通网站建设C 进阶总复习 (1~15) 目的1. 介绍下程序从编写到可执行的整个过程2. C中的auto和decltype的区别3. 介绍下多态的实现原理4. C中的new[] 和delete[] 为什么一定要配对使用?5. C中malloc申请的内存 可以使用delete释放嘛6. 什么情况下会出现内存…

C++ 进阶总复习 (1~15)

    • 目的
      • 1. 介绍下程序从编写到可执行的整个过程
      • 2. C++中的auto和decltype的区别
      • 3. 介绍下多态的实现原理
      • 4. C++中的new[] 和delete[] 为什么一定要配对使用?
      • 5. C++中malloc申请的内存 可以使用delete释放嘛
      • 6. 什么情况下会出现内存泄漏
      • 7. C++ String内部是使用堆内存还是栈内存
      • 8. 平时开发C++程序的时候错误码使用的多还是异常使用的多
      • 9. C++中如何进行性能优化
      • 10. 模板的实现一定要放在头文件中嘛?
      • 11. 什么场景下使用继承 什么场景下使用组合
      • 12. 什么情况下会出现死锁 如何避免
      • 13. 如何实现线程池 给出大致思路
      • 14. C++针对返回值进行的优化
      • 15. C++中动静态库的区别

目的

写这一系列文章的目的主要是为了秋招时候应对计算机基础问题能够流畅的回答出来 (如果不整理下 磕磕绊绊的回答会被认为是不熟悉)

本文章题目的主要来源来自于 面试鸭
部分面试鸭上没有而牛客网上有的博主会进行查缺补漏

题目编号按照面试鸭官网题号方便大家寻找

题解大部分是博主根据自己之前的博客再加上部分网上的内容进行口语化的表述 如果涉及到省略的部分博主会提供自己或者其他人的博客链接

1. 介绍下程序从编写到可执行的整个过程

参考博客

预处理相关知识


程序从编写到可执行分为下面几个过程

预处理 编译 汇编 链接

首先是预处理阶段 在这个阶段的时候程序会展开头文件 宏替换 去注释等操作

到了编译阶段 这个阶段最大的作用就是进行语法词法分析 并对程序进行优化 看看有没有什么错误的代码 之后转化为汇编语言

汇编阶段则是将汇编语言转化为二进制语言

链接阶段则会生成一个可执行程序 它会合并段表 符号表合并和重定位

2. C++中的auto和decltype的区别


auto关键字用于自动推导变量的类型

而decltype关键字用于推导表达式的类型 它会返回表达式对应的类型信息而不进行计算

decltype关键字在模板编程的时候十分好用


3. 介绍下多态的实现原理

参考博客

多态原理


这里多态主要包括两点 一个是静态多态 一个是动态多态

静态多态的话 它的原理就是函数重载嘛 我们都知道在C语言链接阶段的时候是通过函数名来标记一个函数的(参数不论) 但是C++的话 参数的个数 顺序 类型都会影响函数标记 所以说这就是它的底层原理

然后动态多态的话就是通过虚指针和虚表来实现的嘛

如果说我们的类中有一个虚函数 那么实例化对象的时候 这个对象的大小就会多出四个字节 实际上就是多出一个指针的大小 这个指针就是虚指针

然后这个指针会指向一张表 我们把这张表叫做虚表每个类的虚表都不同 所以说自然会产生不同的函数效果

4. C++中的new[] 和delete[] 为什么一定要配对使用?


因为如果不这样做可能会造成内存泄漏的情况

我们一般来说是建议new[] 和 delete[] 配对使用的 但是说也有特殊情况

比如说如果我们new []了内置类型的话 我们使用delete删除就不会造成内存泄漏的情况

如果是自定义类型的话 就会造成这种情况


为什么自定义类型会造成而内置类型不会造成呢? 这里可以推断一下 可能是因为内置类型重载了opeartor new 和opeartor delete

5. C++中malloc申请的内存 可以使用delete释放嘛


不可以 malloc申请的内容应该使用free释放

虽然说delete底层是调用free函数 但是delete还做了更多的事情

它首先会调用析构函数 之后才会释放内存

如果说直接使用delete的话很可能会出现未定义行为 甚至报错

6. 什么情况下会出现内存泄漏

参考博客

内存泄漏


其实很多情况下都会出现内存泄漏

比如说指针原本指向一块分配好的内存 但是指针丢失了

比如说循环引用

比如说创建对象之后没有释放

那么如何解决呢?

当然也有很多种方法解决

我们可以使用内存泄漏检测工具 valgrind

然后使用RAII思想去检测

有一个良好的代码编程习惯等等

7. C++ String内部是使用堆内存还是栈内存

参考博客

string的模拟实现


模拟实现过string之后就会知道 string的底层其实维护了一个指针 这个指向会指向堆上开辟的空间

所以说string内部使用的是堆内存

8. 平时开发C++程序的时候错误码使用的多还是异常使用的多


错误码使用的比较多

因为错误码相对于异常来说

  1. 性能开销更小
  2. 更适合处理复杂的流程 能够只管的反应错误信息

但是错误码也有缺点

就是我们写需求的时候 每次写新的需求 大概率就要写新的错误码 就会造成代码臃肿 如果不注释 就很难知道错误码表示什么信息 可能出现意料之外的错误

9. C++中如何进行性能优化


这个可以从很多点上去回答

从代码编写的角度来说

  1. 选取合适的数据结构 比如说在频繁查询的场景下使用哈希表来存储数据
  2. 选择合适的算法 优化算法的时空复杂度
  3. 使用RAII思想 使用对象管理资源 避免资源泄漏

从架构层面上来说

根据需求来设计合适的架构 比如redis和mysql的冷热数据分离

10. 模板的实现一定要放在头文件中嘛?

参考博客

模板的编译分离


我们一般来说是简历将模板和生命和定义放在一起的

但是也不是没有办法比如说我们可以显示的实例化

这样子链接的时候就不会报错了

11. 什么场景下使用继承 什么场景下使用组合


我们在is a的关系下使用继承

在has a的关系下使用组合

就比如说人类和学生的关系 学生是人类 所以说这个时候我们推荐使用继承

比如说轮胎和汽车的关系 轮胎是汽车的一部分 所以说这个时候我们推荐使用组合

12. 什么情况下会出现死锁 如何避免

参考博客


多线程


这里其实是考察死锁的四个必要条件

  1. 互斥 一个资源每次只能被一个执行流使用
  2. 请求与保持 一个执行流因请求资源而阻塞时 对已获得的资源保持不放
  3. 不剥夺 一个执行流已获得的资源 在未使用完之前 不能强行剥夺
  4. 循环等待 若干执行流之间形成一种头尾相接的循环等待资源的关系

至于如何避免死锁就很简单了 我们只需要破坏死锁的四个必要条件即可

13. 如何实现线程池 给出大致思路

这里具体参考我的这篇博客

线程池

这个问题是个很宏大的问题 能够引出很多小问题 可以把上面那篇博客吃透之后再去回答

14. C++针对返回值进行的优化


在返回一个临时对象的时候 如果按照一般的方式 可能要经历

析构函数 拷贝构造

而C++优化可能会直接在返回值位置构建一个对象 这就是C++针对返回值的优化

15. C++中动静态库的区别

参考博客

动态库和静态库


动静态库的本质其实都是半成品程序 也就是说.o文件 也可以说是二进制文件嘛

静态库的话其实就是在程序链接的时候将这个.o文件打包到程序里面嘛

动态库的话是程序运行的时候将动态库加载到共享区去

他们之前的区别主要是 静态库打包到程序里面 它就不需要依赖外部文件了嘛 但是有利有弊就会造成程序的膨胀

动态库就是相反嘛 节省磁盘空间 减少冗余代码 但是说如果缺少了库文件就无法运行

打个比方的话就是 将库文件比作电脑嘛

静态库就是电脑放在宿舍里面 随时都能玩 但是占用空间

动态库就是电脑放在网吧 想玩要去网吧玩 但是占用空间小

http://www.dtcms.com/wzjs/333474.html

相关文章:

  • 做网站的空间是什么手机百度下载免费安装
  • 网站建设提成百度推广收费标准
  • 传奇手游代理平台seo查询源码
  • 广告毕业设计作品网站长尾词排名优化软件
  • 广东宇晟建设工程有限公司网站如何自己创建一个网站
  • 移动端比较好的网站html网页制作
  • 做视频网站带宽宁波seo哪家好
  • 昆山网页网站制作山西百度查关键词排名
  • 网站公司成功案例怎么写360优化大师官方下载手机
  • 坑人网站怎么做学技术包分配的培训机构
  • 小企业一键做网站网络营销和传统营销的区别和联系
  • 如何用自己电脑做网站页面百度搜索引擎服务项目
  • 网站制作的主要技术自媒体人专用网站
  • 大气的化妆品网站名如何注册一个自己的网站
  • 台州手机网站建设seo和sem是什么
  • 新闻网站伪原创同义词中山网站seo优化
  • wordpress菜单竖排seo网站推广经理招聘
  • 传统营销渠道有哪些seo研究中心官网
  • 标智客logo在线设计生成器优化大师怎么强力卸载
  • 做网站需要会写代码6百度浏览器
  • 微信网站开发平台企业宣传片
  • 网站制作职责站长平台百度
  • 做模特网站运营推广是做什么的
  • 怎么自己做网站赚钱上海网站制作开发
  • 青岛商城网站建设怎样做网站的优化、排名
  • 吴江做网站的公司百度seo关键词
  • 网赌网站怎么建设吴江seo网站优化软件
  • 企业营销案例百度seo关键词优化排名
  • 空间站建设太原seo自媒体
  • 深圳营销网站制作网上教育培训机构