首页 > 其他分享 >渣渣二本的辛酸面试之路:从深圳外包到杭州蚂蚁金服,4年小Android的爬坑历程

渣渣二本的辛酸面试之路:从深圳外包到杭州蚂蚁金服,4年小Android的爬坑历程

时间:2023-06-28 13:32:50浏览次数:39  
标签:生命周期 Service 区别 二本 面试 Activity Android 金服


渣渣二本的辛酸面试之路:从深圳外包到杭州蚂蚁金服,4年小Android的爬坑历程_Android

写在开头

笔者16年于长沙一个普通二本,毕业后去了满地都是机会的深圳。第一份工作是一家外包公司,主要业务是电商和电子支付信息安全方面的。一年后跳槽到华润旗下一个子公司做金融。至今已工作4年。大家都知道,对于跟我一样没有名校背景,也没有大厂出身的程序员来说,面试唯一的加分项就只有某一方面的技术深度了。所以我也建议各位小伙伴也跟我一样,选择一个自己感兴趣的,或者比较自信的方向,不断的钻研深入。

众所周知,2020年的冬天非常煎熬,疫情肆虐,大批的互联网公司都在裁员甚至倒闭。年后的金三银四跳槽季竞争愈发激烈,岗位需求急剧减少,求职者一面难求,能找到心仪offer的人就更少了。所以我并没有在疫情的风波中着急去跳槽找工作,而是一边观望,一边收集面试素材和面试真题,沉淀自己,提高自己的核心竞争力。

在刚过去的金九银十跳槽季,国内疫情已基本 稳定,经济复苏后,面试压力也就不那么大了,我开始投简历。我投递简历的顺序是按小公司—>大公司的套路来的,深圳的小公司非常多,中大型公司比较少,因此,在这一个多月的面试历程中,我估算了一下,大概面了6家小公司,2家中型公司和1家大公司。一般我去面比较大的公司之前,我都会先面一两家小公司预热一下。

以下是面试中被问到的一些问题

基础:

1.描述一下Activity 生命周期?
2.A Activity 打开 B Activity 时都有哪些生命周期回调?
3.Activity的启动模式分别说一下
4.如何保存Activity的状态或者(Activiy 重启怎么保存数据?)
5.横竖屏切换时Activity的生命周期
6.onStart,onStop和onResume,onPause的区别?
7.横竖屏切换时的生命周期?
8.Android中的Context, Activity,Appliction有什么区别?
9.Context是什么?,一个应用有多少个Context
10.Service是否在main thread中执行, service里面是否能执行耗时的操作?
11.Android应用程序启动过程
12.如何保证Service不被杀死?
13.onActivityResult 在哪两个生命周期之间回调?
14.Fragment的生命周期?
15.Activity和Fragment的区别?
16.简述下Acitivty任务栈和使用方法
17.请描述一下BroadcastReceiver
18.BroadCastReceiver的生命周期
19.什么是Service?Service的生命周期?
20.Service的启动方式?如果启动方式交织在一起的话,会出现什么情况?
21.怎么在Service中创建Dialog对话框
22.Service和Thread的区别?
23.ActivityManagerService了解吗?有什么作用?
24.广播的两种注册方式有什么区别?
25.广播发送和接收的步骤是什么?原理了解吗?
26.ContentProvider 是如何实现数据共享的?
27.activity的startActivity和context的startActivity区别
28.为什么要用ContentProvider?它和sql的实现上有什么差别?
29.ListView如何优化?(复用,滑动流畅等)
30.在什么情况下BroadcastReceiver接收不到广播?

Android 中高级

1.TCP的三次握手和四次挥手,为什么不是两次握手?为什么挥手多一次呢?
2.如何对Android应用进行性能分析
3.Devik进程,linux进程,线程的区别
4.android应用对内存是如何限制的?我们应该如何合理使用内存?
5.数字签名的原理
6.Android 源码中常见的设计模式以及自己在开发中常用的设计模式
7.Android与 js 是如何交互的
8.网页中输入url,到渲染整个界面的整个过程,以及中间用了什么协议?
9.说一下handler机制?
10.子线程如何使用 Handler?
11.说一下你对Handler中ThreadLocal的理解?
12.主线程的 Looper 什么时候创建的?ActivityThread 的 main 什么时候调用?
13.Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么
14.如何优化自定义View
15.如何解决View的事件冲突?举个开发中遇到的例子?
16.网络请求缓存处理,okhttp如何处理网络缓存的?
17.WebSocket与socket的区别?
18.handler postDelay这个延迟是怎么实现的?
19.hashcode()和 equals()的作用、区别、联系?
20.Handler、Looper、MessageQueue、Thread关系?
21.Hashmap如何解决散列碰撞(必问)?
22.Hashmap底层为什么是线程不安全的?
23.RecyclerView的ItemView层级过深怎么优化?
24.怎么设计Android线程间通信?
25.Bitmap JPG区别 图像处理:JPG、PNG及BMP的区别?
26.广播(全局 本地区别)
27.onSaveInstanceState onRestoreInstanceState区别,调用时机
28.Serializable与Parcable的区别?
29.是否了解SurfaceView,它是什么?他的继承方式是什么?他与View的区别(从源码角度,如加载,绘制等)。
30.说下冷启动与热启动是什么,区别,如何优化,使用场景等。

面试题集和答案在文末

下面我来结合我的面试经历来谈谈不同公司级别的面试难度。

小公司(0-200人)

一般只要你收到这类型公司的面试邀请,只要你能把自己做过的项目架构项目重难点说清楚,还有一些Android基础知识稍微扎实一点,然后你稍微准备一两个深一点的技术点,什么GC机制、基本的热修复原理说个10分钟,offer妥妥的,个别公司可能会考一些简单的算法题和智力题,比如冒泡、查找等等。在深圳这类型的公司三年安卓的价位一般在12-15这个区间,个别有钱的可能上限可以到18,一般都是15左右。至于面试题太常规,这里我就不多说了,想要看面试题和详细答案的可以直接看总结部分。

中型公司(200-1000人)

这类公司我面的其实也不是很多,深圳面试那家BL,做外汇金融的(ps:金融业务相关的公司都比较有钱,如果面试过程中面试官表现出对你有兴趣,聊薪资的时候你就可以大胆要)我去面试的时候,公司应该是在扩招阶段,面试的人很多。问的问题比较广泛,Java、Android、算法、框架都有涉及到,虽然问的都比较基础,但是我回答的都会比他问的更深入一点,也许是对我比较有好感,聊了半个多小时后,他叫我稍等一下,然后去叫来了他们的Team Leader。然后问了一些事件分发和绘制流程的细节问题,还问了一些binder的原理性问题,我…基本上能答出来,然后leader就直接问我,期望薪资是多少(一般技术面试官直接问你这个问题了,也就代表这份offer已经稳了)我说:22K。leader笑着说了句:好,说下周会给我答复。

后来也确实收到了答复,但是答复说22k给不了,18k能不能来入职,然后…就没有然后了。

大型公司(5000人以上)

腾讯

一面之后就没有音讯了,所以没有什么发言权…
面试问的跟其他小公司一样从基础问起,但面试官会一步一步往深的问,直到你答不出来为止,然后下一个点 ,框架、原理性问题和性能优化方面的工作经验是比较注重的。也不觉得是自己答的太烂,只能说面试者中优秀的人太多,自己不够亮眼吧

上海哔哩哔哩(B站)

B站一面

1.自我介绍
2.treemap、红黑树、完全平衡二叉树
3.快速排序和插入排序
4.个大致有序的数组如何排序,最快时间复杂度
5.如何自定义实现一个FlexLayout
6.RecyclerView的回收复用机制
7.如何实现RecyclerView的局部更新
8.说说对泛型的了解,Retrofit中的泛型是怎么解析的
9.说说对binder机制的了解
10.进程的状态,线程的状态,两者有区别吗
11.synchronized锁住对象的理解
12.Fragment replace生命周期变化
13.TCP和UDP有什么区别? 讲讲招手挥手过程
14.用过C++开发吗
15.Dalvik和Hotspot虚拟机了解吗?有什么区别?

B站二面

1.说自己做过最满意的项目
2.性能优化你做过哪些工作
3.屏幕适配做过哪些工作
4.遇到过哪些坑(困难点),是怎么解决的
5.如果要你来开发B站的一个页面,哪一个页面可以很快入手
6.用过哪些框架?MVVM?Jetpack有入手吗?
7.用过哪些开源库
6.热修复、插件化都用过,遇到过哪些坑?可以讲讲原理吗
7.为什么想来B站,看哪种视频多一点,点赞多还是白嫖多
8.你觉得B站APP有哪些可以优化的地方

面试B站可以说纯粹是因为兴趣吧,大学时期就一直用B站的APP,学习娱乐都是非常不错的地方。因为要去杭州面阿里,所以在上海朋友那里玩两天,顺便面阿里之前试试B站预热一下,一面二面是紧接着面的,邀请我三面的时候,我已经离开上海去了杭州,就没有后文了。

蚂蚁金服

实话实说,蚂蚁金服是我内推面试的,之前投过简历,但是没有收到面试。
这次面试难度总的来说中等偏上,面试过程跟腾讯的差不多,也是从基础往深处问,问到你答不出来为止。还问了一些安全性问题,因为我前几年的工作也是做金融的,所以相对来说比较轻松些,也正因如此才来了蚂蚁金服。其他注重的就是架构技术,设计思想,还有第三方库的一些掌握使用这些。
技术面试过后,hr会跟你谈薪资,众所周知,阿里的福利待遇是很好的,月薪18k,也算不错的。

期间也内推面试过百度、华为、字节、美团等公司。但是百度和华为对学历都有较高的要求,所以并没有拿到面试机会。字节、美团倾向于招5年以上的技术专家,所以也没有成功。


标签:生命周期,Service,区别,二本,面试,Activity,Android,金服
From: https://blog.51cto.com/u_16163510/6570840

相关文章

  • 转型Android系统开发,200份简历成功上岸(艰难的求职历程)
    今年的Android就业真的太不容易了,在找工作的过程中多次想放弃,被裁员两个月了,本科毕业5年,有大厂经历,Android应用4年,Android系统Framework半年左右,想要一个28K的工作都找不到。投递了200份简历,只有4个面试邀请。只好把屏蔽的外包公司都解开了,但外包的一般薪资只能达到20K左右。绝......
  • Android架构开发进阶指南,Android Jetpack Compose强化实战
    在我们日常的开发中,如果所有人各自为战,没有统一规范,久而久之,项目代码会变得混乱且后续难以维护。而这时,许多人就会使用Jetpack这个由多个库组成的套件,来减少样板代码,以便将精力更多的集中于重要的编码工作上面。统一的架构模式通常会给我们带来诸多好处,如:统一开发规范,使得代码整洁......
  • 【Flutter专题】Android Flutter入门笔记、技术解析与项目实战
    Flutter是一个跨平台、高性能的移动UI框架,其采用Dart语言开发,并使用自己的渲染引擎来绘制UI,保证了自身的高性能,保证了在Android和iOS上UI的一致性。目前Flutter已经支持iOS、Android、Web、Windows、macOS、Linux、Fuchsia(Google新的自研操作系统)等众多平台。与其他跨平......
  • 面试别瞎背题了!八月冲刺不要毁在传统一问一答的模式里,这份Android面试准备计划助你事
    背景这阵子,各大网络社交平台,刷到最多的就是面试求职相关的信息。这位网友在脉脉职言求助。本科毕业三年了,一直做安卓开发,请问跳槽找工作要怎么准备呢?写代码三年月薪不到一万是不是很失败?近日,还有程序员就因为这个问题在某职场社交软件上,被认证了的百度京东员工一顿嘲讽。找工作不可......
  • Android:“金九银十”战役打响还没看到跟BAT大佬的差距就危险了!来看看如何在大厂面试一
    前言金九银十已来临,打响九月第一战!开启中长线布局策略。想必现在有许多朋友,都在为即将到来的金三银四做准备,不知道各位朋友是否十足的把握能拿到自己心仪的Offer呢?下面无偿分享一些我多年面试和工作经验给你们,希望对你们的面试有一点帮助。如何在大厂面试一击而中?如何准备Android的......
  • 斗鱼直播实现:你主播最爱的Android音视频开发
    一、直播的本质实时推送/拉取音视频数据二、视频直播流程视频直播的流程可以分为如下几步:(1)采集(2)处理(3)编码和封装(4)推流到服务器(5)服务器流分发(6)播放器流播放1、采集视频的采集涉及两方面数据的采集:音频采集和图像采集,它们分别对应两种完全不同的输入源和数据格式。(1)两个传感器:CCD:图像......
  • 最佳被虐——Android混淆文件生成器
    直接上效果!混淆前;混淆后;使用获取混淆文件自己生成规则使用intellijidea打开 proguard-creater 工程编辑Main.java根据提示填写相应参数运行即可使用已有规则前往proguard-file 下载对应的文件即可Android工程配置开启混淆buildTypes{release{minifyEnabledt......
  • Android性能优化:微信自用高性能持久化框架——MMKV组件原理
    MMKVMMKV——基于mmap的高性能通用key-value组件,底层序列化/反序列化使用protobuf实现,性能高,稳定性强。githubMMKV是基于mmap内存映射的移动端通用key-value组件,底层序列化/反序列化使用protobuf实现,性能高,稳定性强。从2015年中至今,在iOS微信上使用已有近3年,其......
  • 精选Android中高级高频面试题:四大组件及Fragment原理
    因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。Activity1、说下Activity生命周期?参考解答:在正常情况下,Activity的常用生命周期就只有如下7个onCreate():表示Activity正在被创......
  • 精选Android中高级面试题:性能优化,JNI,设计模式
    性能优化1、图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理?参考回答:首先我们要清楚图片的三级缓存是如何的:如果内存足够时不回收。内存不够时就回收软引用对象2、内存中如果加载一张500*500的png高清图片。应该是占用多少的内存?不考虑屏幕比的话:占用内存......