文档章节

程序员挑战高薪,你必须会的十大面试题《一》

抉择很难
 抉择很难
发布于 2015/11/18 16:37
字数 1183
阅读 193
收藏 9

程序员挑战高薪,你必须会的十大面试题《一》

IT蓝豹                 

                       

1:Android中五种数据存储方式分别是什么?他们的特点?

    (1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使
            用,生成XML的格式存放在设备中
    (2) SQLite数据库,存放各种数据,是一个轻量级的嵌入式数据库
    (3) File文件,通过读取写入方式生成文件存放数据
    (4) ContentProvider,主要用于让其他应用程序使用保存的数据
    (5) 通过网络获取数据和写入数据到网络存储空间

        答:Android提供了五种存取数据的方式

 

2:说说 android 中 mvc 的具体体现

mvc是model,view,controller的缩写,mvc包含三个部分:
模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。
视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。
控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,响应用户出发的相关事件,交给m层处理。
android鼓励弱耦合和组件的重用,在android中mvc的具体体现如下:
1)视图(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入。
2)控制层(controller):android的控制层的重任通常落在了众多的acitvity的肩上,这句话也就暗含了不要在acitivity 中写过多的代码,要通过activity交割model业务逻辑层处理,这样做的另外一个原因是android中的acitivity的响应时间是5s, 如果耗时的操作放在这里,程序就很容易被回收掉。
3)模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,当然对业务计算等操作也是必须放在的该层的。

 


3: 简述SharedPreferences存储方式以及SharedPreferences与SQLite数据库的区别

     SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配 置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能读 取数据而不支持写入数据,存储修改是通过Editor对象实现。SharedPreferences对象与SQLite数据库相比,免去了创建数据库,创 建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储 boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论 SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方 式。

 

4:描述handler 机制的原理

andriod提供了 Handler 和 Looper 来满足线程间的通信。
Handler 先进先出原则。
Looper类用来管理特定线程内对象之间的消息交换(Message Exchange)。
1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列)。
2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue里;或者接收Looper从Message Queue取出)所送来的消息。
3) Message Queue(消息队列):用来存放线程放入的消息。
4)线程:UI thread 通常就是main thread,而Android启动程序时会替它建立一个Message Queue。
 

 
5:显式intent和隐式intent的区别是什么(android)

  答:Intent定义:Intent是一种在不同组件之间传递的请求消息,是应用程序发出的请求和意图。作为一个完整的消息传递机制,Intent不仅需要发送端,还需要接收端。
显式Intent定义:对于明确指出了目标组件名称的Intent,我们称之为显式Intent。
隐式Intent定义:对于没有明确指出目标组件名称的Intent,则称之为隐式Intent。
说明:Android系统使用IntentFilter 来寻找与隐式Intent相关的对象。

 

原文来自IT蓝豹,转发必须标明出处:http://www.itlanbao.com/news.aspx


© 著作权归作者所有

抉择很难
粉丝 6
博文 51
码字总数 26157
作品 0
海淀
程序员
私信 提问
轻松搞定java高薪

找到一份高薪的java工作,从程序员走向高级程序员、架构师、分析员,是所有java程序员们的追求。 找一份好工作,自然要看工作经历、项目积累、综合能力。但是,在繁忙、琐碎的日常工作之余,...

solar.xie
2016/01/20
290
0
面向工资编程,每年加薪30%的秘诀!

俗话说得好金三银四跳槽季,每年的三、四月份,企业们和猎头们都忙得不可开交。互联网行业人才的流动性很大,在一家企业工作5年就被称之为老员工,“想加薪,就跳槽”,这似乎已经成为程序员...

valada
2018/04/12
0
0
这样学算法,包会包懂so easy~

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/85043110 整理 | Jane 出品 | AI科技大本营 面试前,大家都会开始刷各类网...

AI科技大本营
2018/12/16
0
0
网易JAVA面试你能答对几题?(文末附答案解析)

一转眼,2018 年已经过去了,你是否在满意的公司?拿着理想的薪水? 虽然“钱多、事少、离家近”的工作可能离技术人比较远,但是找到一份合适的工作,其实并不像想象中那么难。但是,有些技术...

Java猫
01/25
0
0
阿里P6Java工程师的学习经历自述,希望新人少走弯路

我个人觉得学习JAVA必须的具备的几个条件: 第一:目标,坚持下去的一颗心,因为学习JAVA不容易,而且现在转行的也多,工资高,最后能拿高薪的都是刚开始没日没夜的熬过来的,所以坚持非常重...

JAVA丶学习
2017/12/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

spring boot actuator

actuator 是监控系统健康的工具,引入 spring-boot-starter-actuator会暴露一些endpoint. 可通过如下配置来配置这些endpoint的基本配置: 可通过http:${url}:28081/management/actuator/*来访...

ZH-JSON
26分钟前
5
0
9.特殊权限 软连接 硬链接

6月7日任务 2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件 2.18 特殊权限set_uid 会发现有些文件的前三位并不是rwx而是rws,而s就代表...

oschina130111
37分钟前
2
0
好程序员web前端分享如何自学前端?步骤是什么?

好程序员web前端分享如何自学前端?步骤是什么?简单粗暴直接上学习流程。 1、学习HTML+CSS基础 HTML5新特性和CSS3 这个部分主要是需要记忆的知识点比较多,建议大家在学习的时候多加练习,最...

好程序员官方
38分钟前
4
0
创龙基于TI TMS320C6748定点/浮点DSP C674x + Xilinx Spartan-6 FPGA开发板

TL6748F-EVM是一款基于广州创龙SOM-TL6748F核心板设计的开发板,底板采用沉金无铅工艺2层板设计,它为用户提供了SOM-TL6748F核心板的测试平台,用于快速评估SOM-TL6748F核心板的整体性能。 ...

Tronlong创龙
44分钟前
3
0
8年前诞生于淘宝,细数阿里云RPA 的前世今生

9月10日,踏入55岁的马云正式卸任阿里巴巴董事局主席一职,由阿里巴巴集团CEO张勇接任。公寓创业、西湖论剑、美国敲钟,从成立到登顶中国最值钱的公司,阿里巴巴只用了20年。 阿里云RPA,201...

阿里云官方博客
48分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部