2014-8-4阿里电话面试

电话打来时,我正在愉快的煮着面条,看着电影(尼玛,真屌丝),看到一个杭州的号码,小心脏跳了一下,马上暂停电影跑出去接电话~



废话不多说,下面就是面试经过(投的是客户端开发):

1.自我介绍。(我去,完全没准备,很久之前准备的全部忘了~)

2.android如何处理OOM?

主要从图片压缩、缓存、加载方式方面去回答。

3.listView如何优化?

主要从convertView缓存、ViewHolder等方面去回答。

4.jpg和PNG的区别?(额,这个真心不知道。。。)

从网上摘了一段如下:
.JPEG――是一种较常用的有损压缩方案,常用来压缩存储批量图片(压缩比达20倍),我们在相应程序中以"jpg"存储时,会进一步询问使用哪档图像品质来压缩,而在图形程序中打开时会自动解压。JPEG全部名称为:Joint photographic exptrs group。尽管它是一种主流格式,在需要输出高质量图像时不使用JPG 而应选EPS格式或TIF格式,特别是在以JPG格式进行图形编辑时,不要经常进行保存操作。
         PNG―― 是网景公司开发的支持新一代WWW标准而制定的较为新型的图形格式,它综合了JPG和GIF格式的优点,支持24bit色彩(256*256*256),压缩不失真并支持透明背景和渐显图像的制作,所以称它为传统GIF的替代格式。在Web页面中,浏览器支持的格式有JPG 、GIF和PNG。


5.堆和栈的区别?

这个就不解释了~但是比较蛋疼的是我在讲堆的时候故意扯到新生代、老年代、回收算法,期望面试官多问这方面的问题,额,没想到问完这个马上

换话题了。。。

6.String的存储形式?

没明白题目意思,先是回答String内部封装的是char数组,然后又提到new和直接赋值两种方式,也讲到了常量池。。。

7.问是否可以改变String的内容?

我的回答是可以的,虽然String是final的,但是可以通过反射去修改引用的字符数组的内容~

7.是否熟悉android的ClassLoader?

不熟悉啊。。。我说比较熟悉java的ClassLoader,android应该类似。接着介绍了android的类加载器层次,BootstrapClassLooader、ExtensionClassloader,ApplicationClassLoader等~

8.听到我说熟悉javaClassLoader,立马让我解释java的双亲委派机制。

之前有总结过~

9.看到我项目有个涉及到了数据库,接下来问了一堆数据库的问题(尼玛,no zuo no die啊,这是我的弱项),什么如何提高数据库查询速度?如何优化sql语句?分组查询语句?等等。。。这一块答的不好。。。

10.面试官貌似看出来了,没有再问下去。。。。又开始问java基础了,这一块比较easy,问题也比较老套:

hashtable和hashmap区别?多线程下如何使用hashmap?hash原理,时间复杂度?线程和进程区别?线程的生命周期?

11.然后情况直转而下。。。。java的锁有哪几种?(多线程这块我还没复习到啊我想说。。。。)lock和synchronized区别?。。。

12.面试官看我答的不太好(我估计是。。说话有点抖。。),不问线程了,开始问java io,让我举几个io类,我貌似一口气说了一堆哈哈~

当然没这么简单,接着问我是否熟悉NIO,哎,不熟悉啊,只说了这个NIO是个new io也是个not block io,然后就没然后了。。。

13.java到这就问完了,接下来问了一堆android相关的,比如子线程和ui通信的方式,service通信的方式及工作原理?handler机制?touch传递机制?

总体答的一般,我自己不太满意,这一块是我比较熟悉的,但是我表达能力不好,很多心里知道的讲不出来。。好忧伤~

14.我们都知道,activity有一个生命周期。。。(哈哈,难道让我说activity的生命周期嘛?)。。那你说说android为什么要设计一个生命周期呢??

额,,,,这还真没考虑过。。(更好的控制程序逻辑?更好地操作数据?更好地管理界面??该怎么答?谁能告诉我?)。。

15.activity的生命周期是由谁控制的??

框架层。窗口服务。这块了解的也不多,谁有好的资料求共享。。。

16.下面是算法部分:(哎,准备的东西一点也没问到。。。)

链表和数组的区别?二分查找算法?

如何进一步提高二分查找的效率?(这个有谁知道???)

二分查找和跳跃表的区别??(我去。。跳跃表没看。。。)

下面都是非技术问题了:

17.以后希望在哪工作?(南京、无锡、杭州。。嘿嘿~)

18.如何学android的?(自学。。)

19.是否有关注过大牛的博客?

20.如何去阅读大牛博客,是否会自己思考?

18.面试到此结束,问我有啥问题没?

我当然说有啊,我问了他是咋学android的,他回答说:看源码!

总结:

总体来说,回答的不咋地,一是紧张,二是还没准备好,三是我太菜!!!!

通过这次电话面试,我的感觉是:

1.还要提高自身的表达能力!

2.充分准备真的很有必要!

3.不要紧张!

技术上面还需提高的有:

1.NIO、2.java并发、3.android设计原理、4.数据库 5.数据结构与算法








































评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值