面试过程:

通过boss直聘网站找相应的职位,找到就申请了。
过了2天来电话了,是一个周六的早晨9点钟。
电话面试问了 java基础,redis,jdk,spring原理,mybatis,dubbo;
后来让我去现场面,问了java内存相关,redis内存相关,最擅长的技术领域。。

电话面试的期间,面试官很有耐心的听我讲也不会突然打断我的思路(感觉很舒适)。
现场面试不得不说大厂还是大厂,就挺气派的。公司看起来一切都是尽然有序。

面试官问的面试题:

技术人员一面

  • 对于进程中锁的理解。
  • 解决死锁的方法
  • 网络的7层结构
  • TCP/UDP的不同
  • 三次握手
  • 给定一个URL,如何访问
  • 栈和队列的区别
  • 链表,双向链表。

架构师二面

Java的war文件和jar文件有什么不同,war文件是怎么出现的
int 和 Integer 有什么区别,在这里问了很多,比如用什么比较才会给true的结果
Java里有哪些集合,后续又问了set和list的区别以及优缺点,还有tree
Java的内存结构,主要问堆和栈还有线程的数据是怎么在堆和栈里存储的,栈的生存周期啥的

一、Activity的生命周期及描述;

这个问题都小儿科了,只要你记住那几个方法,知道每个方法的作用就ok了。

二、MVC的作用及描述:

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范;
Model(模型)表示应用程序核心(比如数据库记录列表)。
View(视图)显示数据(数据库记录)。
Controller(控制器)处理输入(写入数据库记录)。优点:耦合性低、重用性高

三、ANR是什么?如果出现ANR,你会怎么处理?

说真的,做android的应该知道ANR这个术语,可面试的时候当时我就大脑一片空白,完全没搜索出来,后来面试人员一提示,立马想起来了;我的回答是:是操作程序占用时间过长或者主线程被阻塞引起的ANR,解决办法是把占用时间长的操作进行多线程处理或者进行异步操作处理,本人觉得还是基本正确的,至少是面试官希望听到的结果,下边呈现技术大牛们的详细解释。
在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样系统不会显示ANR给用户。
默认情况下,在android中Activity的最长执行时间是5秒,BroadcastReceiver的最长执行时间则是10秒。

ANR的常见类型

ANR一般有三种类型:

  • KeyDispatchTimeout(5 seconds) --主要类型
    按键或触摸事件在特定时间内无响应
  • BroadcastTimeout(10 seconds)
    BroadcastReceiver在特定时间内无法处理完成
  • ServiceTimeout(20 seconds) --小概率类型
    Service在特定的时间内无法处理完成

三:KeyDispatchTimeout

A key or touch event was not dispatched within the specified time(按键或触摸事件在特定时间内无响应)
具体的超时时间的定义在framework下的ActivityManagerService.java

为什么会超时呢?
超时时间的计数一般是从按键分发给app开始。超时的原因一般有两种:

  • 当前的事件没有机会得到处理(即UI线程正在处理前一个事件,没有及时的完成或者looper被某种原因阻塞住了)
  • 当前的事件正在处理,但没有及时完成

如何避免KeyDispatchTimeout

  • :UI线程尽量只做跟UI相关的工作
  • :耗时的工作(比如数据库操作,I/O,连接网络或者别的有可能阻碍UI线程的操作)把它放入单独的线程处理
  • :尽量用Handler来处理UIthread和别的thread之间的交互

说了那么多的UI线程,那么哪些属于UI线程呢?
UI线程主要包括如下: Activity:onCreate(), onResume(),
onDestroy(), onKeyDown(), onClick(),etc AsyncTask: onPreExecute(),
onProgressUpdate(), onPostExecute(), onCancel,etc Mainthread handler:
handleMessage(), post*(runnable r), etc

HR三面
简单自我介绍一下过往的经历和项目

  • 机器人每次向前走1步概率是1/2,每次向前走2步概率是1/2,当机器人走的路程是4的整数倍时候结束,求结束时机器人步数的期望
  • 老公接老婆下班,老公6:20—6:30到,老婆6:25—6:30下办公楼,如果老公到老婆办公楼下比老婆晚,就会挨打,求老公挨打概率。

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。
下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2020收集的一些大厂的面试真题(都整理成文档,小部分截图),有需要的可以点击进入暗号:QF

最新整理面试题

最新整理电子书


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。一键三连哦!

谢谢大家

饿了?饿了么?3年工作经验的程序员天天点外卖决定投声了饿了么面经!相关推荐

  1. 面试感悟-------一名3年工作经验的程序员应该具备的技能

    转载: 面试感悟-------一名3年工作经验的程序员应该具备的技能 前言 因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章.这篇文章大部分内容都是面向整个程序员群体的,当 ...

  2. 3年半工作经验女程序员,聊聊程序员的薪水、工作内容和发展前景

    我先简单说一下我的职业经历,我是有3年半工作经验的程序员,主要负责企业办公网站的开发工作.大家一提到程序员,第一印象应该就是高薪,但是除了高薪以外,对这个职业的了解就不够了.为了回应粉丝的要求,接下来 ...

  3. 10年工作经验老程序员推荐的7个开发类工具

    做.NET软件工作已经10年了,从程序员做到高级程序员,再到技术主管,技术总监.见证了Visual Studio .NET 2003,Visul Studio 2005, Visual Studio ...

  4. 面试感悟—-一名3年工作经验的程序员应该具备的技能

    文章来自:五月的仓颉 五月的仓颉 是一位非常优秀,乐于分享的大神,目前就职阿里 原文链接:https://www.cnblogs.com/xrq730/p/5260294.html 前言 因为和同事有 ...

  5. 一名3年工作经验的程序员应该具备的技能

    本文转自:https://m.imooc.com/article/details?article_id=7557 前言 因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章.这 ...

  6. 为什么代码正确却没有爬虫的信息_一位一年多工作经验的程序员问我,为什么545行代码没有执行到?...

    快下班时,同事张工在钉钉上问我,"鹏哥,有空吗?帮我看一个问题."小张是一名java程序员,一年多工作经验,刚入职到我们公司不久. 刚好我有时间,就走过去,"鹏哥,帮我看 ...

  7. c#窗体编辑个人简历_3年工作经验.net程序员简历应该怎么写

    .net程序员个人简历范文一 工作经历:河北零风软件有限公司 时间:2015-2018 岗位:程序员.net 工作描述:我任职河北零风软件有限公司技术部门,该部门后台系统主要由API模块,APP后台模 ...

  8. 为什么没有工作经验的程序员很难找工作?

    主要是和大量的培训出来的程序员有关,很多培训机构都变了味,变得越来越商业化. 第一,招生门槛越来越低.大部分培训机构为了赚钱,不管什么学员都收,非专业的收,高中毕业的也收.一个班里几十号人,学员水平良 ...

  9. 一名3年工作经验的程序员应该具备的技能 !

    前言 因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章.这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发的,因此有一部分内容也是专门面向咱们Ja ...

最新文章

  1. E - Water Distribution
  2. 2019-10-12 欧拉公式的理解
  3. GridControl详解(八)菜单
  4. Wondows环境下配置Tomat
  5. linux lspci信息 详解_Linux引导之EFI SHELL详解
  6. PAT_B_1006_Java(15分)
  7. 数据库设计新手容易掉进的陷阱(不断更新中)
  8. springboot页面中静态图片路径
  9. win2003下面显示dbgprint的输出内容
  10. BroadcastChannel页面间通讯
  11. FileItem 出现部分中文乱码解决办法
  12. 川大scu显示无法连接认证服务器,win10锐捷客户端无法认证服务器怎么办?-处理win10锐捷客户端认证失败的方法 - 河东软件园...
  13. win10cmd重置系统_命令提示符修复系统win10 系统还原
  14. oracle 高级dba,DAVE老师Oracle DBA高级运维深入解析实战班 高级DBA运维视频 Oracle视频教程...
  15. 写日报、写日报,每天都要写,写工作日报到底有什么意义?
  16. HDU 6357 Hills And Valleys(思维 动态规划)
  17. 西交计算机科学与技术硕导,肖照林(硕导)
  18. 表情包制作APP的相关推荐 可以制作表情包的软件
  19. 985大学计算机国赛,盘点通往985、211院校的108条路,总有一条适合你的
  20. 华硕k5555l拆解图解_华硕k555l拆机图解

热门文章

  1. Chrome浏览器多开
  2. fms5序列号_CentOS下安装FMS5.0 互联网技术圈 互联网技术圈
  3. 【线段树】【扫描线】小睿睿的方案
  4. FreeCAD学习笔记——Units、Builtin modules和Workbench creation
  5. python有道批量单词音标整理-python实现有道翻译(逐行读文本)
  6. paypal for php,PayPal网站付款标准版(for PHP),paypal标准版_PHP教程
  7. 看图工具 -- 蓝湖 Axure 墨刀
  8. Linux服务器的登录与使用
  9. 数值分析原理课程实验——(高斯)Gauss列主元消去法
  10. Android APK安装失败错误代码含义