我的2020Android开发岗面经分享,在5面字节后结束我的求职生涯......

2024-02-19 00:10

本文主要是介绍我的2020Android开发岗面经分享,在5面字节后结束我的求职生涯......,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

都挺好

很多人挤破脑袋,破釜沉舟的想进大厂的根本原因还是大厂和小公司真的不一样。我是双非本科15年毕业的,毕业之后就一直在做Android相关方面的开发工作,到18年经历了两家创业公司,一家工作了不到半年老板就跑路了,一家工作到18年初,因为运营不当倒闭了(一度怀疑自己是不是去哪家公司就得哪家倒闭)。

在小公司做开发,一个同时开发几个app也是比较常见的,而且公司的代码和项目管理都非常的不规范,一些祖传代码能让你一些白了头。诸多因素综合下来更加坚定了我奔大厂的决心,提升技术能力也好,镀金也罢,又或是开篇说的一种能力的见证,在今年5月份我毅然决然的选择了裸辞,开始我的奔大厂之路。

至6月结束,面完了网易、oppo、拼多多、滴滴、优酷、蘑菇街,结果都是凉凉(内心还是很虚的,所以先找了些规模偏小的大厂下手)。总体的一个感觉就是,感觉面试官问的感觉都会,但是就是卡在喉咙里面说不出来,问到一些底层,源码,方面的东西,更是脑子一片空白,有个面试官甚至反问我,“你之前的16k是怎么拿到的?”。 准备还是太不充分了,突然意识到,随后在7月份开始降低了面试的频率,开始复习,从java基础到底层源码,该背的背,该写的写, 并在每次面试之后记录下面试官的问题,回去做复盘和延伸,实践出真知。

汗水+坚持+方法=成功

不论是校招还是社招都避免不了各种面试、笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的,我这个“有章可循”说的意思只是说应对技术面试是可以提前准备。 我其实特别不喜欢那种临近考试就提前背啊记啊各种题的行为,非常反对!我觉得这种方法特别极端,而且在稍有一点经验的面试官面前是根本没有用的。建议大家还是一步一个脚印踏踏实实地走。


建议寻找大厂方式
1.关注大厂官网,随时投递简历(走流程的网申);
2.线下参加宣讲会,直接投递简历;
3.找到师兄师姐/认识的人,帮忙内推(能够让你避开网申简历筛选,笔试筛选,还是挺不错的,不过也还是需要你的简历够棒);
4.博客发文被看中/Github 优秀开源项目作者,大厂内部人员邀请你面试;
5.求职类网站投递简历(不是太推荐,适合海投);

除了这些方法,我也遇到过这样的经历:有些大公司的一些部门可能暂时没招够
人,然后如果你的亲戚或者朋友刚好在这个公司,而你正好又在寻求 offer,那
么面试机会基本上是有了,而且这种面试的难度好像一般还普遍比其他正规面试低很多。
学习+复习

  • 笔试

很早就了解了互联网公司面试必考,也是一个程序员必备的内功,我的算法水平也就是刚及格的水平,肯定是不能达到面试所需的水平的,于是便开始有计划的在LeetCode上刷题,一开始是计划每天刷8道Easy难度的题,后来越刷越熟练后便每天刷4道Medium和4道Easy,然后转变为每天刷4~6道Medium。虽然不能说马上掌握全部,但是成果还是很不错的。

  • 手写代码

因为在面试过程中,面试官可能会要求你手写代码(根据我自己的经历来看,这个概率差不多是50%,要看不同的公司和面试官的喜好)。根据我的总结,认为手写代码有这么几个特点:

  1. 难度相比笔试难度较为简单。
  2. 由于是手写,与在键盘上敲代码有非常大的不同,有可能你在键盘上敲得飞起,但是你在纸上却一行都写不出来。
  3. 形式较为灵活,在没有思路时可以与面试官交流,就算最终没有写出来,你的思路得到面试官认可也是可以通过面试的。

针对这个环节,我准备了一本书,就是大名鼎鼎的 【剑指Offer】(必读!!!点击获取,学习书籍+视频+面试合集)。

  • 面试问题准备

Android 基础知识

  • Activity
  • Service
  • Broadcast
  • Receiver
  • ContentProvider
  • Intent
  • Fragment

Java 面试题

  • Java 基础
  • Java 中的设计模式

Android 高级

  • Android 性能优化
  • Android 屏幕适配AIDL
  • Android 中的事件处理
  • Android 中的动画
  • ContentObserver
  • 内容观察者作用及特点
  • 项目框架的使用

自我介绍

  • 开发中都使用过哪些框架、平台

  • 都使用过哪些自定义控件项目的流程

  • 项目中常见的问题

  • 即时通讯是是怎么做的常见框架分析
    Flutter 相关面试题全解析

  • Dart 部份

  • Flutter 部份

面试题以及解析,我都做了一个整理

需要的可以点击我的【GitHub】获取!免费分享!希望能用你的鼠标点个赞,给个小小的支持,更文不易,谢谢大家阅读!


其中包括了有基础知识、Java集合、JVM、多线程并发、 Handler、Activity相关、Fragment、service、布局优化、AsyncTask相关、设计模式、Android 事件分发机制、 Binder、Android 高级必备 :AMS,WMS,PMS、Glide、 Android 组件化与插件化等面试题和技术栈!已经帮很多人拿下互联网一线公司的offer。共有31个知识点。

面试详细过程

一面

1.StringBuilder、StringBuffer的区别,为什么StringBuffer快一点,看过这两个的源码没有,线程安全是怎么实现的?
2.LRUCatch的原理实现。
3.一些排序算法的时间复杂度:冒泡、快速排序。
4.try。。。catch。。。finally 问了个通过 exit()退出程序 会不会执行finally?
5.Java容器,set map的区别。
6.TCP UDP区别
7.设计模式,主要问了工厂模式的几种情况。
8.讲一下Java内存模型 局部变量存放在哪
9.讲一下引用传递
10.讲讲Handler机制。解释发送一条消息会经过哪些过程。问了我Handler源码看到哪一层(看到了Java)。Handler创建好以后怎么才能关联到他所在的线程?(这个回答的不是很好,感觉是在Handler的构造方法里关联的?),问了要传进什么参数?
11.ListView的VIewHolder为什么可以减少内存的使用?
12.多线程相关。Java中控制多线程的方法。锁、synchronize(可以对哪些对象加锁(静态变量加锁和对普通变量加锁有什么区别),实现原理)、wait notify
13.ANR。在广播内做耗时操作会怎么样。

二面

1、项目相关;
2、Handler机制,线程如何开启消息循环;
3、px、dp、sp,dp和sp的区别;
4、Java中内存分区,分别什么作用;
5、Java中的Error和Exception;
6、Java中的双亲委派模型;
7、Android app的打包流程,各种文件分别如何处理;
8、Java中面向对象设计原则;
9、图像处理的相关原理,裁剪、旋转、缩放等(项目相关);
10、Android中如何自定义view;
11、Android中的动画类别,插值器和估值器;
12、反问。

三面

0、项目相关;
1、Android中超时重传中关于流量和省电的优化(项目相关);
2、线程和进程区别;
3、死锁及解决方式;
4、Handler可以绑定多个Looper吗,如何判断Looper.myLooper获取得到的是当前的Looper、ThreadLocal;
5、TCP三次握手和四次挥手;
6、HTTP和HTTPS,及HTTPS加密过程,数字证书如何认证,常用的数字加密算法有哪些,中间人攻击;
7、GET和POST区别;
8、HTTP1.1、HTTP1.2、HTTP2.0区别;
9、CAS、synchronized、synchronized修饰方法和修饰静态方法有什么区别、乐观锁和悲观锁;
10、HashMap内部机制;
11、Binder机制;
12、一个数组,除了一个数只出现过一次,其他都出现两次,请找出这个数;
13、如何学习安卓的;
14、反问。

四面

0、自我介绍
1、handler机制,sendMessage和post(Runnable)的区别。
2、ThreadLocal原理,底层实现这一块最开始没答得很好,所以这两天总结了一下,通过源码进行了分析
3、HashMap底层,扩容,LinkedHashMap
4、Service的onBind和onStart差别
5、Activity启动生命周期,A跳转B
6、Android持久化方案,SharedPreference是否可以跨进程通讯。ContentProvider
7、ClassLoader机制,双亲委派。如果我要写一个Activity类,那怎么保证加载的是我自己写的Activity
8、算法题,约瑟夫环
9、反问

五面

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

我还录制了一些视频,需要的可以,评论666,【点击这里获取】!

不负

功夫不负有心人,经过两个多月的学习提升和面试“实践”,趁着“金九银十”这股东风,在9月中旬拿到了字节的offer,除了自己的努力之外,可能还有一部分原因就是字节最近一直在扩大招聘吧(手动狗头),让我有了“趁虚而入”的机会。定薪25k,每天都有免费下午茶,还有不限量的零食自取,21点以后车费报销,996的“福报”我在程序员本命年拿到了(996+1024=2020)。

分享文章一直等到现在才写,一个原因是刚进公司没多久,自然要表现出对“福报”的感恩戴德,抽不出时间来再做总结分享。还有一个原因就是自己都不确定自己分享到底有没有价值或者是借鉴意义,到现在还一直感觉自己是以一种“幸运儿”的身份进来的,毕竟之前面试的大厂没有一个拿到offer的。不过也可能这就是传说中的“越努力越越幸运吧”!

这篇关于我的2020Android开发岗面经分享,在5面字节后结束我的求职生涯......的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/722892

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。