Android面试(二)

一.简述面向对象编程语言的基本特征

抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面

继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法

封装: 封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面

多态性: 多态性是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个时间加在一起和把两个整数加在一起肯定完全不同

二.Android中线程与线程,进程与进程之间如何通信

线程与线程:

通过Handler机制

runOnUiThread方法

View.post(Runnable r) 

AsyncTask

进程与进程:

Bundle/Intent传递数据

ContentProvider、

Socket

三.SQL:从user 表中取出name列中起始字是“北京”的全部记录

 select * from user wherer name like '北京%' 

四.SQL:在表中查询时间列t最新的n行数据(列t不按顺序排列)

五.int和Integer的区别

1、Integer是int的包装类,int则是java的一种基本数据类型 
2、Integer变量必须实例化后才能使用,而int变量不需要 
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 
4、Integer的默认值是null,int的默认值是0

六.HashMap和HashTable的区别

Hashtable是线程安全的,HashMap不是线程安全的

七.http协议POST和GET请求的区别

请求方式的区别:

GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输

POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据

GET,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制

对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置

POST的安全性比GET的高。这里的安全是指真正的安全

八.运算符&和&&的区别

 & 无论左边结果是什么,右边还是继续运算;

 &&当左边为假,右边不再进行运算。

 但是两者的结果是一样的。

九.Android中布局有哪些

共有五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局).

十.单线程中Message、Handler、Message Queue、Lopper的关系

Handler获取当前线程中的looper对象,looper用来从存放Message的MessageQueue中取出Message,再有Handler进行Message的分发和处理

十一.如何实现消息推送

十二.写几种你认为可以提高Android运行效率的方法

1、http用gzip压缩,设置连接超时时间和响应超时时间:http请求按照业务需求,分为是否可以缓存和不可缓存,那么在无网络的环境中,仍然通过缓存的httpresponse浏览部分数据,实现离线阅读;

2、使用线程池,分为核心线程池和普通线程池,下载图片等耗时任务放置在普通线程池,避免耗时任务阻塞线程池后,导致所有异步任务都必须等待;

3、尽量避免static成员变量引用资源耗费过多的实例,比如Context;

4、listview 性能优化

1)异步加载图片

2)快速滑动时不显示图片

3)复用convertView

4)BaseAdapter避免内存溢出

5、Bitmap及时的销毁:Activity的onDestroy时将bitmap回收,在被UI组件使用后马上进行回收,对于有用户上传或第三方的大小不可控图片,可进行采样减少图片所占的内存;

6、在onResume时设置该界面的电源管理,在onPause时取消设置;

7、应用开发中自定义View的时候,交互部分,千万不要写成线程不断刷新界面显示,而是根据TouchListener事件主动触发界面的更新;

8、如果ImageView的图片是来自网络,进行异步加载;

9、位置信息获取用户的地理位置信息时,在需要获取数据的时候打开GPS,之后及时关闭掉;

十三.如何实现app的自动更新和升级

Step1:读取版本号

Step2:对比服务器中的版本

Step3:处理文件存放的位置

Step4:下载文件

Step5:安装

十四.Android中数据存储方式有哪些

文件存储

SQLite数据库

SharedPreferences

ContentProvider

网络存储数据

十五.如何实现Android系统后自动运行某个程序

android系统在开机的过程中(可能是最后)会发送一个广播android.intent.action.BOOT_COMPLETED,
在你的工程上建一个广播接受的类来:
然后我们要在AndroidManifest.xml中加入权限和配置相关信息,

编程题:

十六.最有效率的方法计算某个数乘以32

十七.用最有效率的方法计算1+2+3+。。。+n

十八.数组中所有数字出现两次,只有一个出现一次,求出它

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值