一.简述面向对象编程语言的基本特征
抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面
继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法
封装: 封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面
多态性: 多态性是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个时间加在一起和把两个整数加在一起肯定完全不同
二.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
十八.数组中所有数字出现两次,只有一个出现一次,求出它