本人研究生在读在2月26日找了师兄内推阿里钉钉团队28号接到了约1面的电话。幸好我提前准备了一个多月的样子刷面试题、刷LeetCode面了之后才觉得自己刷少了对于我这样一个实习生来说题目还是有些偏难不过在4月20号终于拿到意向书了听内推人说阿里实习面试没有rank可能单纯就是流程比较慢漫长的等待和面试还是值得的呀。钉钉1面3月1日电话面试1个小时本科、研究生学过什么跟计算机相关的课tcp、http协议相关http1.1和2.0区别堆排序的过程Java单例有几种方式静态方法同步和普通方法同步的区别线程池7大参数、工作原理点击手机桌面应用图标后发生了什么View三大流程说了一下流式布局FlowLayout怎么实现的retrofit原理看过okhttp源码讲了一下okhttp的工作原理分发器、拦截器讲了细节聊了项目讲了好久几个方面如下1项目中用了kotlin协程于是问了协程的相关理念面试官可能觉得说的不太全就给补充了一下。 然后说协程这样的新技术国外有人用国内用的很少因为使用协程会改变老项目原有网络架构对于新项目可以使用想要取代老项目比较困难。2如果用户反应app有问题该怎么解决回答网络抓包面试官说大型项目不可能通过抓包来找问题后来经过暗示正确做法应该是生成日志文件并提交到服务器。3聊了项目中登录相关的业务怎么实现的将服务器响应的token持久化并添加到请求头。提问环节。问了面试官kotlin在企业应用中是否有用到面试官说由于Java和kotlin并不冲突因此在项目中是共存的。第二天下午接到了约2面的电话就约在当天晚上钉钉2面3月2日电话面试1个小时聊了研究生、本科阶段得过哪些奖做过哪些项目或者参加过哪些比赛。具体问了本科参加过的一个水中机器人的比赛stm32单片机做的怎么识别水中的路线之类的一些细节又问了简历中的一个医疗机器人的项目遇到了哪些问题、只是实验室做着玩还是准备用在现实生活中又问了参加过的数学竞赛这个竞赛考察了什么能力等等。问设计模式Android源码或者第三方开源框架应用设计模式举例说了okhttp拦截器责任链模式自己的项目有没有用设计模式retrofit单例用的kotlin的object关键字实现Android源码中你认为有哪些方面设计的很优秀的地方说了Android view体系聊kotlinkotlin相比于Java有哪些优势、具体有哪些特性、语法糖之类的谈谈对mvvm、mvc架构的理解为什么你要在项目中使用mvvm当然是Google推荐使用mvvm聊对工作、学习方面的态度应该具备什么能力等等三道算法题说思路1二叉树的最近公共祖先只想出来一种比较笨的方法2遍历二叉树的第k层节点递归迭代都讲了3给一个中文字符串“一万两千八百一十一”只是个例子输出这个字符串对应的数值没想出来提问环节问了部门的氛围如何之类的二面之后参加了阿里的第一次笔试两道力扣hard题血难加上我之前没练过ACM输入输出最后一道也没过0分1力扣1411网格图涂色的方案数2力扣815公交路线笔试之后心态崩了觉得0分应该进不了阿里了没想到过了两周二面的面试官给打了个电话说前两面的面试成绩挺好可以再给一个机会用阿里伯乐平台出了4道题其实是前两道有点难第一道贪心算法第二道工厂模式策略模式多线程都不会才又出了后面两道简单的算法题一个反转字符串中的单词一个求链表倒数第k个节点这俩写出来了。一周之后接到了3面的电话。钉钉3面3月24日电话面试40分钟自我介绍聊项目mvc、mvp和mvvm架构各自的特点在项目中最具有挑战的是什么项目收获到了什么算法题给两个字符数组举例{h,e,l,l,o, ,w,o,r,l,d}和{e,o}如果第一个数组中存在第二个数组中的元素则去掉后面的元素往前顺移结果为{h,l,l, ,w, r,l,d}。要求时间复杂度为On空间复杂度为O1。你认为什么样的人可以称之为技术大佬如果只有30分钟你会依据什么来判断一个人是不是大佬你认为自己身边最厉害的技术大佬是谁他为什么会成为大佬你愿不愿意推荐他到我们顶顶团队我说他投了蚂蚁面试官说他做了错误的选择…如果让你在半年之内达到他的水平你的学习规划是什么你会不会向他请教学习方法反问1大厂对新技术的态度是怎样的2鸿蒙会不会取代AndroidAndroid的前景怎样面试官先问了我的观点后来说了自己的观点不会。为什么不会这个要自己查找最近几年出现的智能手机系统它们为什么没有Android和iOS成功从中找答案。钉钉HR面3月30日钉钉视频面试20分钟自我介绍开了共享屏幕现场给HR展示了之前的一个项目你的项目UI界面是自己设计的吗你对未来的规划是什么有没有投别的大厂大厂有很多为什么要投阿里为什么要投钉钉部门你对互联网行业加班现状怎么看你对加班的态度怎样提问环节1实习生待遇怎样2转正率高不高阿里实习期间如果表现正常基本都能转正除非自己不想转正3加班情况怎样除了大版本更新平时不会像拼多多那么肝一般晚上九点就清场了周末基本也不用加班面试经验总结一定要谨慎对待写在简历上的东西一定要对简历上的东西非常熟悉。因为一般情况下面试官都是会根据你 的简历来问的注重计算机基础。对自己投递岗位需要的技能足够熟练对其他岗位需要的知识也要有所了解。注重算法。很多人都没有意识到算法的重要性国外的企业都在问算法题国内大厂算法现在也是必不可少的算是行业风口掌握算法的人将拿到更多的机会。关注技术视野。技术视野是大家容易忽略的一个点包括深度和广度包括阿里在内的很多大厂面试都很看重这个。有些人面试答得很好却给面试官留下一个视野狭窄的印象。能有一个上得了台面的项目也非常重要这很可能是面试官会大量发问的地方所以在面试 之前好好回顾一下自己所做的项目和面试官聊基础知识比如设计模式的使用、多线程的使用等等可以结合具体的项目场景或者是自己在平时是 如何使用的建议提前了解一下自己想要面试的公司的价值观判断一下自己究竟是否适合这个公司。我个人觉得面试也像是一场全新的征程失败和胜利都是平常之事。所以劝各位不要因为面试失败而灰心、 丧失斗志。也不要因为面试通过而沾沾自喜等待你的将是更美好的未来继续加油另外希望学弟学妹早有规划不妨正式工作前来阿里实习多看看。如果你觉得自己目前的硬实力又不到我觉得还是有必要去努力一下的技术能力的高低能决定你走多远平台的高低能决定你的高度。面试官通常会问一些开放性的问题对你的思维拓展能力、多方位的思考能力也是一种考验永远不要打无准备之仗早做准备多做准备下面分享一下我之前刷过的面试题以及算法资料希望能帮助到有心在技术这条道路上一路走到黑的朋友Java部分操作系统相关JDKJVMJRE面向过程 面向对象八大基本数据类型引用类型数组Java异常集合(容器)线程泛型反射注解Socket编程设计模式JVM相关Android部分Activity典型情况下的Activity生命周期异常情况下的Activity的生命周期 数据如何保存和恢复从Activity A跳转到Activity B之后然后再点击back建之后它们的生命周期调用流程是什么如何统计Activity的工作时间Activity的启动模式 使用场景如何在任意位置关掉应用所有Activity 如何在任意位置关掉指定的ActivityActivity的启动流程(从源码角度解析)Activity任务栈是什么在项目中有用到它吗说给我听听BroadcastReceiver广播是什么广播的注册方式有哪些广播的分类 特性 使用场景ContentProvider什么是内容提供者说说如何创建自己应用的内容提供者 使用场景说说ContentProvider的原理ContentProvider,ContentResolver,ContentObserver之间的关系说说ContentProvider的权限管理Service什么是Service?说说Service的生命周期Service和Thread的区别Android 5.0以上的隐式启动问题及其解决方案。Service保活方案IntentService是什么 原理 使用场景 和Service的区别。创建一个独立进程的Service应该怎样做Handler子线程一定不能更新UI吗给我说说Handler的原理Handler导致的内存泄露你是如何解决的如何使用Handler让子线程和子线程通信HandlerThread是什么 原理 使用场景一个线程能否创建多个Handler,Handler和Looper之间的对应关系为什么Android系统不建议子线程访问UIAsyncTaskAsyncTask是什么能解决什么问题给我谈谈AsyncTask的三个泛型参数作用 它的一些方法作用。给我说说AsyncTask的原理你觉得AsyncTask有不足之处吗FragmentAndroid中v4包下Fragment和app包下Fragment的区别是什么Fragment的生命周期 请结合Activity的生命周期再一起说说。说说Fragment如何进行懒加载。ViewPager Fragment结合使用会出现内存泄漏吗 如何解决Fragment如何和Activity进行通信 Fragment之间如何进行通信给我谈谈Fragment3种切换的方式以及区别 使用场景。文件存储说说Android中数据持久化的方式 使用场景接触过MMKV吗说说SharedPreference和它的区别第三方数据库框架用过哪些有没有自己封装过一个SQLite的库SQLite是线程安全的吗 SharedPreference是线程安全的吗请简单的给我说说什么是三级缓存SharedPreference的apply和commit的区别谈谈你对SQLite事务的认识ListView RecyclerViewListView是什么如何使用RecyclerView是什么如何使用如何返回不一样的Item。ListView和RecycyclerView的区别是什么分别讲讲你对ListView RecyclerView的优化经验。给我说说RecyclerView的回收复用机制说说你是如何给ListView RecyclerView加上拉刷新 下拉加载更多机制谈谈你是如何对ListView RecycleView进行局部刷新的图片编程你对Bitmap了解吗它在内存中如何存在有关Bitmap导致OOM的原因知道吗如何优化给我谈谈图片压缩。LruCache DiskLruCache原理。说说你平常会使用的一些第三方图片加载库,最好给我谈谈它的原理。如果让你设计一个图片加载库你会如何设计你知道Android中处理图片的一些库吗(OpenCv GPUImage …)WebViewWebView会导致内存泄露吗原因是什么解决方式有哪些你知道Hybrid开发吗说说你的相关经验说说WebSettings WebViewClient WebChromeClient这三个类的作用 用法。说说你了解的Hybrid框架。如何提高原生的WebView加载速度谈谈你对webView工作机制的认识,你在项目中优化过它吗说说是从哪些方面着手的ViewPager什么是ViewPager?说说它的那些适配器。(校招实习)你了解ViewPager2吗和ViewPager 1有哪些区别ViewPager Fragment结合使用存在的内存泄漏的原因是什么如何解决View事件分发机制什么是事件分发机制主要用来解决什么问题(校招实习)给我说说事件分发的流程 你项目解决事件冲突的一些案例。分别讲讲有关事件分发的三个方法的作用及关系。如果我在一个设置了点击事件的TextView中dispatchTouchEvent方法强制返回ture或者false会发生什么谈谈你对MotionEvent的认识Cancel事件是什么情况下触发的requestLayout(),onLayout(),onDraw(),drawChild()区别和联系朋友们如果需要这份完整版的资料VX扫描下方CSDN官方二维码【免费获取】。知识深度也许上面这些面试题你通过背一背就能掌握得八九不离十了毕竟面试官提的很多问题也是在网上找到的所以你可能会放松警惕觉得这样就足够了。其实不然大厂面试官还有一个爱好就是对于每个知识点都喜欢深入往下问问到没有问题可以问或者问到你不会为止这样提问的目的只有一个就是试探你对这个知识点的理解深度如果你无法提供足够深刻的回答结果往往就是失败。最后希望大家能够重视面试不要浪费自己的机会