• 2014-8-4阿里电话面试


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



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

    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.数据结构与算法








































  • 相关阅读:
    Recyclerview设置间距
    Python-socket / socketserver
    服务器存储空间不足,无法处理此命令
    gitbucket
    一些好用的Linux命令组合
    Python socket模块
    用Python在局域网根据IP地址查找计算机名
    thinkpad开机引导方式变成PCI LAN选项解决
    ipython安装
    python xml
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7251787.html
Copyright © 2020-2023  润新知