阿里一面面经C++,攒个人品

面了一个半小时,感觉嗓子都要哑了……
Q:做个自我介绍吧
A:聊项目
……(聊了挺久)
Q:我看你这边github上有一个协程库,能介绍一下协程的概念吗?
A:协程,用户级,轻量,快,效率高,但是不结合多线程难以利用多核
Q:能说一下怎么实现的吗?
A:讲了一下基于ucontext怎么切换上下文
Q:协程和线程的区别?
A:调度比较快,不用进内核。单Schedual难以利用多核?
Q:内存上有什么区别?
A:同一个CPU上多个协程不会产生临界区竞争。
Q:协程切换的时机?
A:定时器,文件阻塞,拿到锁阻塞,函数调用的时候。
Q:你写的库的对于使用者有什么优势?
A:……你可以用我的APIbalabala……
Q:给我一个用你的协程库的场景吧??
A:YY了一个轮询读文件的场景。
Q:你这个说到了你维护了一个栈,这个栈是干什么的?栈的维护是你自己做的吗?
A:维护每个协程的上下文。我就只需要管理这块内存就可以。不是很完善……
Q:上个读文件的场景,什么时候才会阻塞?
A:设一个NONBLOCK位,在出错读到EAGAIN的时候就切换出去。
Q:如果两个都阻塞了呢?
A:那就没辙了……举了一个很多fd用epoll轮询的场景。
Q:从你个人角度有没有遇到过比较困难的场景?
A:balabala……
Q:说说你实习的项目?
A:balabala……
Q:说说map with mutex和sync.Map的区别?
A:Mutex是悲观锁,而且那个粒度比较大。sync.Map是带缓存的,体验和CAS差不多。
Q:聊点基础的吧
A:好……
Q:sizeof和strlen的区别?
A:你们都懂得
Q:一个int大概多大?
A:32位4个字节,64位8个字节
Q:int在内存中字节排布?
A:小端序
Q:虚函数指针什么时候会出现?
A:在有虚函数的时候~
Q:static的作用?
A:都懂得,这里不展开了
Q:多个进程同时监听一个UDP端口会怎么样?
A:不懂……
Q:你可以了解一下这方面。进程的内存结构?
A:内核、栈、动态链接库、堆、静态区、代码段、保留区
Q:静态变量和全局变量在哪个区?
A:静态区……
Q:++i和i++的区别?
A:++i效率比较高。
Q:虚基类和普通基类的区别?
A:菱形继承问题
Q:空类的大小?
A:1byte
Q:为啥?
A:不懂…
Q:引用和指针的区别?
A:都是用指针实现的。
Q:进程间通信?
A:socket, 管道,消息队列,共享内存
Q:TCP三次握手?
A:讲了讲(忘了讲状态转移)
Q:TIME_WAIT?
A:讲了讲……感觉面试官不是很满意?
Q:CLOSE_WAIT呢?
A:讲了讲……吐槽了一下一般都是代码写得有问题(逃
Q:epoll有几种类型?
A:ET,LT。
Q:调试程序用什么?
A:gdb,log,valgrind, vs
Q: CPU高了怎么看?
A:free+pprof,看火焰图
Q:其实C/C++也有类似地工具
A:嗯
Q:coredump有了解过吗?
A:只用过,不知道原理
Q:你可以再了解一下呀。这个还是很重要的。
A:好的
Q:hash冲突怎么解决?
A:拉链和线性探查
Q:还有啥要问我的?
A:你们这边比较青睐有什么技术积累的人?
Q:balabala…C/C++

小哥人超级好,讲话也好听ORZ
大概一小时后二面通知,说要视频面……还要现场写代码,慌得一批……
#面经##秋招##阿里巴巴##C++工程师#
全部评论
老哥稳啊,二面通知都到了,我这边还挂在简历评估的状态,心累
点赞 回复 分享
发布于 2018-07-26 23:33
楼主什么岗
点赞 回复 分享
发布于 2018-07-26 23:51
看到中间觉得有点懵,原来是C++。。。
点赞 回复 分享
发布于 2018-07-26 23:54
请问楼主哪个部门?
点赞 回复 分享
发布于 2018-07-27 00:00
楼主大神啊,手撸协程库
点赞 回复 分享
发布于 2018-07-27 01:23
老哥 开学我大三  想问问你怎么学的  都学什么了  看书还是视频  实战比较多吗  有没有资源  谢谢
点赞 回复 分享
发布于 2018-07-27 03:33
阿里中间件还是蚂蚁中间件?
点赞 回复 分享
发布于 2018-07-27 08:03
一小时就二面通知了。厉害啊,大佬
点赞 回复 分享
发布于 2018-07-27 08:55
所以面试官还是会看一下GitHub的,全是fork😂
点赞 回复 分享
发布于 2018-07-27 09:04
int类型在32位和64位上都是4字节吧。
点赞 回复 分享
发布于 2018-07-27 11:23
我投了阿里云的C++,结果来了一个JAVA 的,问我愿不愿转JAVA
点赞 回复 分享
发布于 2018-07-27 13:45
阿里云什么组的?我也投了阿里云了,二面过了还没通知
点赞 回复 分享
发布于 2018-07-27 16:23
那个同时监听一个端口是想问惊群吧
点赞 回复 分享
发布于 2018-08-01 20:59

相关推荐

头像
10-23 11:09
已编辑
上海交通大学 Java
纪念并记录下秋招第一个二面,发发面经,攒人品,许愿oc!时间线:9.18号投递9.20号笔试+AI面试,3道编程题A了2道10.9号一面,应该是被某部门捞了,但也是后端开发10.12号二面10.17号hr面10.23发现回人才库(罢了罢了)一面:自我介绍你的研究方面和岗位不是很匹配,怎么看详细描述浏览器输入网址到看到网页的过程刚刚提到的HTTP协议属于OSI的第几层,是基于什么协议的介绍TCP协议的三次握手TCP协议用哪些方式保证传输信息的可靠性什么是TCP的拥塞控制(慢启动、拥塞避免、快重传、快恢复)TCP在什么情况下判断数据包丢失,触发快重传(发送方连续收到3个相同的ACK)TCP流量控制的算法(滑动窗口)除了窗口,还有哪些限流算法(当时没回答出来,复盘时想起应该还有令牌桶算法和漏桶算法)HTTP和HTTPS请求及协议的区别HTTPS用到的安全协议是什么使用的加密算法是对称加密和还是非对称(当时回答非对称,复盘时想起应该是在证书验证阶段使用非对称,后面的数据传输为对称加密)私钥谁保管进程与线程的区别知道协程吗,协程与进行、线程的区别进程的基本状态进程间的通信方式Linux下的IO模型(当时只回答了BIO和NIO)除了BIO和NIO,你知道还有多路复用吗你知道Linux下的系统调用吗(不清楚,面试官补充是select、poll这种,但是确实没准备到)Spring的IOC是什么Spring对象是线程安全的吗?(回答,Spring的bean一般是单例的,单例的无状态的bean是线程安全的,如果是有状态的,即有可变的成员变量,就不是线程安全的)如何解决有状态的bean的线程安全问题?(简单方法将可变的成员用final修饰变为不可变,但是推荐使用ThreadLocal保存可变成员变量)有什么办法定义多例bean介绍ThreadLocal底层数据结构父线程定义的TreadLocal如何在子线程获取到(这个不会,瞎说的,面试官有引导,但是依然没说对)子线程中把某个变量清理掉,父线程还能拿到那个变量吗(这个也不会)线程池的重要参数核心线程是否会被回收(不会被回收)拒绝策略有哪些抢购场景如何设计线程池(瞎说的)锁的可重入性公平锁和非公平锁的区别MySOL的事务隔离级别Spring如何实现事务如何使用AOP技术,简单地说就是把两个插入同时放到一个事务中你知道RPC吗(不知道)你知道CAP吗(不知道,RPC和CAP都没准备到,应该是Spring cloud中的,后面反问的时候面试官也提到对Spring cloud相关的一套东西都不了解)手撕:选择数组中第K个大的元素,我直接Array.sort,然后输出k-1过了反问:多久可以收到下一次面试通知面试官提出一个我的问题:只了解基础的东西不够,实际工作中基础体现得不是很明显,大部分还是实际使用的中间件(确实,没有实习,实践经历是硬伤啊!)工作地是否有问题因为手撕太简单了而且笔试过了好久才有的一面,部门也跟投递时不同明显被捞,我以为是kpi面,但是上午面完,下午就收到了二面。二面:聊项目(一个大模型相关的,跟后端开发没有关系,但是因为跟毕设相关很熟,自我感觉回答得不错,第一次二面觉得很神奇)手撕:leetcode026重排列表反问:还有几面部门业务上午面的,中午收到HR面10.17 HR面一些比较基础的问题等待oc! (等个鬼 10.23回人才库) #美团# #美团求职进展汇总# #美团面经#
点赞 评论 收藏
分享
10-17 11:55
已编辑
西北大学 C++
#软件开发笔面经#  base青岛,C语言数据库开发二十多分钟介绍项目,面试官估计是大厂回来养老的,虽然面试的是纯C数据库开发,但看我简历上有,跟我聊了一堆Go语言微服务,分布式存储之类的😂一共面了一个小时多。MySQL事物的四大特性如何降低数据库读写压力缓存的使用问我C语言数组和指针相互转化那一堆魔幻操作(建议看C和指针这本书)内存分区,C语言内存管理,要注意什么野指针,悬垂指针什么情况下会发生段错误vector底层原理C语言如何实现动态数组malloc和realloc有没有用过gdb调试(我回答都是用CLion连过去,就没再追问)C++和C有什么区别Go语言和C有什么区别协程、线程、进程的区别,协程有什么优点C有协程库吗(只说了个cppcoro)Go语言协程如何通信,channel的设计思想etcd如何使用raft协议(我说我只知道这是个分布式一致性协议,没再追问)Go语言如何实现监听channel(回答用select套for里面)两道算法题口述思想如何插入链表节点leetcode上数组里分离奇数偶数那道Go语言有什么优势,对比Java和C用没用过网关能不能提前来实习反问:主要业务是什么(数据库内核引擎和相关产品开发)使用C++吗(不用,用纯C)使用的C语言标准是什么(C98)多久出结果(回答看人力资源那边安排)面试完一刷新:面试通过,进HR面了HR面已约更新:HR面通过,已发测评。更新:录用综合评估中更新:已发意向
点赞 评论 收藏
分享
评论
10
154
分享
牛客网
牛客企业服务