Android面试总结



                                 本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!

    经过大大小小的面试,同事说你出一份面试题总结吧,我说好;但一直由于各种原因没有总结,今天想起,先慢慢总结,给大家作为参考。这里面的问题有大公司,也有小公司,不具体指定。大家看的时候各自定位,不指明具体公司面试内容。


     一般情况下,首先会让你做个自我介绍,毕业时间、学校、专业,工作年限,做安卓的时间简单说一下,然后说几个做过的项目,最后拣一个自己最熟悉的项目讲下业务流程。接着面试官就会问你一些用过的技术,原则:懂就说,不懂就说没研究过,忘记就说记不清楚了(当然面试前要做好精心准备,不打无准备之仗)。

     

     下面不懂的你必须背下来,既是知识点,又是面试必备。



     笔记题:

 1、简要说明下列代码的运行结果

final int age = 19;


public void changeABC(String abc) {
abc += "def";
System.out.println(abc);
}

public void changeAge() {
age += 7;
}


public static void main(String[] args) throws InstantiationException,
IllegalAccessException {
FinalSet finalSet = FinalSet.class.newInstance();
String abc =new String();
abc="abc";
finalSet.changeABC(abc);
}

这个题是来测试你对final的理解;首先String是个对象,其次它也是个基本数据类型,final值不能再改变,因此age+=7这句是要报错的;另外String对象被运算时,已经生成新的对象,所以值为abcdef,原来值并不改变,只是引用指向了新的值。


2、代码见第1题,问代码执行完,age是否被回收,abc是否被回收?类的执行要经过三个阶段,ClassLoader的装载、链接即解析类成可执行文件、初始化即常量和方法体,执行完之后变量和方法体随着类的存在而存在、消亡而消亡,但所引用的值和对象会被回收。总之age和abc都不会被回收。


面试题:

1、手机中应用的初始内存是多少?限制内存是多少?虚拟机可分配最大内存是多少?

回答,拿出自己root过的手机,打开cmd命令行,adb shell getprop 

[dalvik.vm.dexopt-flags]: [m=y]
[dalvik.vm.heapgrowthlimit]: [48m]  //进程最大可分配内存
[dalvik.vm.heapsize]: [128m] //虚拟机最大可分配内存
[dalvik.vm.heapstartsize]: [5m] //进程初始分配的内存
[dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]

2、手机系统的内存是如何进行自我管理的?

详见:Android统就如何管理自己内存的?


软件工程:

1、快速原型法,快速给出一个初级版本,然后根据客户需求开发人员不断完善原型,直到客户满意再完善系统。这种开发方式经常在需求不明确的情况下进行。

2、瀑布式,明确需求,按部就班的从需求分析、软件设计、编码、测试、维护这个流程来走,并且重复这个过程,直到客户满意。这种开发方式一种用于一期、二期、三期这样长期大型项目的开发。


使用NDK的优点

保护代码

代码重用。

C运行速度快

可手动分配内存,如视频


Android面试总结,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。