2017 阿里巴巴 C++后台开发一面 3.14
下午4点接到一个杭州打过来的电话,阿里巴巴一面。持续时间半个小时。
面试官是阿里云KVStore组。
1.自我介绍,说一下项目
说了下之前在公司做的手绘几何图形规整输出的项目,提了下当时遇到的问题,以及用到的解决方法。也说了下现在组里面在做的表情识别的项目。讲了8分钟的样子。
2.C++STL标准库里的知识
sort的时间复杂度。
这个好简单,O(NlogN),然后我补充了下sort是快排的思想,然后是不稳定的排序算法,是基于泛型编程的思想,除了支持基本的STL中的数据类型,还支持自定义的数据类型进行排序。传进去的是迭代器或者指针,直接操作的地址,然后支持重载,第三个参数可以重写cmp排序规则。
Vector的增长模式。
首先vector是一种顺序容器,动态数组,在声明的时候可以调用构造函数直接开辟一定大小连续的空间。当空间满的时候,重新申请一个2倍的空间,将原来的所有数据考呗过去。
Map底层
红黑树,比较复杂,和multimap的区别。
3.平常怎么调试代码,主要在那个平台
平常主要用vs,Windows下,用过mac下的clion。编译出错,先看是不是语法错误,如果是逻辑错我,通过打log、打断点,定位错误的地方调试。
4.内存泄漏的问题
我只答出了数组越界,指针作用域之外指向地址不明,变野指针,复杂度太高递归次数太多爆栈。答得不好,后来查了下,发现还有好多没说到,C++内存泄漏的几种情况。
5.有了解C++的发展么
现在出到了C++17,上一个版本是C++14,17不了解,出了什么智能指针,方便管理内存。我用过的只有aotu关键字。
6.网络编程
问epoll和poll,最近在补,还没看到那块,说了下自己写的TCP的Socket编程,服务器端和客户端的业务逻辑。
7.Linux
同步互斥 文件加锁解锁,线程安全 猝。
我提问环节,让面试官介绍了下他所在部门主要做哪方面。
KVStore,做redis数据存储的,平常是在linux上对内核进行开发优化,也做一部分远程运维。
2017 阿里巴巴 C++后台开发一面 3.14的更多相关文章
- SpringBoot技术栈搭建个人博客【后台开发】
前言:在之前,我们已经完成了项目的基本准备,那么就可以开始后台开发了,突然又想到一个问题,就是准备的时候只是设计了前台的RESTful APIs,但是后台管理我们同样也是需要API的,那么就在这一篇里 ...
- 【分享】Java后台开发精选知识图谱
地址 引言: 学习一个新的技术时,其实不在于跟着某个教程敲出了几行.几百行代码,这样你最多只能知其然而不知其所以然,进步缓慢且深度有限,最重要的是一开始就对整个学习路线有宏观.简洁的认识,确定大的学习 ...
- ABP开发框架前后端开发系列---(14)基于Winform的ABP快速开发框架
前面介绍了很多ABP系列的文章,一步一步的把我们日常开发中涉及到的Web API服务构建.登录日志和操作审计日志.字典管理模块.省份城市的信息维护.权限管理模块中的组织机构.用户.角色.权限.菜单等内 ...
- Java后台开发精选知识图谱
1.引言: 学习一个新的技术时,其实不在于跟着某个教程敲出了几行.几百行代码,这样你最多只能知其然而不知其所以然,进步缓慢且深度有限,最重要的是一开始就对整个学习路线有宏观.简洁的认识,确定大的学习方 ...
- 后台开发:核心技术与应用实践 -- C++
本书介绍的"后台开发"指的是"服务端的网络程序开发",从功能上可以具体描述为:服务器收到客户端发来的请求数据,解析请求数据后处理,最后返回结果. C++编程常用 ...
- 给大一的学弟学妹们培训java web的后台开发讨论班计划
蓝旭工作室5月大一讨论班课程计划 课时 讨论班性质 讨论班名称 主要内容 主讲人 第一讲 先导课 后台开发工具的使用与MySQL数据库基础 后台开发工具的基本使用方法与工程的创建,MySQL数 ...
- discuz后台开发常用函数
showsetting()表单显示 返回值:无 参数: $setname - 指定输出标题,如:setting_basic_bbname, 自动匹配描述文字为:setting_basic_bbname ...
- php后台开发(二)Laravel框架
php后台开发(二)Laravel框架 为了提高后台的开发效率,往往需要选择一套适合自己的开发框架,因此,选择了功能比较完善的Laravel框架,仔细学来,感觉和Python语言的框架Django非常 ...
- php后台开发(一)hello world
php后台开发(一)hello world 环境安装 开发环境为Ubuntu 12.04,选择linux+apache+php的开发环境 安装 apache2 sudo apt-get install ...
随机推荐
- 通俗易懂的lambda表达式,不懂来找我!
lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...
- Web Components的概念和用法
参考链接:https://developer.mozilla.org/zh-CN/docs/Web/Web_Components
- 基于vs插件的abp代码生成器
工作了这么多年,一直都在小公司摸爬滚打,对于小公司而言,开发人员少,代码风格五花八门.要想用更少的人,更快的速度,开发更规范的代码,那自然离不开代码生成器.之前用过动软的,也用过T4,后面又接触了力软 ...
- ASP.NET Core WebApi使用Swagger
先在项目中引用Nuget包 Install-Package Swashbuckle.AspNetCore 安装之后需要在Startup.cs文件加入如下代码 public void Configure ...
- gz文件的压缩和解压
gz文件的压缩和解压 压缩: gzip filename 解压: gunzip filename.gz
- C++常见面试题:
一.进程和线程的概念和区别 1.进程是系统进行资源调度的基本单位 2.线程是系统进行运算调度(处理器分配{CPU.内存})的基本单位 二.进程间的通信 进程间的通信共有5种: 1.管道 通常指无名管道 ...
- java-selenium上传
一.sendkeys()上传 HTML源码 <td>sendkeys上传</td> <div id='pf'><input type='file' id='p ...
- [转]C#集合类型大揭秘
作者:撸码那些事 来源:https://www.cnblogs.com/songwenjie/p/9185790.html 集合是.NET FCL(Framework Class Library)的重 ...
- # IDEA相关知识
目录 IDEA相关知识 安装目录下: 配置目录下: 工程目录下: 名词解释 IDEA相关知识 安装目录下: bin:启动文件,配置信息,IDEA的一些属性信息 jre64:IDEA自带的运行环境 li ...
- liunx crontab 定时访问指定url
链接主机 crontab -e 打开文件,直接输入需要执行的脚本 1 9 * * * /usr/bin/curl http://www.baidu.com 语法解析 * * * * * /usr/bi ...