您当前位置:网站首页 > 面试经验 >

美图笔试面试经验

笔试:

1.

写一个单例模式:

我们学习到的单例模式一般有两种实现方法,一种是懒汉单例,一种是饿汉单例,考的虽然简单,但是由于是社招的难度,所以楼主写了一个双重锁的,为了防止线程并发出现单例问题,后来跟面试官聊得时候也一并讲了《effective java》中推荐的枚举类型的。

2.写出ListView中的getView代码,要求优化滑动速度:

这里主要是考察对于listview掌握的熟练程度,listview中我们一般使用一个viewholder来进行View的复用,防止android去过度创建视图带来的资源的浪费。

其二,我们可以在Listview在滑动的时候去主观停止加载一些耗时的诸如Bitmap的数据,在滑动停止后再进行加载。

3.找出字符串中的第一个只出现一次的字符

这里实现有很多种方法,当然暴-力循环是可以解决问题,但是复杂度为O(n2),所以这里不建议使用,面试官也不会满意这种处理方法。

我这是使用了简单的哈希表的模拟,使用空间去换时间效率的做法,具体思路是将字符串中出现的字符的ACII码当做数组的角标,当然这里要申请一个int[256]的一个数组,因为字符总共有256个,然后再次扫描一遍,计算出每个字符出现的次数,最后还需要再次扫描一遍原来的字符串,找到数组中第一个a[i]=1的即是答案。

面试部分

1.getview里面的viewholder为什么要设置成静态的?

申明为static类,是因为一个在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。对于viewholder而言,我们只需要一个viewholder进行复用即可,所以使用static变量

2. scrollerview和listview的区别在哪里,两个控件分别在什么情况下使用

说实在的,这个问题问的我也不太清楚,依照我的思路而言,就是看我们需要展示数据的效果如何,如果数据呈现的是有规律的,是一个list,在布局上要求具有相似性,则使用listview,而scrollView一般用了呈现一些无规律的数据。

3.自己自定义过animation么,讲讲过程

关于自定义animation的使用,主要需要实现的两个方法是initalize方法和applyTransformation方法,一个是进行初始化相关操作的方法,另一个是进行相应的矩阵变换,最后来达到自定义动画的使用,这里需要对数学中的变换矩阵有一定的认识才行。

4. 触摸事件的你是怎么理解的?view的绘制过程是如何进行的?

触摸事件的伪代码处理如下图所示:

@Override

public boolean onInterceptTouchEvent(MotionEvent ev) {

boolean intercept=false;

int x= (int) ev.getX();

int y= (int) ev.getY();

switch (ev.getAction())

{

case MotionEvent.ACTION_DOWN:

intercept=false;

break;

case MotionEvent.ACTION_MOVE:

if (父容器需要当前点击事件)

{

intercept=true;

}else

{

intercept=false;

}

break;

case MotionEvent.ACTION_UP:

intercept=false;

break;

}

return intercept;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

主要是三个方法(dispatchTouchEvent,onInterceptToucheEvent,touchEvent)的应用,这里就不详细讲解了,不懂的自行百度即可。

View绘制过程主要由三个方法构成:

onMeasure->onLayout->onDraw

1

2

3

其中实现的过程是由ViewRootImpl进行实现的,源码中通过这个方法进行setView操作,进而调用permTraversals方法进行view group的 onMeasure->onLayout->onDraw绘制,大概介绍一下,详细的百度吧。

5.fragment跟viewpager一起使用时候,fragment的加载机制是怎么样的?

这里主要考察的知识点是viewpager和fragment使用时候的预加载机制,viewpager在显示第一个的时候会预加载第二个,以此类推,如果想要取消这中加载方式我们可以查看源码中有个方法:

/**

* Set a hint to the system about whether this fragment's UI is currently visible

* to the user. This hint defaults to true and is persistent acrofragment instance

* state save and restore.

*

*

An app may set this to false to indicate that the fragment's UI is

* scrolled out of visibility or is otherwise not directly visible to the user.

* This may be used by the system to prioritize operations such as fragment lifecycle updates

* or loader ordering behavior.

*

* @param isVisibleToUser true if this fragment's UI is currently visible to the user (default),

* false if it is not.

*/

public void setUserVisibleHint(boolean isVisibleToUser) {

if (!mUserVisibleHint && isVisibleToUser && mState < STARTED) {

mFragmentManager.performPendingDeferredStart(this);

}

mUserVisibleHint = isVisibleToUser;

mDeferStart = !isVisibleToUser;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

将他设置为false即可。

6.说一说线程池吧

主要的线程池有:CacheThreadPool,ScheduledThreadPool,SingeThreadPool,FixThreadPool,这里就不详细介绍了。

7.了解过surf-aceview么?

surf-ace有自己独立的线程,我们如果需要进行更加复杂的view的制作,可以使用此方法,我也还没研究过,有空恶补一下,感兴趣的自己百度把。

8.drawable下的xml有那些节点,你自定义过哪些,如何使用的

主要shape(自定义drawable),se-le-ctor(针对不同点击状态),layer-list(这个相当于ps中的图层的概念)。

9.新出的support.design里面有研究过么,知道recycleview和appbarlayout这些控件相关实现么

目前处于会用的状态,简单写了一个小的项目,使用md设计+RxJava+Retrofit+Picasso

项目地址:https://www.chddh.com/JerryChan123/MyDrribleApp

实现还没有研究过

相关文章
农行深圳分行面试经验

面试:深圳农行的面试是两轮,没有无领导: 一面:自我介绍(1min)+每人一个问题+抢答题,每组5-6人。 自我介绍一定不能超时,不能提院校生源地等信息,我自我介绍的结构是:在校表现(获奖+文体…[阅读]

苏宁金融面试经验总结

上上周六投的苏宁,上周二收到电话通知,说是第二天笔试,听说苏宁笔试是行测啊,从来没做过行测题的我赶快找了一份卷子刚做了一半,晚上就熄灯了,没办法,只能硬着头皮去了,听天由命吧。 第…[阅读]

广西移动面试经验

2月16日终于终于到了广西移动面试的时刻!!! 早早的赶到桂景大酒店,已经有不少人在那里了。在电梯里跟一小姑娘聊天时得知,年后这次面试是广西省内专场,年前是省外的。听我是从山东来的,很是…[阅读]

中国移动深圳面试经验

今天结束了最终面试,简单小结一下: 1 面试一共3轮,前两轮都是每轮2个面试官,最后一轮好像是个BOSS。深圳移动面试不太看重技术,主要看重你给面试官的感觉,当然有好的相关的项目背景是最好…[阅读]

汇丰银行面试经验

汇丰银行banker development 的筛选过程是我经历的面试里面最严格、最正规的 网上大家对此的介绍不多,今天跟大家分享,算是为师弟师妹积累点有益的东西吧 汇丰银行今年有两个program,一个mana…[阅读]

《美图笔试面试经验》一文由长大导航助学网免费提供,来源于网络。本文著作权归作者所有,如果侵犯了您的权益,请及时与我们联系,我们会立即删除!

原文链接:http://www.chddh.com/mianshijingyan/67260.html

长大导航(www.chddh.com)旗下长大导航助学网|陕ICP备11001928号 站长邮箱:admin#chddh.com|

《美图笔试面试经验》|友情链接:长大导航 应用 电脑 文字 作文 范文 演讲稿 网页游戏 游戏 手机 news 合同 学生 职场