自我介绍 1.ArrayList的扩容机制? 2.底层实现?深拷贝还是浅拷贝? 3.单例模式 4.懒汉线程安全? 5.多线程下如何保证类的线程安全? 6.CopyOnWriteArrayList底层实现?如何实现线程安全? 7.HTTP支持长链接吗?什么时候开始支持的? 8.长连接什么时候会释放? 9.服务端通过timeout还是探测决定是否关闭长连接? 10.TCP有没有这种关闭连接的方式? 1
-TCP长连接是如何实现的? -用户部分是如何设计的? -离线消息? -消息要包含哪些字段? -群组聊天和点对点聊天? -项目的难点? -排查问题的能力? -消息传输可靠性?(序列号、重传机制) -如何看待客户端未来发展? -
-常见数据结构 -内存对齐 -tcp和udp(所有人的屏幕都需要更新位置信息) -单例模式优缺点 -mysql语句执行顺序 -同步任务、异步任务、串行队列、并发队列 (异步任务加到并发队列才是多线程、多并发) -锁 互斥锁和自旋锁(while)哪个快?(自旋锁快) -智力题:北京市两人头发数相同、25人选前5 -算法题:两个栈实现一个队列
菜鸡一枚,前几天突然收到面试通知,纠结了一会还是抱着试试的心态参加 刚刚面完,只想说面试官小哥哥太nice了 人帅又耐心(虽然可能是凑时长)但是指出问题并给建议就很棒 记录一下问题: 先是自我介绍,然后问了一下做的项目问题 接着是着重问些安卓的八股,例如生命周期和什么时候调用的 后面问了java和c++的基础,例如他们的区别,面向对象的特性,链表和数组 对了还有一点项目管理工具的问题 最后两个算法
首先表扬一下快手没有笔试,省了不少流程时间,每次面试过后几乎都是在12小时内就有结果反馈,都在当天或者第二天早上十点半之前就约下一轮,效率非常高。 除了一面问的比较泛之外,后面基本都是很有针对性的,大部分时间都是在问项目相关的内容,非常深挖,建议熟悉自己的项目技术和扩展的内容。 一面: 1.基础计算机知识 2.安卓基础知识 四大组件那些 生命周期有什么 3.你用过的list<>是在什么地方使用,为
快手客户端一面 面试官自我介绍,部门是海外商业化好像。 自我介绍 C++ 程序在内存的分布? 堆和栈的区别? 手撕题:写只能在栈上和只能堆上实例化的类 什么是野指针?什么情况会导致? 什么是内存对齐?为什么要内存对齐?有什么原则?给两个 struct 说 size? 给两个函数参数是结构体指针和普通的传参哪个好? TCP 怎么保证可靠传输? 三次握手说一说每次握手丢失会发生什么? GET 和 PO
面试官困的要死,听我回答感觉心不在焉的,疯狂打哈欠。问的问题也都是经典八股,可能看客户端经历比较少吧,没什么兴趣。而且算法撕的不是很顺,面试官耐心直接见底,后面问了下进度多久能出,跟我说他们面试的人很多,面完之后hr要横评,这事不归他管,不能保证时间。 自我介绍 智力题:一共有100个小钢球,两个人轮着拿,一次至少拿一个最多拿五个,问怎么拿才能保证自己拿到最后一个 自己先拿4个,然后每次和对面凑6
数组和链表 堆 http报文结构 http1.0 2.0区别。 http和https linux io复用 锁机制 后面疯狂拷打项目。麻了 两道算法a了一道 G
8.1一面 项目相关,详细的讲了一下各种IO模型,同步异步文件操作等等,效果好像挺好 HTTP,TCP相关,断点续传没答上 进程,线程 手撕:删除链表重复元素 当天约二面 8.2二面 二面自我感觉良好,可能是我太会胡扯了,面试官说我思路很好。所以这里建议大家回答问题任何相关的内容都说出来,只要没感觉面试官有反感就行。 面试全程大多围绕项目展开 手撕:三个线程打印abc,删除数组重复元素 第二天约三
handler原理 如果判断message是那个handler发来的,如何清空postdelay消息 binder原理 activitythread和manager通信 启动一个activity用到的binder通信流程 servicemanager干什么的,有什么特殊性,特殊性体现在哪里 如何在发生异常时 如何不让应用退出 还有些问题我记不得了,面试官人很nice,是我太菜,很多问题没回答好
面试官 商业化 问题 1.浏览器输入网址回车后,都发生了什么 a:三次握手 1.1三次握手多一次少一次行不行,为什么不行。 1.2tcp和udp的区别 2.http和https区别,七层模型,http在哪一层? 3.了解域名吗,有什么用,了解dns吗。 4.进程和线程 5.线程中的互斥锁和xx锁 6.cpp的面相对象相比面相过程有什么优势 a:不用重复造轮子,效率高。继承封装多态 7.cpp多态是
1.自我介绍 2.原来实习做的项目是基于Android还是iOS?我说是PC端 3.对Android了解吗? 4.你几个项目中,你觉得对你自己提升最大的是那个?遇到了什么困难?怎么解决的?有什么成长收获? 5.讲讲面向对象? 6.面向对象和面向过程什么区别? 7.C++三大特性?封装、继承、多态 8.线程怎么切换上下文? 9.生产者-消费者 10.vector了解吗? 11.vector扩容 12
一面 时间 9.11 15.00-16.00 一小时左右 自我介绍 实习情况 八股 cpp 网络 操作系统: 虚拟内存 智能指针 tcp三次握手四次挥手 单项链表结构 栈和队列 指针和引用 内存管理 iOS: 常用三方库 图片,视频,json解析等 runloop 多线程 gcd 同步异步的实现,出现crash的情况 循环引用 git使用情况,sourcetree使用情况 Cocopods基于什么
手撕题目: 给定一个解码器k[encoding],可以实现k*encoding的效果,例如输入&quot;3[a]2[bc]&quot;,则输出&quot;aaabcbc&quot; 问答题: 函数调用发生错误的情况 堆和栈的数据类型 solid 设计模式 函数重录 多线程 线程安全 http和https的区别 https的底层实现逻辑 tcp和udp的区别 qui
海外客户端平台架构部门-Android跨端方向 自我介绍,实习项目 浏览器中URL的运作过程 其中解析域名用的什么协议 arp和dns协议 三次握手的建立 为什么不是两次握手 如果服务端一直没收到客户端的消息的话怎么办 HTTP和HTTPS的区别 HTTPS的加密具体怎么做的 Handler里面的keep_alive是什么 Java泛型,泛型里面的类型编译之后还存在吗 泛型类型擦除 arrayli