腾讯音乐暑期实习一、二面 Android开发
一面
- 自我介绍
- TCP与UDP的区别
- 讲一讲流量控制,拥塞控制
- get请求与post请求的区别
- 对称加密与非对称加密的区别
- 为啥既要对象加密又要非对称加密
- 非对称加密的缺点
- 快速排序的原理?时间复杂度?什么情况下最坏
- url到渲染网页的过程
- http与https怎样抓包
- http中间人攻击
- 状态码
- DNS劫持
- 进程与线程的区别
- 什么是死锁?怎样防止死锁
- 堆内存与栈内存的区别
- 什么是内存泄漏
- 用到的设计模式
- 单例模式的性能问题
- 垃圾回收算法
- 算法:跳台阶,链表的倒数第k个结点
- 反问
二面
- 自我介绍
- 项目介绍以及用到的技术栈
- 项目遇到的难点
- App的启动流程
- Activity的生命周期
- Activity与Fragment的区别
- 事件分发机制
- 怎样拦截事件
- Android的垃圾回收机制
- 垃圾回收算法
- 常见的内存泄漏?怎样解决这些内存泄漏?
- 怎样监测内存泄漏?使用这些检测工具遇到了哪些问题?还使用过哪些调试工具?
- 堆内存与栈内存
- 什么情况下会导致栈内存溢出?
- 常见的线程安全问题
- 悲观锁,乐观锁,自旋锁,互斥锁
- TCP如何保证可靠性
- 中间人攻击,怎样避免中间人攻击
- 怎样部署的okhttp网络请求模块
- 常用的设计模式
- MVC,MVP,MVVM的区别以及优缺点?使用过的开发架构?
- java的集合类
- 数组与链表的区别
- List与Vector的区别
- 怎样在一个双向链表中插入一个结点
- 反问