美图2017大三实习生电话面试
本人大三在校生,安卓小菜,打算找暑期实习,之前向美图发过简历,昨晚接到电话面试。
这次发现自己的确基础太差,很多东西自己是写过用过的,但是一细究,就发现自己从来没有去思考,有的基本内容之前了解,也都忘记了。而且自己很紧张,也是第一次面试没经验,全程智商掉线,问的都是安卓和java的基础性问题,但是答的一塌糊涂,这里贴出来,自己温习下也让大家了解下。
因为在简历里自己写了在校开发的几个项目,所以一开始让介绍一个自己认为比较好的,说一下其中遇到的技术问题和解决方法。
然后对安卓基础开始考察。大概有这些。
1.singleTask是否了解,举一个它的使用场景,后续问到会调用的方法。
各个模式的出入栈我能说出,但是singleTask的使用场景一时懵逼,举了个更适合singleTop的场景,果然问我觉得这种使用singleTask是不是最佳选择,自己觉得不是最佳,做了解释。
2.listView与recycleView常用哪个?(常用listView)问一下listView复用的问题。
a.说一下listView是怎么复用view的。
描述了listView重新使用已经移出屏幕的view。
b.怎么复用view。
这个肯定熟悉的,但是自己一来没经验二来太紧张,描述起来乱七八糟。
c.不使用viewHolder能不能进行view的复用。
这一个我一时也没能想出,大家能不能提供一个思路?还是根本就不行呢?
d.描述了一个场景,一个listView共有200项,10项可以占满屏幕,从顶部一直滑到底部,期间不向上滑,使用了复用的情况下,getView方法调用调用多少次,convertView初始化了几次。
自己回答gatView是每次都要的,convertView我们使用复用应该是10次。面试官人很好,说提示一下初始化了11或者12次,思考下为什么,我表示懵逼(其实此时大脑早已短路,对这次也没再抱有多大希望)。面试官告诉我,当我们最下方未完全滑入上方为完全滑出,这时也是要初始化的。我再次在心里感叹了自己智商掉线。
3.考虑这样一个布局怎么实现,就是常见的浏览器搜索框输入的时候,下方会出现搜索热词,各个热词排满一行后进入下一行。
我的思维已经完全僵化,也是没get他实际想问的知识,自己思考了使用各种布局利用各种wrapcontent、gravity,但是没有想到。面试官说其实这个比较难了,需要用到自定义viewGroup,我不肯放过机会机会表示自定义viewGroup我是写过的,实现这一个的话可以在layout方法操作,超过一行后布局到下一行。面试官紧接着问layout方法是什么作用,我只回答了确定各个子view的位置,此处需要大家帮助解答。
4.说一下view和viewGroup的事件传递机制吧,dispatchTouchEvent、onTouch和onTouchEvent先后先后顺序,还有onInterceptTouchEvent。
这一个自己其实当天还是仔细看过的,但是太紧张了,说的乱七八糟,尤其是拦截的部分,表述太差,也的确是了解不够,面试官表示了解的比较浅显。
5.contentprovider是否只能是数据库的数据,别的程序怎样读取。
自己只说出了contentResolver和uri,定义权限没说清楚。
6.描述了一个场景,微博中点击一个淘宝的链接,打开了淘宝应用,这是怎么完成的。
7.说一下fragment和activity的通信。
自己说到自定义接口,在fragment初始化时判定是否实现了接口,面试官紧接着问在哪个生命周期函数可以判断,我回答onAttach是双方绑定,onActivityCreated是activity的onCreate已经返回,我都是在onActivityCreated里判断的。面试官没有评价,此处求解。
8.fragment内部怎样嵌套fragment。
这个地方的好多函数我忘记了,所以自然说不出……事后自己查看是getChildFragmentManger,但是记成了getChildFragmentContext。面试官紧接着问,内层frag调用getContext获取的是哪一个context,自己之前就已经记错,回答是获取外层的,面试官无奈说回去自己写一下代码试下。
8.java的问题
a.静态内部类与非静态内部类区别。
b.因为前一个问题提到了内存泄漏,紧接着问你是怎么理解内存泄漏的。
c.什么样的对象是应该回收的呢?
bc两个问题自己答的乱七八糟,应该说我是懂得基本的道理的,但是叙述太差,说不准确也说不到要点。
d.匿名内部类有没有构造方法。
e.匿名内部类使用局部变量的要求。为什么要是final的。
为什么是final的表示不知道,其实自己查过多次,但是好像这里处理的很模糊?
面试结束,我表示很不好意思……
唉,自己基础还是太差,看来需要多努力了。#安卓工程师#
这次发现自己的确基础太差,很多东西自己是写过用过的,但是一细究,就发现自己从来没有去思考,有的基本内容之前了解,也都忘记了。而且自己很紧张,也是第一次面试没经验,全程智商掉线,问的都是安卓和java的基础性问题,但是答的一塌糊涂,这里贴出来,自己温习下也让大家了解下。
因为在简历里自己写了在校开发的几个项目,所以一开始让介绍一个自己认为比较好的,说一下其中遇到的技术问题和解决方法。
然后对安卓基础开始考察。大概有这些。
1.singleTask是否了解,举一个它的使用场景,后续问到会调用的方法。
各个模式的出入栈我能说出,但是singleTask的使用场景一时懵逼,举了个更适合singleTop的场景,果然问我觉得这种使用singleTask是不是最佳选择,自己觉得不是最佳,做了解释。
2.listView与recycleView常用哪个?(常用listView)问一下listView复用的问题。
a.说一下listView是怎么复用view的。
描述了listView重新使用已经移出屏幕的view。
b.怎么复用view。
这个肯定熟悉的,但是自己一来没经验二来太紧张,描述起来乱七八糟。
c.不使用viewHolder能不能进行view的复用。
这一个我一时也没能想出,大家能不能提供一个思路?还是根本就不行呢?
d.描述了一个场景,一个listView共有200项,10项可以占满屏幕,从顶部一直滑到底部,期间不向上滑,使用了复用的情况下,getView方法调用调用多少次,convertView初始化了几次。
自己回答gatView是每次都要的,convertView我们使用复用应该是10次。面试官人很好,说提示一下初始化了11或者12次,思考下为什么,我表示懵逼(其实此时大脑早已短路,对这次也没再抱有多大希望)。面试官告诉我,当我们最下方未完全滑入上方为完全滑出,这时也是要初始化的。我再次在心里感叹了自己智商掉线。
3.考虑这样一个布局怎么实现,就是常见的浏览器搜索框输入的时候,下方会出现搜索热词,各个热词排满一行后进入下一行。
我的思维已经完全僵化,也是没get他实际想问的知识,自己思考了使用各种布局利用各种wrapcontent、gravity,但是没有想到。面试官说其实这个比较难了,需要用到自定义viewGroup,我不肯放过机会机会表示自定义viewGroup我是写过的,实现这一个的话可以在layout方法操作,超过一行后布局到下一行。面试官紧接着问layout方法是什么作用,我只回答了确定各个子view的位置,此处需要大家帮助解答。
4.说一下view和viewGroup的事件传递机制吧,dispatchTouchEvent、onTouch和onTouchEvent先后先后顺序,还有onInterceptTouchEvent。
这一个自己其实当天还是仔细看过的,但是太紧张了,说的乱七八糟,尤其是拦截的部分,表述太差,也的确是了解不够,面试官表示了解的比较浅显。
5.contentprovider是否只能是数据库的数据,别的程序怎样读取。
自己只说出了contentResolver和uri,定义权限没说清楚。
6.描述了一个场景,微博中点击一个淘宝的链接,打开了淘宝应用,这是怎么完成的。
7.说一下fragment和activity的通信。
自己说到自定义接口,在fragment初始化时判定是否实现了接口,面试官紧接着问在哪个生命周期函数可以判断,我回答onAttach是双方绑定,onActivityCreated是activity的onCreate已经返回,我都是在onActivityCreated里判断的。面试官没有评价,此处求解。
8.fragment内部怎样嵌套fragment。
这个地方的好多函数我忘记了,所以自然说不出……事后自己查看是getChildFragmentManger,但是记成了getChildFragmentContext。面试官紧接着问,内层frag调用getContext获取的是哪一个context,自己之前就已经记错,回答是获取外层的,面试官无奈说回去自己写一下代码试下。
8.java的问题
a.静态内部类与非静态内部类区别。
b.因为前一个问题提到了内存泄漏,紧接着问你是怎么理解内存泄漏的。
c.什么样的对象是应该回收的呢?
bc两个问题自己答的乱七八糟,应该说我是懂得基本的道理的,但是叙述太差,说不准确也说不到要点。
d.匿名内部类有没有构造方法。
e.匿名内部类使用局部变量的要求。为什么要是final的。
为什么是final的表示不知道,其实自己查过多次,但是好像这里处理的很模糊?
面试结束,我表示很不好意思……
唉,自己基础还是太差,看来需要多努力了。#安卓工程师#