上一篇:Android 开发个人的一些积累(一)
11. intent-filter 中的 action 、 category 和 data 的作用
1、Action:该activity可以执行的动作(任意一条匹配即可);
2、Category:指定当前动作(Action)被执行的环境(必须全部正确匹配);
3. data(很少使用) :指定传过来的 URI 的一部分或者全部(必须全部正确匹配),data属性包括 scheme(计划)、host (主机名)、port(端口名)、mimeType(数据类型);
12. URI 、URL 和 URN 的作用和区别
答: URI 全称是 uniform resource identifier,统一资源标识符,用来唯一的标识一个资源;
URL 全称是 uniform resource locator,统一资源定位器,它是一种具体的 URI,即 URL 可以用来标识一个资源,而且还指明了如何 locate 这个资源,它是 URI 的子集;
URN 全称是 uniform resource name,统一资源命名,是通过名字来标识资源,它是 URI 的子集,与 URL 有交集;
笼统地说,每个 URL 和 URN 都是 URI,但不一定每个 URI 都是 URL 和 URN ,URL 和 URN 彼此之间存在交集 。
13. String 、StringBuilder 和 StringBuffer 的区别
答:首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String,String:适用于少量的字符串操作的情况,StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况,StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况;
参考博客:String、StringBuilder 和 StringBuffer 的区别
14.HashSet、HashMap、ArrayList、LinkedList、Vector区别
java类/项 | HashMap | HashSet | ArrayList | Vector | LinkedList |
是否允许重复 | 不允许有重复的键 | 不允许有重复的值 | 允许 | 允许 | 允许 |
是否有序 | 无序 | 无序 | 有序 | 有序 | 有序 |
保存方式 | 保存键值对 | 保存对象 | 数组存储 | 数组存储 | 双向链表存储 |
存取速度 | 比较快,因为是使用唯一的键来获取对象 | 速度基本一致,HashSet把HashMap进行了封装 | 访问数据时效率较高,在插入和删除数据时效率较低 | 访问数据时效率较高,在插入和删除数据时效率较低 | 访问数据时效率较低,在插入和删除数据时效率较高 |
是否线程安全 | 否 | 否 | 否(但是java提供了Collections工具类,能够将ArrayList转换成线程安全的类) | 是 | 是 |
15.TypedArray 用处、用法
定义:TypedArray 是存储资源数组的容器
用处:自定义 View 中通过 TypedArray 获取自定义项的值的资源数组,再通过数组获取对应的具体数据;
用法如下:
//获取 TypedArray 对象
TypedArray typedArray= mContext.getTheme().obtainStyledAttributes(attrs, R.styleable.MyFirstCustomerView, 0, 0);
try {
mText = typedArray.getString(R.styleable.MyFirstCustomerView_text);
mTextColor = typedArray.getColor(R.styleable.MyFirstCustomerView_textColor, Color.BLACK);
mTextSize = typedArray.getDimensionPixelSize(R.styleable.MyFirstCustomerView_textSize,
(int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 16, getResources().getDisplayMetrics()));
} finally {
typedArray.recycle();
}
16.枚举类
定义:一个有限个数的数据集
优点:代码清晰易懂,且相对于 Int 静态常量来说,枚举最大的优点就在于它提供了类型安全;
缺点:消耗内存且降低 app 性能;
17.四大组件是什么(这是最基础的知识,千万不能忘)
答:分别是 Activity、BroadCastReceiver、ContentProvider 和 Service;
18.四大组件的生命周期和简单用法
答:Activity 生命周期:onCreate --> onStart --> onRestart --> onResume --> onPause --> onStop --> onDestory
Service 生命周期:
start 方式启动:onCreate()-->onStart()-->onDestory()
bind 方式启动:onCreate()-->onBind()-->onUnbind()-->onDestory()
BroadCastReceiver 生命周期:
静态注册:开机-->关机
动态注册:应用启动-->应用关闭
ContentProvider 生命周期:
19.HTTPS和HTTP的区别是什么
HTTPS和HTTP的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
20.