2020/9/26整理

客户端0基础的,感觉没问个啥

一面/2020-8-12

  • Java相关,Java垃圾回收,Java从编译到加载经过的步骤,Java反射的机制
  • 计算机网络,每层各有什么协议,讲一讲http1.1,http2.0,http3.0各有什么改变,tcp可靠传输,http控制缓存的头部字段,有什么安全威胁。
  • 操作系统,线程与进程,单核处理器怎么实现多线程。
  • 数据库,怎么回滚,怎么优化查询。
  • 向量和链表的使用场景
  • 算法题:从非负无序数组中找到缺失的最小非负整数。
  • 反问:部门做什么业务的。

二面/2020/8/20

  • 项目相关
  • tcp、udp相关,滑动窗口
  • 线程、进程相关,堆栈相关
  • volatile,synchronized
  • Object中的方法,equal和hashcode的关系
  • 上线做道题
  • 接雨水那道,我先用单调栈解出来了。
  • 把空间优化,然后我勉勉强强用双指针解出来了。
  • 你对移动客户端了解有多少
  • 以后职业规划,为什么想做客户端
  • 秋招有什么进展。

三面/2020-9-2

  • 寒暄一下,base深圳可以吗,为什么不考研,介绍下你的专业,我看你主要用Java的,会c++吗。
  • 本地ide写代码,单链表每k个一翻转,剩余不足k个,保持原位置,自己定义数据结构,自己写测试用例。
  • Java中软引用,弱引用说一下。垃圾回收说一下。
  • static修饰的代码块什么时候执行
  • 类加载过程
  • 线程与进程的区别,进程内存中有哪些东西,堆栈有什么区别,哪个效率更高。多线程编程,怎么保证线程同步。
  • 内核态和用户态了解吗,内核态可以访问哪些资源。
  • 网络:MTU了解吗?ping是用到什么协议
  • 数据结构:通讯录程序,打开时,将数据库中的数据读到内存,你用什么数据结构来存,保证查询、添加、删除、排序比较高效。
  • 面试官:我这里给你过了,等hr面吧,哦对了,你是一点都不会c++吗(真不会)

总结:问了好多底层,感觉完全脱离了Java技术栈(我好菜)。面了各个大厂的客户端和服务端,我发现,客户端比较喜欢问操作系统的底层包括jvm甚至到汇编层面,服务端喜欢问各种框架中间件数据库linux,当然不管哪个一般都是要来道算法题的。

HR/2020-9-19

简单的背景调查,具体问题看上面链接

18年的,有点老了,但是可以看下

一面

问C的有点多,因为是面试官是iOS的

  • 谈谈你学习过的架构模式 MVC MVP MVVM
  • 一个Union类型,共有一个int类型、Float、Double类型的字段,请问在32位的CPU创建时需要占用多少字节?
  • Union和Struct的区别
  • 谈谈你所了解的C语言的内存管理
  • 说说你了解的程序设计模式,知道多少说多少
  • 说说TCP和UDP的区别,你认为QQ的实现是使用TCP还是UDP?
  • 谈谈你了解的C语言的编译过程
  • 进程和线程的区别
  • 谈谈你对Viper架构模式的了解
  • Fiddler的工作原理解释一下
  • 死锁产生的原因以及解决办法
  • 进程的调度算法有哪些,分别解释一下?
  • Android程序共享数据的方式有哪些?
  • Android的性能优化
  • Handler和HandlerThread的区别
  • 八皇后问题了解过吗?具体怎么实现的?
  • 解释一下异步编程,说说它的应用
  • Android应用的启动过程

二面

  • 多线程了解吗?
  • 多线程如何实现通信?
  • 多线程如何实现线程安全?
  • 多线程如何实现同步机制?
  • 进程间的通信方式?
  • 谈谈你对架构模式和设计模式的理解。
  • 现在让你设计一个字典,说一下你的设计思路。

三面

  • 请你画出MVP架构图,并解释一遍它的运作流程。比如网络操作
  • 解释一下页面展示数据获取的数据来源。
  • 多线程会导致什么问题,应该怎么解决?
  • Android进程的优先级是怎样的?
  • 说一下Activity的生命周期
  • onStar和onResume方法的区别是什么?什么时候用onStart,什么时候用onResume.
  • 说一下冒泡排序和选择排序的区别?
  • 冒泡排序最优的时间复杂度?
  • 一棵没有特定顺序的二叉树,如何存放在文件中?
  • 手写代码,给一个int的数组,将其移动k位(使用交换的思想)。如array = [1,2,3,4,5], k = 2, 则移动后的array为[4,5,1,2,3]
  • 设计QQ传文件功能,并画出模块设计图。
  • 说一下防火墙穿越的实现原理
  • 加密算法和加密原理
  • Https实现原理
  • 手写代码,无限大整数转16进制
  • 讲解一下登陆时密码加密过程

PS:感觉难度好高,都怀疑是社招的


找不到手Q的了,再总结下腾讯的,可以结合下之前发的牛客网的总结,下面都是网络上的,以CSDN为主

Android面经| 问题归纳

2020春招PCG

简历面-应用宝

  • String,StringBuffer,StringBuilder哪个是线程安全的?String与StringBuffer内部实现上有什么不同?用的时候怎么选择?
  • HashMap的内部实现能说一下吗?
  • 单例模式了解吗?线程安全的单例模式说一下
  • JVM虚拟机的内存分区有哪些?堆和栈的区别?
  • TCP/UDP的区别?
  • TCP三次握手和四次挥手过程说一下
  • HTTP网络请求经过五层的解析,每一层分别是怎么解析的?
  • Android方面,如何跨进程通信?跨进程通信的方式有哪些?Binder底层原理说一下
  • 跨线程怎么通信?
  • 那消息队列了解过吗,谈谈其内部实现原理?Handler的创建和MessageQueue/Looper有什么联系?
  • 内存泄露的原因说一下,怎么检测内存泄漏?有没有使用一些工具检测内存泄漏的经验?
  • 知道设计模式吗?说一些你用过的设计模式
  • View的绘制过程你了解过吗?说一下
  • 当用户手指点击屏幕的时候,会产生什么事件?,onClick()方法在什么事件触发,在哪个地方调用

一面-应用宝

  • HashMap了解吗?说说内部实现原理
  • java四类的线程池是哪四类?分别介绍下
  • java四钟引用类型
  • 单例模式介绍下
  • GC机制垃圾回收算法有哪些?
  • 说一下分代收集算法的详细过程
  • TCP三次握手与四次挥手
  • Android跨进程通信方式有哪些
  • Android跨线程方式有哪些
  • 消息队列实现原理介绍下
  • 内存泄漏的原因说一下,用过什么工具检测内存泄漏?线上的工具用过吗
  • View绘制的原理了解吗?介绍下
  • 了解过设计模式吗?说说你常用的设计模式有哪些
  • ListView和RecyclerView的区别了解吗?说说RecyclerView的缓存机制
  • View事件的分发机制知道吗?
  • 组件化和热修复,你了解过这些技术吗
  • Flutter你研究过吗
  • 有什么问题想问我的?

二面-应用宝

  • 上来先和我聊十来分钟的项目经历,项目的问题就因人而异了,没有参考价值,就不放出来了
  • Mysql联合主键在什么情况下会失效,达不到快速索引的效果?
  • Linux了解吗?
    只会使用命令,没深入了解过(???懵逼状态2)
  • 考虑10亿条数据,里面存储的都是数字,要你设计一个思路,找出里面相同的数
  • 什么时候能来实习,能实习多久?
  • 你有什么想问我的

GM-应用宝

  • 你提到你之前负责过4个月的后端开发,是什么让你转到了现在的客户端开发?
  • 你从现在到以后的职业发展规划?
  • Android你主要是对应用层像View动画这方面了解多一点,还是对Android底层这方面了解多点?
  • 你底层代码看过些什么?
    • 把我最近看过了底层知识都列举了一遍,View事件分发机制,View重绘机制,消息队列,Binder工作原理,Android四大组件的工作过程什么的。
  • 那你说说消息队列怎么实现的吧

2020春招IEG

一面-

  • 学校有哪些专业课,说一下?学过哪些语言?
  • 了解数据结构吗?说说有哪些数据结构?
  • HashMap内部实现是怎么样的?扩容机制是咋样的?ArrayList的扩容机制呢?
  • 数组和列表的区别是什么?ArrayList和LinkedList的区别?
  • 双向链表怎么判断形成了环路?如果用代码实现怎么判断?
  • 问个算法题,如何合并两个有序的数组,然后输出新的数组,思路说一下,用本地IDE敲一下吧
  • 问下计算机网络基础吧,TCP/UDP的区别是啥?UDP的应用场景?
  • OSI五层协议分别是哪些?TCP是第几层协议,HTTP呢?HTTP协议与TCP协议的关系
  • get/post请求的区别?
  • 响应状态码:1-5开头的状态码分别表示什么意思?206状态码知道什么意思吗?404知道吗?
  • 你是用JAVA多点吧?问些JAVA基础,垃圾回收机制知道多少?介绍一遍
  • 泛型用过吗?你是怎么用泛型的?
  • 问些安卓方面的问题吧,安卓四大组件分别是哪些?
  • Activity的生命周期说一遍?当用户按下home键时,Activity会经过哪些生命周期?如果是从一个Activity切换到另一个Activity呢
  • 消息队列知道吗?介绍下内部原理
  • WebView知道吗?

二面

  • 先做个简短的自我介绍吧
  • 你简历上提到了2个项目,你能先和我详细介绍下你的第二个项目吗?(接下来就是项目问题了,主要问项目主要是实现了什么功能,怎么实现的?项目架构是咋样的,项目大概问了15分钟吧)
  • 你项目用到了FFMPEG来实时推流,那FFMPEG内部的实现原理那些你去了解过吗?(这里我回答说我在写这个项目的时候看过,只是时间太久远了,很久没看过这部分,所以现在也忘得差不多了)
  • 你项目用WebSocket来全双工通讯,那WebSocket能给我介绍下吗,Websocket和Http的联系?它是基于TCP协议还是UDP协议?它是长连接的话,服务器如何保活?
  • 了解linux吗,知道linux…(linux我不熟,只知道命令,所以这部分跳了)
  • Mysql知道吗?索引是用来干啥的?Mysql是怎么通过索引快速查找元素的?
  • 什么时候会触发操作系统的分页机制?
  • 进程和线程的区别?守护线程是什么线程?
  • 快排的时间复杂度是多少?它是稳定排序吗?为什么不稳定?
  • 说说你用过的集合,都有哪些集合?TreeMap看过吗?和HashMap的区别?
  • JVM内存分区中,堆和栈的区别?
  • 有过并发的经验吗?线程池的工作流程说一下

腾讯文档2020

一面

  • 算法题:假期、翻转数列,还有一个名字忘了,但其实就是写个快排
  • 快速排序的优化方法(提示基准值)
  • Java底层了解什么?
  • Java程序执行的是什么?
  • JVM内存结构
  • 多线程需要注意什么?(细讲了java中的锁机制)
  • 详细讲一下项目
  • 项目中担任的角色
  • 各种实现的细节
  • 多线程修改UI怎么处理
  • 每个项目都可以讲一讲…
  • Java中各种数据结构的实现(细讲了HashMap原理)
  • 各层熟悉的协议讲一讲(HTTP, DNS, TCP, UDP, ICMP, ARP…)
  • 还有什么你了解的我们没问的?(操作系统:中断, 进程调度, 分页分段, 虚拟内存…)

二面

  • 讲了两个项目,问了多线程的细节
  • Synchronize和volatile
  • sleep和wait的区别
  • 生产者消费者模型,java中的三种实现
  • JVM内存结构
  • OOM发生的位置,原因
  • 知道哪些设计模式,项目里用过吗
  • 三次握手四次挥手
  • TCP和UDP的区别
  • HTTPS流程
  • HTTPS是绝对安全的吗
  • Hashmap的实现
  • 有一个生成[1, 5]随机整数的函数,利用它设计一个生成[1, 7]随机数的函数。

CTO(应该是指GM吧)

  • 先自我介绍,大概了解了一下之后,先聊了项目,然后问了一些基础问题。基础问题大概有这几个内容:
  • java垃圾回收
  • TCP握手挥手
  • HTTP报文格式
  • 深度优先、广度优先

腾讯PCG事业群-春招3月,但是原本是做Java的

一面

  • 自我介绍
  • 我看你这简历上的技能咋都写的是Java的东西呢?安卓的项目做过,SSM的也做过,那你后台开发和Android倾向于哪一个?
    • 主要准备的Java,Android没有具体学习过,但是对Android很感兴趣。
  • 你咋选的实习地方北京,能来深圳实习嘛?
  • 说说项目,我看你上面有个项目做App的,有准备Android方面吗?
  • 有些SQL比较慢,你咋办?为什么有的SQL这么慢,说说你觉得导致SQL很慢的原因。
  • 内存泄漏?OOM?什么情况会OOM?
  • 用过多线程没?说说咋用的。线程池知道不?说说线程池的原理?
  • 对ArrayList一个读操作,一个写操作,你用多线程咋实现。死锁你知道不?你怎么解决?
  • volatile知道吗?volatile的原子性?
  • Java中的锁知道哪些?
  • 线程之间通信的方式?
  • JVM调优,说说你能从哪些方面着手?
  • JVM和GC简单聊聊,结合JVM内存说说GC。
  • HashMap和HastTable,HashMap安全?不安全用什么?hash()?HashTable是怎么实现安全的?
  • 我对你的Java基础有了一个了解了,下面我们问问网络相关的知识,计算机网络应该学过吧,那说说TCP三次握手?第三次握手能不能去掉?UDP和TCP的区别?
  • 你知道长连接吗,说说?为啥用长连接?
  • HTTP1.0和HTTP2.0的区别?说说NIO?
  • HTTPS知道吗?说说SSL?
  • 好了,网络聊到这里吧,我们说说算法之类的吧。跳台阶知道吧,怎么做啊。
    • 一个链表,让你找最中间的节点,你怎么找?
    • 两个大文件,一个比较大,一个比较小,让你求交集,你怎么做?
  • 那么,我们再问两个智力题吧,没有固定答案,不要限制自己的思路,想到啥说啥,一个粗细不一样的绳子,完整的烧完1个小时,你怎么让他烧15分钟(不一定烧完)。
  • 一副全新的扑克牌,按顺序的,AAAA,2222,3333,这种,你怎么洗牌能洗散开?
  • C++和C了解吗?

二面

算法题

三面

  • 面试官上来又是一通确认身份,然后再次确认实习地有没有要求?深圳确实没啥问题是吧???
  • 说说JVM的内存吧,他们都是干啥的?对象怎么创建?
  • 每个区域都会发生怎样的异常啊,谁会发生OOM?
  • 说说你对GC的认识吧。
  • 知道引用计数法吗?引用计数法有啥优点吗?缺点呢?
  • 可达性分析?
  • 垃圾回收的几种算法?比较一下。
  • 你觉得垃圾回收有什么缺点?
  • 说说垃圾收集器?有没有想过你说的这些垃圾收集器为啥会有这些缺点呢?
  • 关于垃圾回收和JVM问的很详细很详细,有的问题记不太清了…
  • 那我们再说说链表和数组?比较一下它们有啥区别吧,然后再说说数组里面删除一个元素会怎么样,插入一个元素会怎么样,修改一个元素会怎么样,会发生什么事情?
  • 平时用啥IDE?知道项目run之前干什么吗?
    • 说了个编译和检查错误,但是面试官似乎还想让我说点东西…
  • 编译期和运行期的区别?
  • 指针了解吗?
  • 十亿个数,一个数4字节,然后你怎么找最大的十个数?十亿个数,占多少内存?
  • 操作系统中有哪些内存知道吗?平时用什么Windows还是Linux?
  • 说说寄存器?
  • 了解编译原理吗?知道计算机组成原理吗?平时都学什么课?
  • 一个人给另一个人发微信消息,说说可能会发生哪些事情?
  • 长连接短连接说说区别,你知道的哪些是长连接,哪些是短连接?TCP是短连接还是长连接吗?
  • http是基于什么实现的?1.0和1.1什么区别?
  • MTU知道吗?以太网帧知道不?MTU大小你知道不?MTU的组成你知道不?
  • TCP和UDP是否可靠,为什么不可靠or为什么可靠?
  • 如果客户端长时间不发消息,那服务器端咋办?【差不多这个意思…】