Android面试练习题(01)
来源:互联网 发布:铁路通信网络 编辑:程序博客网 时间:2024/06/05 02:05
就在前几天,一个学前端的同学在杭州找到了一份很不错的工作,11K,羡慕死我这还在学校里苦苦挣扎的菜鸟了。还没毕业就拿到这么高的薪水,给我造成了莫大的刺激。于是乎,下定决心, good good study,day day up!
恩,以后我要定时整理易错的面试题,留作备忘。也欢迎大家来玩味下这些题目。
1.Android中MVC模式 C层指的是?
A Activity
B Services
C Content
D Intents
正确答案:A
1) 模型层(Model):对数据库、网络、业务计算等的操作都应该在Model里面处理
2) 视图层(View):一般采用XML文件进行界面的描述。也可以使用JavaScript+HTML等的方式作为View层。
3)控制层(Controller):Activity中setcontentview可以指定使用哪个视图模型显示数据,起到的就是控制层的作用。
Android的控制层的重任通常落在了众多的Acitvity的肩上。这句话也就暗含了不要在Acitivity中写代码,要通过Activity交割Model业务逻辑层处理,这样做的另外一个原因是Android中的Acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。
2.Intent传递数据时,下列的数据类型不可以被传递的是()
A Serializable
B File
C Parcelable
D Thread
正确答案:D
Intent可传递的数据类型
1. 8种基本数据类型及其数组
2. String(String实现了 Serializable)/CharSequence实例类型的数据及其数组
3. 实现了Parcelable的对象及其数组 (自己来做, 操作较复杂, 但速度快)
4. 实现了Serializable的对象及其数组(系统来做, 操作简单, 但速度慢)
File在Java里也是类,在Android里也实现了Serializable接口
3.对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行?
A onPause()
B onCreate()
C onResume()
D onStart()
正确答案:A
1)如果在onCreate()时候就保存状态,那么用户使用过程中的状态都没办法保存,例如各种选项,填的数据等。
2)当前Activity失去焦点,或者说不再是前台进程时,它都有可能被销毁。而onpause()是其必然执行的一个生命周期回调函数,例如内存严重不足时,onstop()不会被执行,但是onPasue()是保证执行的 。
3)不过,onPause()执行的时间非常有限,只可以做一些轻量级的存储数据工作,所执行的操作不能太耗时,否则会影响新Activity的显示。
综上所述,onPause并不是最好的存储数据的地方,最好还是在onSaveInstanceState方法里面。
4.Android系统对下列哪些对象提供了资源池?
A Message
B Thread
C AsyncTask
D Looper
正确答案:AC
1)Message提供了消息池,有静态方法Obtain从消息池中取对象;
2)Thread默认不提供资源池,除非使用线程池ThreadPool管理;
3)AsynTask是线程池改造的,池里 默认提供(核数+1)个线程进行并发操作,最大支持(核数 * 2 + 1)个线程,超过后会丢弃其他任务;
4)Looper,每个Looper创建时创建一个消息队列和线程对象,也不是资源池;
因此答案为AC
5.在安卓应用程序开发中,可以通过( )获得屏幕的属性,从而取得屏幕的宽度和高度。
A getMetrics
B getDisplay
C getScreen
D getWindows
正确答案:A
获得屏幕的宽度和高度有很多种方法
1)通过WindowManager获取
DisplayMetrics dm = new DisplayMetrics();
heigth = dm.heightPixels;
width = dm.widthPixels;
2)通过Resources获取
DisplayMetrics dm = getResources().getDisplayMetrics();
heigth = dm.heightPixels;
width = dm.widthPixels;
3)获取屏幕的默认分辨率
Display display = getWindowManager().getDefaultDisplay();
heigth = display.getWidth();
width = display.getHeight();
4)通过类直接取
getWindowManager().getDefaultDisplay().getMetrics(dm);
第一种和第三种都是使用getWindowManager()得到的,但这个是建立在类Activity上的,如果自己的类没有继承这两个,则取不到数据
故选A。
- Android面试练习题(01)
- 面试练习题
- Python 面试练习题(持续更新)
- Oracle数据库面试练习题
- Oracle数据库面试练习题
- 面试——计算机网络专项练习题(一)
- Android专项练习题
- Android练习题day01
- Mysql,Sql练习题(整理中,整合了网上了一些试题和面试书上内容)
- 面试练习题-BFS 最短路径
- 程序员面试金典练习题4
- 程序员面试金典练习题4
- Android 面试题目01
- android面试(三)
- android面试(四)
- Android面试(转载)
- Android 面试(2)
- 面试点(android)
- Tensorflow 自动文摘: 基于Seq2Seq+Attention模型的Textsum模型
- OSI七层网络模型与TCP/IP四层网络模型及在java中对应API(Socket、HttpServlet)实现
- Unity Cache Server的使用
- Apache Flink(一) 简介
- HDU6024(dp)
- Android面试练习题(01)
- Spring Boot整合Mybatis
- jQuery常用的ajax-api-$.ajax()方法
- P1060 开心的金明 水水的01背包模板
- ResNeXt算法详解
- C++作业5
- Android异步机制更新UI线程(详解)
- 深度学习时代的计算机视觉
- TensorFlow深度学习框架