jjzjj

Android面试经文分享;站在面试官角度,offer请拿好!

谁动了我的代码 2023-10-24 原文

身在曹营心在汉

在金九银十的面试季。许多人的技术满满;但薪资永远加不上去,老板加薪始终抠抠搜搜的。

这也怨不得老板,这是各个企业的运营模式。行业的薪资永远是通过跳槽增长的。所以想涨薪资,那就得广撒网择优捕捞。必须成为“Android小海王”才能让你拿高薪进大厂!对于自身发展(身在曹营心在汉)是褒义的。谁不想往“钱”看?


我们都懂,面试中问到的问题基本上项目开发中很少遇到。但是,面试官递给你火箭材料你还必须得造火箭。别用技术的高级来定义面试问题;因为面试是一种技术的概括和表达,不仅看出你的技术程度;还能看出你的知识面广泛。

对此我分享一些面试经文如下:

面试经文分享

1、拼多多(三面)

第一面:

1.java虚拟机

2.内存优化

3.arraylist hashmap linkedhashmap

4.binder

5.surfaceView和view

6.AMS WMS

7.APK瘦身

8.锁(死锁的场景和解决方案)

9.算法 两个字符串 比较最大的公共字符串 ,主要是思路 (面对问题,以大化小)

第二面:

1.http优化 okhttp多路复用

2.硬币兑换问题 [算法]

3.车的通过问题,一条路上,30分钟内看到有车通过的概率是90%,那么5分钟之内概率是多少

4.图的展现形式

5.全球货币转换功能的代码

6.给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度

第三面:

1.mvp mvvm区别 mvvm中的databinding如何刷新view的

2.跨进程通信方式,binder机制

3.leakcanary原理

4.内存优化和工具,APK瘦身

5.get和post的区别,浏览器中输入一个地址然后展示出页面这个过程中做了哪些操作

6.断点续传和下载的原理

7.glide缓存原理,lru算法

8.动态代理原理

2、识货(三面)

第一面:

1.apk启动流程 zgot fork出一个进程到 从ActivityThread的main方法,再到AMS 再到Intrumention启动

2.内存优化了解多少,什么情况下会发生内存泄漏。 答到(四种引用链关系),再深入就是java内存模式,类的内存分布

3.说一下断点续传和多线程下载怎么实现。 请求时候往请求头放入range和index参数 再用RandomAccessFile写文件

4.类的动态加载 classLoader的双亲委托机制

5.你组件间是怎么通信的

6.让你设计一个图片加载框架你会怎么设计

7.应用商店是怎么样的一个架构设计。

8.你做的应用商店技术指标和业务指标是哪些

9.对下载和安装指标提高做了哪些优化

10.你刚讲到了handler,那你说一下你对handler的理解,怎么用java实现一个handler message messageQueen Looop Handler ThreadLocal 都讲一下对应的作用, 再从程序设计角度而言讲哪些地方设计的好 他怎么保证一个Thread只有一个Loop和MessageQuenen,为什么推荐我们handler.obtainMessage()

第二面:

1.说下你做的应用商店感觉最难的点在哪

2.为什么选用Fresco作为图片加载框架

3.安卓系统版本之间对Bitmap怎么处理的 安卓2.3之前把像素数据存储在native层中,之后的系统把byte存储java层中,8.0后有放回native中,但有自己的回收机制

4.你用CC框架组件化,为什么不选择阿里的Arouter框架,CC有什么好处。使用过程中用到什么问题。

5.你平时怎么做性能优化的

6.你用到哪些工具做性能优化,冷启动怎么优化

7.插件化你懂吗

8.有对公司做过什么突出的贡献吗?

9.你平时怎么自己学习新技术

10.你对自己的职业规划是怎么样的

11.你觉得自己哪方面比较擅长,哪方面比较短缺。

第三面:

1.你觉的你做的项目最有挑战性的是什么

2.你是怎么做技术选型的,说一下为什么选用CC而没有选ARouter,你在用组件化框架的时候有没有遇到什么问题

3.MVC和MVVM,MVP说一下你的理解

4.你对你负责的项目在性能优化上做了哪些努力

5.你平时是怎么学习的

6.你对自己的未来职业规划是怎么样的

3、新浪(二面)

第一面

1.java的四种引用分析

2.synchronize和volatile各自的机制是怎样的

3.handler源码原理相关的问题

4.自定义view的绘制,事件分发机制,怎么解决滑动冲突,activity启动的过程

5.https单向认证,对称加密和非对称加密,在浏览器输入url发生了什么

6.jvm相关,如new一个对象的过程发生了什么,垃圾回收机制

7.ANR 是什么?怎样避免和解决 ANR

8.问了关于线程池的一些问题

9.跨进程通信有什么方案

10.binder机制

11.hashmap源码

12.用什么方案缩小apk体积

13.recyclerview和listview对比

14.做过什么内存优化,性能优化

15.okhttp源码设计原理

16.手写一道算法题,关于DFS+回溯算法的

第二面

1.问了之前的一些项目经历,在团队做了什么,主要负责哪一块,选择一两块自己认为做得最好的展开讲讲,过程中会打断问问题

2.有没有做过插件化,做到什么程度,讲讲原理

3.由于我之前项目有用到mvvm和jetpack,问了一些jetpack组件相关的源码,和mvvm跟mvp的对比

4.又问了okhttp,缓存拦截器原理是怎样的

5.项目中做过什么性能优化,具体说说

6.平时项目中用到什么设计模式,挑几个常用讲讲

7.聊人生聊职业规划


以上分享三个Android开发面试的经文;可以看出许多技术点基本上不常用到。面试官主要是通过几轮面试对你的技术程度了解。技术答疑是占比最大的。所以把面试题刷好,是很重要的。对此网上的面试经文也比较少;这里推荐阿里的Android专家整理的《Android面试题精选》
出席很多面试场合担任面试官。记录了许多以往的面试经文。

这还不得拿捏面试官,offer拿到手软?

跳槽是加薪之母,一切不以加薪为目的的跳槽都是耍流氓。

有关Android面试经文分享;站在面试官角度,offer请拿好!的更多相关文章

  1. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

    HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

  2. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  3. 西安华为OD面试体验 - 2

    西安华为OD面试体验开始投简历技术面试进展工作进展开始投简历去年一整年一直在考研和工作之间纠结,感觉自己的状态好像当时的疫情一样差劲。之前刚毕业的时候投了个大厂的简历,结果一面写算法的时候太拉跨了,虽然知道时dfs但是代码熟练度不够,放在平时给足时间自己可以调试通过,但是熟练度不够那面试当时就写不出来被刷了。说真的算法学到后期我感觉最重要的是熟练度和背板子(对于我这种普通玩家来说),面试题如果一上来短时间内想不出思路就完蛋了。然后由于当时找的工作不是很理想就又想考研了。但是考研是有风险的,我自我感觉自己可能冲不上那个学校,而找工作一个没成可以继续找嘛。本着抱着试试看的态度在boss上投了简历,

  4. [面试直通版]操作系统核心之进程、线程与协程(下) - 2

    点击->操作系统复习的文章集目录操作系统线程线程是什么进程与线程的关系用户态/内核态操作系统资源管理内核态用户态内核态/用户态切换程序运行类型分析计算密集型IO密集型结合进程,线程来理解程序运行类型分析协程基础上下文切换协程协程为什么叫协作式线程?协程的优缺点操作系统线程典型问题:简述进程和线程的区别以下内容带您一步步了解线程是什么比进程更小的独立运行的基本单位-线程(Threads)线程的提出主要是为了提高系统内程序并发执行的程度,从而进一步提升系统的吞吐量,充分发挥多核CPU的优越性而设计的引入进程是为了操作系统更加方便地管理程序,使得多个程序能并发管理和执行而线程则是为了减少程序在并发执

  5. 连续3天3场分享,KubeVela@KubeCon EU 2023 抢鲜看! - 2

    自从2019年OpenApplicationModel诞生以来,KubeVela已经经历了几十个版本的变化,并向现代应用程序交付先进功能的方向不断发展。最近,KubeVela完成了向CNCF孵化项目的晋升,标志着社区的发展来到一个新的里程碑。今天,KubeVela社区内活跃着大量来自全球的开发者,共同推动KubeVela项目的落地和发展。在即将开幕的KubeCon+CloudNatvieConEurope2023上,我们惊喜地发现,连续3天,KubeVela项目的贡献者、企业用户和来自阿里云的核心维护者,将从不同角度展对KubeVela项目的分享。让我们先睹为快!🎙️BuildingaPlat

  6. 【华为OD技术面试 | 真八股 】MySQL联合索引,谈springIOC的理解,谈springAOP的理解,Erika和zookeeper等问题 - 2

    文章目录华为OD面试流程1.mysql数据库建了两个字段,且设置了联合索引,如果其中有一个字段为空会出现什么问题?2.谈谈springIOC的理解,有什么好处,解决了什么问题3.谈谈springAOP的理解,切面编程有没有实际应用,有哪些注解,作用是什么,有那些应用场景?4.Erika和zookeeper有了解过吗,作用是什么,主要解决了什么问题5.谈谈JDK、JRE、JVM的理解,区别是什么6.谈谈对泛型的理解7.JVM的组成华为OD面试流程机试:三道算法题,关于机试,橡皮擦已经准备好了各语言专栏,可以直接订阅。性格测试:机试技术一面(本专栏核心)技术二面(本专栏核心)主管面试定级定薪发of

  7. ruby-on-rails - 在 Facebook、转推等上分享直接 Ruby gem 中的按钮? - 2

    注意http://techcrunch.com/2010/04/04/he-even-makes-coldplay-sound-fun/顶部的那些按钮在社交网络上分享网址?我想为我正在构建的网站做一些非常相似的事情。ShareThis提供了一个可以做同样事情的小部件,但它是品牌化的和外部的。我正在寻找纯Ruby解决方案。包含可包含在RailsApplicationHelper类中的模块的gem将是完美的。在我重新发明轮子之前,感谢您的建议!想象一下: 最佳答案 我能找到的最好的是:http://www.addthis.com/这里有

  8. 《ChatGPT实用指南》(精编版)重磅发布,全网免费分享,快上车,别掉队 - 2

    文/高扬(微信公众号:量子论)据上次3月18号发布的V1.8版,已经过去十天,这期间AI领域发生了很多重大变化。因此,我们对《ChatGPT实用指南》进行了重大改版,增加了大量实用的操作和详细的讲解,保证小白可以轻松上手,快速驾驭ChatGPT。V2.0版本亮点:1、结构更合理。分为基础篇、进阶篇、高级篇,从易到难,由浅入深,符合学习规律。2、内容更充实。扩充了27页的内容,尽量看图说话,将操作步骤一步步地展示出来。3、排版更美观。按图书出版的规范制作,便于知识点查阅。后记:2022年11月底,我们在HackerNews上看到了关于ChatGPT的新闻报道后,开始意识到,人工智能的春天来了,这

  9. Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信) - 2

    运行有问题或需要源码请点赞关注收藏后评论区留言一、利用ContentResolver读写联系人在实际开发中,普通App很少会开放数据接口给其他应用访问。内容组件能够派上用场的情况往往是App想要访问系统应用的通讯数据,比如查看联系人,短信,通话记录等等,以及对这些通讯数据及逆行增删改查。首先要给AndroidMaifest.xml中添加响应的权限配置 下面是往手机通讯录添加联系人信息的例子效果如下分成三个步骤先查出联系人的基本信息,然后查询联系人号码,再查询联系人邮箱代码 ContactAddActivity类packagecom.example.chapter07;importandroid

  10. Android 10.0 设置默认launcher后安装另外launcher后默认Launcher失效的功能修复 - 2

    1.前言 在10.0的系统rom定制化开发中,在系统中有多个launcher的时候,会在开机进入launcher的时候弹窗launcher列表,让用户选择进入哪个launcher,这样显得特别的不方便所以产品开发中,要求用RoleManager的相关api来设置默认Launcher,但是在设置完默认Launcher以后,在安装一款Launcher的时候,默认Launcher就会失效,在系统设置的默认应用中Launcher选项就为空,点击home键的时候会弹出默认Launcher列表,让选择进入哪个默认Launcher.所以需要从安装Launcher的流程来分析相关的设置。来解决问题设置默认La

随机推荐