先有字节三面被完虐,后有美团Offer送面前Android面经~

前言

本人从事Android 开发已经有3年了,受末日寒气影响,被迫在家休整一个多月,事后第一家选择去面试的字节跳动,无奈的被面试官虐得“体无完肤”,好在自己并未气馁,于是回家开始回家进行闭关修炼,复习15天后再战美团,最终4面拿下了offer。

文章以下内容主要是分享面经和个人的学习建议,内容涉及到很多PDF文档(面试题库、学习笔记、实战文档、脑图等),由于文章有限,需要这些文档的,可直接去访问我GitHub进行查阅:https://github.com/733gh/Android-T3

字节跳动三面面经

字节跳动一面面试题(1hour):

  • 自我介绍
  • handler机制,sendMessage和post(Runnable)的区别。
  • ThreadLocal原理,底层实现
  • HashMap底层,扩容,LinkedHashMap
  • Service的onBind和onStart差别
  • Activity启动生命周期,A跳转B
  • Android持久化方案,SharedPreference是否可以跨进程通讯。ContentProvider
  • ClassLoader机制,双亲委派。如果我要写一个Activity类,那怎么保证加载的是我自己写的Activity
  • 算法题,约瑟夫环
  • 反问

字节跳动二面面试题(1hour):

  • 自我介绍
  • 项目技术点详解
  • 写过什么自定义View
  • OkHttp代码看过吗,用了什么设计模式
  • MVC、MVP区别,项目中的实现。
  • LiveData和EventBus的相关讨论,真的是讨论,畅所欲言
  • 看过哪些源码
  • SharedPreference相关
  • Android动画了解吗,用过什么
  • TCP、UDP区别,面试时的语音用的是什么,为什么要这么用。
  • 代码题,5个线程对一个int进行累加到1000.
    1* 反问

**小总结:**两面面试官都很和善,所有的问题都是在讨论,我不会的他们也容许我猜一下,然后告诉我猜的对不对……

字节跳动三面面试题(50mins):

  • 自我介绍
  • 算法,跳棋盘
  • 浏览器输入URL到渲染全过程
  • Http请求报文响应报文
  • http2.0有哪些优化
  • 用过哪些网络库
  • OkHttp的Intercepter
  • Android持久化方式
  • Java线程同步的数据结构
  • 对未来的技术有什么规划?你为什么要学这些技术?
  • 反问

字节跳动面试题答案+解析:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lm2rmvIk-1663164020964)(//upload-images.jianshu.io/upload_images/16595031-5f6f528ba363c9c7.png_58">美团点评四面面经

美团点评一面面试题(30分钟):

  • 实习期间公司项目,自己开发的项目
  • 进程和线程的区别
    除了常规的,还比较了一下两者调度的区别,进程是靠中断来使系统陷入内核态然后完成调度,线程是依靠JVM进行。
  • 线程的状态。
    新建、就绪、运行、阻塞、死亡。不小心把进程的僵死什么的给说了……还好面试官捞了一手
  • TCP属于哪个层、TCP三次握手四次挥手。
  • Activity生命周期,A启动B生命周期变化。
  • 自定义View,需要重写哪几个方法。如果要你实现WIFI信号的显示,那么你会怎么做。
  • Android动画了解吗。
    说了过渡动画,说了自己封装的ObjectAnimator工具类,以及MotionLayout相关使用、以及过渡动画实现共享Item的用法。
  • 算法,打印2到100所有的质数,不要求效率,你输出就好了……

美团点评二面面试题(1hour):

  • 自我介绍
  • 实习期间做的最成功的一件事,为什么觉得最成功。
  • 针对具体的实习过程进行了讨论。
  • Java泛型。
  • 为什么基本重写equals方法时也需要重写hashCode方法。
  • 手撕生产者消费者模型,很惭愧……没撕出来。
  • 成绩怎么样……LZ本科期间及其浪荡,成绩很差,然后面试官脸色就变了。心态就有点崩。
  • 计算机怎么画一条线,底层怎么实现的。
  • PV原语。
  • 排序算法。
  • 树的遍历方式。
  • 反问。

**心得体会:**成绩不好的同学需要谨慎回答关于成绩的问题,不要那么直白,是把双刃剑。华为面试的时候说自己成绩不好,但是有博客和github作为后期努力的支撑,面试官就还是很开心。

美团点评三面面试题:

  • 自我介绍。
  • 实习工作介绍。
  • 如果让你从0开始搭建一款APP,你会怎么做。比如说就是美团外卖。
    • 基础类设计
    • 网络设计
    • 兼容性考虑
    • 代码质量保证
    • 测试相关
    • 设计模式的使用
    • MVVM架构的使用
  • 学校学习了什么课程,成绩怎么样……
  • 代码,快排。
  • 反问

问了一下美团对于Android应届生的需求,得到的答复是需要CS相关基础好,其他的要求比较宽松。

还有就是学习Android的方法,大佬说多看各种不同APP和优质框架的源码,从源码中学习。

**总结:**问题很少,每题都很致命……而且是没有答案的那种,你得自己思考。这个时候可以许愿一波hr面了。

美团点评HR面:

  • 自我介绍,抓住介绍的点让你详细说说?
  • 期望工作地点
  • 事业群介绍
  • 为什么想要留在北京
  • 为什么不读研究生
  • 如何看待Android开发,为什么不接触IOS呢
  • 刚开始工作压力会很大,你有没有想过怎么处理压力呢
  • 反问
  • 有没有健身房
  • 有住房补贴或者房源推荐吗
  • 招多少个Android应届生呀
  • 应届生培养方案
  • 为什么来美团?你对美团技术团队的了解有多少?

美团4面面试题完整答案+解析:

[外链图片转存失败,建议将图片保存下来直接上传(img-F3qatM9X-1663164020966)(//upload-images.jianshu.io/upload_images/16595031-1bd7beb5b07d1654.pngoffer_133">被字节惨虐后,我是如何拿下美团offer?

(1)第一步是关键:调整心态

由于字节跳动面试没有通过,所以多少都受到了一些影响,所以接下来的面试中,最关键的一步就是要调整自己的心态,以防被自己的消极心态所影响,因为一旦从心底否定了自己,面试过程中就容易出现语言不流畅、说话没逻辑、条理不清晰、回答不全面,这都是面试中很多面试者容易出现的“致命伤”,所以调整心态,沉着冷静地面对是非常重要的。

(2)第二步要梳理:Android核心知识点(15天时间,读完这本pdf)

关于第二步要梳理,实际上就是面试过程中,发现自己的知识储量是比较杂乱的,不知道面试官下一个会问什么,所以对于Java 的知识点有一个清晰的梳理是很有必要的。关于Java核心知识点,手上也有一本整理好的pdf文档,需要这份文档的可以直接我私信获得~

这份文档涵盖了很多知识技术点,囊括了Activity、数据储存、屏幕适配、消息机制、线程异步、webview、进程、ipc、数据储存等大量知识点,每一个知识点都有非常详细的解析。

[外链图片转存失败,建议将图片保存下来直接上传(img-muotfrWu-1663164020969)(//upload-images.jianshu.io/upload_images/16595031-4fc7f2fffa0c8f55.png_158">最后

文章以上内容主要是分享面经和个人的学习建议,内容涉及到很多PDF文档(面试题库、学习笔记、实战文档、脑图等),由于文章有限,需要这些文档的,可直接去访问我GitHub进行查阅:https://github.com/733gh/Android-T3

代码改变世界,要早日成为明日大牛,程序员肩上的担子可是很重啊。趁现在开始,还不晚!

最后祝愿你也能顺利拿下大厂offer,共勉!

原文地址:https://blog.csdn.net/weixin_61845324

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


更新Android SDK到3.0版本时,遇到Failed to rename directory E:\android\tools to E:\android\temp\ToolPackage.old01问题,导致无法更新,出现该问题的原因是由于3.0版本与较早的sdk版本之间文件结构有冲突,解决
Android 如何解决dialog弹出时无法捕捉Activity的back事件 在一些情况下,我们需要捕捉back键事件,然后在捕捉到的事件里写入我们需要进行的处理,通常可以采用下面三种办法捕捉到back事件: 1)重写onKeyDown或者onKeyUp方法 2)重写onBackPressed方
Android实现自定义带文字和图片的Button 在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法。一.用系统自带的Button实现 最简单的一种办法就是利用系统自带的Button来实现,这种方式代码量最小。在Button的属性中有一个是drawable
Android中的"Unable to start activity ComponentInfo"的错误 最近在做一款音乐播放器的时候,然后在调试的过程中发现一直报这个错误"Unable to start activity ComponentInfo",从字面
Android 关于长按back键退出应用程序的实现最近在做一个Android上的应用,碰到一个问题就是如何实现长按back键退出应用程序。在网上查找了很多资料,发现几乎没有这样的实现,大部分在处理时是双击back键来退出应用程序。参考了一下双击back键退出应用程序的代码,网上主流的一种方法是下面
android自带的时间选择器只能精确到分,但是对于某些应用要求选择的时间精确到秒级,此时只有自定义去实现这样的时间选择器了。下面介绍一个可以精确到秒级的时间选择器。 先上效果图: 下面是工程目录: 这个控件我也是用的别人的,好像是一个老外写的,com.wheel中的WheelView是滑动控件的主
Android平台下利用zxing实现二维码开发 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平台上应用比较成熟,而在Android平台上主流还是用zxing库,因此这里主要讲述如何利用zxing
Android ListView的item背景色设置以及item点击无响应等相关问题 在Android开发中,listview控件是非常常用的控件,在大多数情况下,大家都会改掉listview的item默认的外观,下面讲解以下在使用listview时最常见的几个问题。1.如何改变item的背景色和按
如何向Android模拟器中导入含有中文名称的文件在进行Android开发的时候,如果需要向Android模拟器中导入文件进行测试,通过DDMS下手动导入或者在命令行下通过adb push命令是无法导入含有中文文件名的文件的。后来发现借用其他工具可以向模拟器中导入中文名称的文件,这个工具就是Ultr
Windows 下搭建Android开发环境一.下载并安装JDK版本要求JDK1.6+,下载JDK成功后进行安装,安装好后进行环境变量的配置【我的电脑】-——>【属性】——>【高级】 ——>【环境变量】——>【系统变量】中点击【新建】:变量名:CLASSPATH变量值:……
如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题 在android中有时候可能要实现一个底部弹出菜单,此时可以考虑用PopupWindow来实现。下面就来介绍一下如何使用PopupWindow实现一个弹出窗。 主Activity代码:public void onCreat
解决Android中的ERROR: the user data image is used by another emulator. aborting的方法 今天调试代码的时候,突然出现这个错误,折腾了很久没有解决。最后在google上找到了大家给出的两种解决方案,下面给出这两种方法的链接博客:ht
AdvserView.java package com.earen.viewflipper; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory;
ImageView的scaleType的属性有好几种,分别是matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY。 |值|说明| |:--:|:--| |center|保持原图的大小,显示在ImageVie
文章浏览阅读8.8k次,点赞9次,收藏20次。本文操作环境:win10/Android studio 3.21.环境配置 在SDK Tools里选择 CMAKE/LLDB/NDK点击OK 安装这些插件. 2.创建CMakeLists.txt文件 在Project 目录下,右键app,点击新建File文件,命名为CMakeLists.txt点击OK,创建完毕! 3.配置文件 在CMa..._link c++ project with gradle
文章浏览阅读1.2w次,点赞15次,收藏69次。实现目的:由mainActivity界面跳转到otherActivity界面1.写好两个layout文件,activity_main.xml和otherxml.xmlactivity_main.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout ="http://schemas..._android studio 界面跳转
文章浏览阅读3.8w次。前言:最近在找Android上的全局代理软件来用,然后发现了这两款神作,都是外国的软件,而且都是开源的软件,因此把源码下载了下来,给有需要研究代理这方面的童鞋看看。不得不说,国外的开源精神十分浓,大家相互使用当前基础的开源软件,然后组合成一个更大更强的大开源软件。好吧,废话不多说,下面简单介绍一下这两款开源项目。一、ProxyDroid:ProxyDroid功能比较强大,用到的技术也比较多,源码也_proxydroid
文章浏览阅读2.5w次,点赞17次,收藏6次。创建项目后,运行项目时Gradle Build 窗口却显示错误:程序包R不存在通常情况下是不会出现这个错误的。我是怎么遇到这个错误的呢?第一次创建项目,company Domain我使用的是:aven.com,但是创建过程在卡在了Building 'Calculator' Gradle Project info这个过程中,于是我选择了“Cancel”第二次创建项目,我还是使用相同的项目名称和项目路_r不存在
文章浏览阅读8.9w次,点赞4次,收藏43次。前言:在Android上使用系统自带的代理,限制灰常大,仅支持系统自带的浏览器。这样像QQ、飞信、微博等这些单独的App都不能使用系统的代理。如何让所有软件都能正常代理呢?ProxyDroid这个软件能帮你解决!使用方法及步骤如下:一、推荐从Google Play下载ProxyDroid,目前最新版本是v2.6.6。二、对ProxyDroid进行配置(基本配置:) (1) Auto S_proxydroid使用教程
文章浏览阅读1.1w次,点赞4次,收藏17次。Android Studio提供了一个很实用的工具Android设备监视器(Android device monitor),该监视器中最常用的一个工具就是DDMS(Dalvik Debug Monitor Service),是 Android 开发环境中的Dalvik虚拟机调试监控服务。可以进行的操作有:为测试设备截屏,查看特定进程中正在运行的线程以及堆栈信息、Logcat、广播状态信息、模拟电话_安卓摄像头调试工具