面试的一些总结

1. 程序员无法直接立即让回收器回收内存,只能通过System.gc方法通知 回收器在合适的时间(不同虚拟机有不同的策略)回收内存,通过逐个地调用Object.finalize清除引用的对象。建议:不要频繁调用。将对象指为Null,目的是指定那些对象的内存可以回收。

2.java提供三种可抛出结构:受检异常,运行时异常,错误。 受检异常指的是try catch中由程序员自己要处理的异常。运行时异常表示编程出错,总之这样的异常很多。

3.Math.round()四舍五入,类似的Math.floor()只入。Math.abs()取绝对值 。Math.asin().返回反正弦。

4.onSaveInstanceState()不是Activity的生命周期,因此不一定会在Activity中调用,如用户按返回键就不会调用该方法,onSaveInstanceState和onReStoreInstanceState是一对。一个负责保存,一个负责取出。onSaveInstance用来存储临时数据,保存一些VIew的临时数据到Parcelable对象保存并返回。

5.Charsequence 和String区别, Java类中 interface Charsequence{}   final String implenments Charsequence,可以得出Charsequence可读可写。String是只读。

6./assets资源不会在R.id中生成Id,必须由调用者通过AssetsManager获取,必须指定文件路径。

7.GLSurfaceView是一个视图,继承于surfaceView,其内置的Surface专门负责openGL渲染。让渲染器在独立的线程里工作,与UI线程分离。

8.ContentValues与HashMap类似,但存储的Key是String类型,值是基本类型

9.res/raw目录下的文件会原封不动地存储在手机上,不会转化为二进制格式。

10.NDK是一系列工具的集合,NDK提供稳定的,有限的API头文件声明,NDK是“javac”语言支持android的开端。

11.java.io的objectinputStream和objectOutPutStream提供对象的的读写

12.service的两种实现方式:startService和bindService .

    startService: oncreate-->onstart--->ondestroy. 需要当activity销毁时,因为service是在另一个线程中,不会随activity销毁而销毁。 service已经启动了,只会调用onstart.当serivice没启动,会调用oncreate和onstart.

    bindService:oncreate--->onbind-- >onunbind-->ondestroy. 调rvice用者一旦退出,服务也就终止了。

13.当一个Activity执行了startActivityForResult要求从另一个Activity传回数据,需要传回的数据从回调方法onActivityResult中获得。

14.service不是单独的进程,也不是单独的线程,依赖于主线程,所以不能执行耗时操作。继承Service的IntentService可以执行耗时操作,在oncreate的时候单独开了一个线程。

15.SqliteOpenHelper类主要用来创建和更新数据库的,SqliteDatabase类主要用来操作数据库的。

16.Activity可看做可视化的界面和控件的容器。

17.onPause在Activity被暂停的时候调用,用来保存现场临时的数据。

18.当应用程序在Androidmanifest中注册广播后,即使应用程序被关闭,也可接受到系统发送的广播信息。

19.Android应用架构:Linux Kernel(内核)  Libraries(C++核心库) FrameWork(开发框架包)。应用程序

.

20.contentprovider是如何实现数据共享的: android提供contentprovider,一个程序可以通过实现provider的接口将自己的数据完全暴露出去,provider是将自己以数据库的方式暴露出去的,所以对外界来说,provider就像一个数据库。那么外界获取其提供的数据,也是像从数据库获取的一样,只是用URI来表示要访问的数据库。外界通过contentResolver来操作这些暴露的数据。

21.两种注册广播的方式分别是代码注册和AndroidManifest里注册。代码注册周期广播周期与程序周期一样。AndroidManifest里注册,即使程序关闭,广播信息来了,也会被系统调用。 注意:两种注册方式都需要写广播类继承BroadCastReceiver类。实现onReceive方法。

22.AIDL的全称是什么?如何工作?能处理哪些类型的数据。

23.系统授权是Linux内核授权

24.横竖屏切换activity的生命周期 1.不设置activity的configchanges时,切屏会调用各个生命周期。切竖屏执行两次,横屏执行一次。

  2.设置configchanges="orientation"时,切屏会调用各个生命周期,横竖屏切换各执行一次。

  3 .configChanges = "orientation\keyboardHidden"不会调用各个生命周期,只会执行onConfigurarionChanged方法。

25.如何将SQLite的数据库(xx.db文件)与apk一起发布:将该文件复制到res/raw里面,因为该目录下的文件不会被压缩,保持其格式。

26.如何打开res/raw目录下的数据库文件 : 在Android中不能直接打开raw目录下的数据库文件。需要将文件复制到内存或sd卡中,再打开数据库文件。基本方法是通过getResources().openRawResource()得到inputStream对象。

27.sim卡的EF文件 sim卡的文件系统有自己规范。主要是为何手机通信。sim卡就是为做存储和手机通讯用的

28.IPc通信,用于Activity和service的通信,主要是进程通信,通过定义AIDL接口文件,service实现接口方法。client调用IPC接口本地代理。

29.DDMS是一个程序执行查看器,里面可以看线程和堆栈信息。traceview是性能分析器。

30.一个中文2个字节(byte),一个英文一个字节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值