🐧企业微信移动客户端一面凉经

经历了笔试加面试2小时极限拷打,人已麻

首先是45分钟手撕:
1、合并两个有序链表L1和L2,但稍微做了点变体,把L2合并到L1上,而且是在L1类内部函数做的,写起来稍微有点麻烦;
2、寻找循环递增数组中的最小值,要求用时间复杂度尽可能小的方法;楼主刚开始用O(n)的简单写法,后来面试官提醒才想起来二分查找,并且被追问如果数组是严格递增的应该如何修改代码?
3、手撕智能指针shard_ptr,背模板背的挺熟,但写起来稍微有点变体就会出毛病,只能说掌握的还是不够深刻
#牛客AI配图神器#
面试:
1、首先是让你讲解前面写的三道题的思路
2、C++内存管理中堆栈的区别;
3、malloc free 与 new delete的区别;
4、在模板类的析构函数中,应该用delete还是free?
5、左值引用和右值引用的区别;
6、Android 的生命周期
7、Android JNI开发中 java层的string数据如何传到C++层?涉及到的相关函数;
8、Java层 string类型的编码?C++层的编码?C++层接收到的数据需要拷贝吗?

项目:
1、项目架构
2、自研RPC架构是如何实现的
3、客户端发送的数据,服务器如何知道这个数据是什么类型的?
4、由于楼主项目是基于微服务架构的分模块系统,涉及异步多线程通信,还提问了在多个模块向缓冲队列放数据时需不需要加锁?应该怎么加锁?这一块儿我没怎么弄明白,得需要再好好研究一下;
5、后台C++线程和java层主线程是如何通信的?这一块儿我也同样没弄明白,也是被狠狠拷打了

总结下来,🐧并不太注重对八股的考察,移动客户端开发的难点(以Android JNI为例)应该主要在于java层和C++层如何通信、多线程间的通信机制,以及端云服务间如何通信
全部评论
你是项目中有提到JNI吗,怎么会涉及到JNI这块
1 回复 分享
发布于 03-19 22:46 上海
这是第几面?我面到第三面就挂了。可以交流一下吗?
点赞 回复 分享
发布于 03-19 13:46 浙江
太强了,大佬
点赞 回复 分享
发布于 03-19 13:45 浙江

相关推荐

03-23 23:38
已编辑
中原工学院 C++
查看13道真题和解析
点赞 评论 收藏
分享
03-24 11:15
已编辑
门头沟学院 Java
ai整理的有些细碎,积攒人品🙏🏻🙏🏻🙏🏻。话说一面面完三天了,一直没消息。官网状态也没更新,一直停在测评阶段,都没有显示到面试状态,有朋友知道咋回事吗😮1.项目拷打2.isModule 字段是怎么实现组件独立调试的?3.你觉得 Library/Base 层会不会随着业务变多而膨胀?怎么避免?4.Gradle 里 application 和 library 是怎么切换的?5.你对 Retrofit 和 OkHttp 源码了解多少?6.OkHttp 拦截器用的什么设计模式?7.现在的 API 回调怎么封装?有没有更好的方式?8.不用 EventBus 的话,登录状态怎么跨组件通知?9.了解 Kotlin 协程和 Flow 吗?10.了解 MVI 架构吗?11.StringBuilder 和 StringBuffer 有什么区别?12.HashMap 扩容机制讲一下?13.Java 8 为什么把链表头插法改成尾插法?14.HashMap 链表什么时候转红黑树?红黑树什么时候转回链表?15.讲一下 JVM 的 CMS GC 机制。16.了解 G1 垃圾回收器吗?和 CMS 区别是什么?17.讲一下线程池的核心参数。18.线程池任务满了会怎么走?拒绝策略有哪些?19.线程复用是怎么实现的?20.线程池队列空了,线程是什么状态?会一直死循环吗?21.核心线程数一般怎么设置?22.RecyclerView 缓存机制讲一下,几级缓存?各自作用?23.Handler 消息循环原理是什么?24.为什么 Handler 要用死循环?不循环会怎么样?25.Looper 死循环为什么不会卡死主线程、不会耗 CPU?26.你做过冷启动优化吗,具体做了哪些措施?27.能不能在子线程里面创建 View / 操作 UI?为什么?28.算法题:合并重叠区间全程面试了一个小时左右,面试官很温和 能感觉出来是个大佬,很懂技术,问的汗流浃背了
查看27道真题和解析
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务