前言

6.12日早上电话突击面试,当时我还在睡觉,迷糊中接到了电话,一开始以为他只是和我确认时间,没想到问完信息之后直接开始问问题了,我当时没反应过来,说我现在不太方便,等20分钟再电话面的。我没想到这居然就是一面

面完就约了16号的二面视频面,面完等了几天接到了21号的三面电话面通知,然后22号接到了23号hr面的通知,面完之后3天后也就是26号接到了oc

以下是我被问到的绝大部分问题,有那么几个实在想不起来了,不分先后

android基础:

  • activity的生命周期
  • activity的启动模式
  • service的生命周期
  • android进程和线程的关系
  • android进程间的通信方式
  • Handler机制简述,作用,要素,流程
  • Handler中消息队列为空时会发生什么情况
  • looper,消息队列,handler的数量对应关系,为什么
  • 消息队列delay之后会发什么
  • 内存泄露是什么,为什么会发生,常见的内存泄露的例子,怎么解决
  • 内存泄露和内存溢出的区别,什么会导致内存溢出
  • 什么是ANR?什么情况会发生?如何避免?怎样定位?
  • 设计模式,体现在android的哪些地方

java基础:

  • Hashmap各种,基本都问到了
  • Arraylist和linkedlist
  • 进程和线程的关系
  • 进程间通信方式
  • 线程间通信方式
  • 死锁
  • 实现线程安全的方式
  • synchronized关键字,底层,使用方式
  • synchronized和lock的区别
  • volatile和synchronized的区别
  • jvm结构,作用,各存放了什么数据
  • 运行时常量池
  • 讲讲对gc的理解
  • 4种引用,强软弱虚
  • gc算法,分代策略
  • 介绍下cms收集器(g1)
  • 类加载过程
  • 双亲委派模型介绍,原理,好处

网络:

  • 三次握手,四次挥手
  • tcp和udp的区别,传输数据时的区别,怎么传输
  • tcp可靠性
  • 滑动窗口,流量控制,拥塞控制(4种方法)
  • 输入url到显示主页的过程(基本每面都问)
  • http和https
  • https数据传输加密过程(基本每面都问)
  • 什么是网络字节序,为什么可以保证在传输时能够被正确解释

算法:

  • 海量数据topk问题,要详细讲(小根堆怎么实现的,快排怎么实现的)
  • 十进制转十六进制
  • 输入一篇文章,再输入若干关键词,输出这些关键词至少都出现了一次的最小范围

最后:

强烈建议多看源码,特别是比较关键的,很多问题都是从源码里抠出来的,比如handler。。。

因为有两面都是电话面,所以代码实现基本集中在视频面,3面是让口述的算法,要详细原理实现的那种

其他的我觉得都算ok,面试官挺好的,特别是3面面试官,我当时还调侃他腾讯双休咋你还是周日面试的呢

自己也看了很多别人的面经,特别是海量数据topk问题,3面前看到一个面经有提到,然后去了解了下,3面真被问到了,不然就扑街了,所以也把自己的面经和学习方法分享出来,给后来人留点有用的东西

祝愿大家都能顺利通过面试,拿到理想的offer

学习:

  1. 读懂源码和原理,自己也能写;

  2. 一定要通过烂笔头记录下来,比如博客;

  3. 不断完善自己的知识体系,要有广度,而且在某些方面还要有深度;

  4. 通过实战不断磨练

以下是我学习的资料,供大家参考,有需要的可以在文末文末免费领取

1.2020大厂面试高频知识点

  • 图片
  • 网络和安全机制
  • 数据库
  • 插件化、模块化、组件化、热修复、增量更新、Gradle
  • 架构设计和设计模式
  • 性能优化
  • Android Framework
  • Android优秀三方库源码

2.Jetpack架构组件从入门到精通

  • Android Jetpack - Navigation
  • Android Jetpack - Data Binding
  • Android Jetpack - ViewModel & LiveData
  • Android Jetpack - Room
  • Android Jetpack - Paging
  • Android Jetpack - WorkManger
  • Android Jetpack架构组件之Lifecycle
  • Android Jetpack Compose 最全上手指南

3.Framework精编内核解析

主要内容包含:

  • 深入解析Binder
  • 深入解析Handler
  • Dalvik VM 进程系统
  • 深入解析 WMS
  • PackagerManagerService

4.Kotlin强化实战(附Demo)

  • 第一章 Kotlin入门教程
  • 第二章 Kotlin 实战避坑指南
  • 第三章 项目实战《Kotlin Jetpack 实战》
  • 从一个膜拜大神的 Demo 开始
    Kotlin 写 Gradle 脚本是一种什么体验?
    Kotlin 编程的三重境界
    Kotlin 高阶函数
    Kotlin 泛型
    Kotlin 扩展
    Kotlin 委托
    协程“不为人知”的调试技巧
    图解协程:suspend

5.Android设计思想解读开源框架

  • 热修复
  • 插件化
    -组件化框架设计
  • 图片加载框架
  • 网络请求框架
  • RXJava 响应式编程框架设计
  • IOC 架构设计
  • Android架构组件Jetpack

6.NDK模块开发

  • NDK 模块开发
  • JNI 模块
  • Native 开发工具
  • Linux 编程
  • 底层图片处理
  • 音视频开发
  • 机器学习

7.Android源码解析

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。

以上这些内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者点击 【这里】 查看获取方式。

睡梦中面试腾讯 pcg 移动端开发, 一+二+三+hr面(已oc)相关推荐

  1. 2019暑期实习面试 - 腾讯PCG移动客户端iOS开发面试

    基本信息 事业群:PCG 岗位:移动客户端开发(iOS.Objective-C语言开发) 实习时间:6月份之后的暑期实习 面试日期:3月30日 - 3月31日 offer call:4月10日(看到很 ...

  2. H5移动端开发基础(三)自定义滚动条、实战-音悦台

    自定义滚动条.实战-音悦台 自定义滚动条 js封装 transform.js tween.js scrollBar.js 音悦台 适配 样式 html js 自定义滚动条 *{margin: 0;pa ...

  3. 2021腾讯魔方工作室暑期实习一面+二面+HR面(已OC)

    一面: 36min 项目介绍 在其中做了什么,遇到什么难点(AI,回答动态寻路) 介绍一下行为树有哪些结点 事件通知中心怎么实现 C++多态怎么实现 虚函数实现机制 Map和hashmap 拷贝构造函 ...

  4. cvte面试经验Java_CVTE Java Web后台开发 一\二面面经

    CVTE Java后端开发 一面 1面是突然的电话面,时长57min,因为是突袭,所以没有录音,只能靠回忆来写写了. 1.自我介绍 2.简单的对项目做个介绍. 3.为什么要使用JWT?为什么不适用se ...

  5. 如何提高码农产量,基于ASP.NET MVC的敏捷开发框架之移动端开发随笔二

    前言 在前一篇文章中我已经做过开篇,接下来的随笔会详细讲一下我们的开发框架是如何实现的,专业的事由专业的人来讲,以后就由我们的高级码农小李英文名查尔斯和他的师父厂长(因为姓陈,酷爱摄影,我们的文艺片都 ...

  6. uni-app卖座电影多端开发纪实(三):MVC

    @引子 这一部分就与纯Vue开发毫无二致了! 这里分别用mock数据和真实后台数据举例 @数据层开发(mock) 准备一个mock数据 mock/cinemas.json {"status& ...

  7. 面试腾讯Java后台岗,处女面秒挂,17天后竟然拿下字节跳动offer

    BAT一直是互联网人包括程序员梦寐以求的公司,可相对这三个公司的进入门槛很高,无奈只能望门兴叹,所以只能苦练技能才能有机会去敲开BAT的大门.下面是一位Java程序员的亲身经历,面试腾讯PCG部门处女 ...

  8. 2016届360公司PHP服务端开发笔试和面试之所得所感

    这是一篇叙述自己在360公司参加笔试和面试的过程,可能面试的职位并不是你所学的方向,但是如果你能从中学到些什么或者吸取我的教训,那么作者就非常知足了.本着"学习别人是怎么失败的,活着出来的人 ...

  9. 移动端开发-响应式页面

    声明 现在开发中,响应式页面使用地会比较少.今天对我们来说,最大的收获是: 学会如何去使用前端 UI 框架. 媒体查询 Bootstrap 框架,学会怎么去用,而不是怎么去做东西,因为后面有更好的框架 ...

最新文章

  1. SAP WM初阶LQ02报错 - Movement Type 901 for manual transfer orders does not exist -
  2. GPRS流量计算方法(TCP/IP)
  3. 管理神话2:专家只有权这样做
  4. android中几种定位方式详解
  5. Gym - 101471D Money for Nothing(决策单调性+分治+贪心)
  6. 【MySQL】MySQL出现Waiting for table metadata lock的原因、解决方法
  7. 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)——Web网络系列学习笔记
  8. 代码混淆android.mk,利用ollvm进行代码混淆
  9. 离线环境下安装pyhanlp
  10. linux权限设定的判定,linux中如何通过脚本判定文件的群组权限
  11. python基本网络爬虫代码_Python实现网页爬虫基本实现代码解读
  12. oracle 安全备份与rman_Oracle RMAN备份与还原注意事项
  13. Mac卸载Anaconda
  14. 计算机系统变慢的原因,计算机系统运行速度变慢4大原因
  15. 尴尬!亚马逊的AI情绪识别软件竟然混淆情感表达
  16. 百分点感知智能实验室:声纹识别技术发展及未来趋势研究
  17. 网络攻防技术——XSS实验
  18. tkmybatis 子查询_【10/21】南池袋送餐桌和椅子 收纳盒子 洗衣机 | 下落合站送洗衣机...
  19. 浏览器汇总、可信浏览器
  20. IllegalArgumentException 异常

热门文章

  1. imx6ul之按键驱动添加
  2. 5G年代大数据改动对运营商精准大数据的影响
  3. 工程物料管理信息化建设(二)——材料编码
  4. 输入带空格的字符串(C语言)
  5. 2004年Delphi Informant杂志读者选择奖 1
  6. android添加新语言之缅甸语
  7. vb遍历文件夹(含子文件夹)
  8. Python 2进制转16进制
  9. 12864点阵型液晶显示屏的工作原理
  10. MPU6050杨桃电子代码