Android题目笔记(六)

1.自定义view重写哪几个方法?

①两个参数的构造方法必须有。onDraw()方法必须有,是用来绘制View图像的
②如果要改变View 的大小,需要重写onMeasure()方法。
③如果要改变View在父控件中的位置,需要重写onLayout()方法

2.http 的session&cookie的区别

参考:cookie 和session 的区别详解
①cookie数据存放在客户的浏览器上,session数据放在服务器上。
②cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。
③session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,到减轻服务器性能方面,应当使用COOKIE。
④单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

3.简述工作线程更新UI的方法

①Handler
②Activity runOnUiThread
③View.post

4.应用最多占多少内存

参考:Android 查看每个应用的最大可用内存
Android设备出厂以后,java虚拟机对单个应用的最大内存分配就确定下来了,超出这个值就会OOM。这个属性值是定义在/system/build.prop文件中的

5.滑动卡顿如何解决(不同原因及对应处理方式)

以listview为例
①getView convertView的复用。
②getView里面尽量不要解析图片。
③少用强制转换
④子view的层级不要太多,尽量使用RelativeLayout,减少布局测量时间。
⑤view的大小如果能够确定大小,就尽量使用精确值,例如10dp,减少布局测量时间。
⑥touch等主线程少做耗时操作。

6.为什么用Retrofit(一个开源库)

①快 参考浅谈我为什么选择用Retrofit作为我的网络请求框架
②解耦
③灵活

7.处理有序数组为什么比无序数组更快 参考StackOverflow

因为分支预测。
参考:为什么处理有序数组比无序数组快?

8.热修复与插件化相关

参考:
Android 主要的热修复方案原理分析
Android插件化:从入门到放弃

9.Integer类是不是线程安全的,为什么

不是的,读写并没有同步。

10.不使用同步锁如何实现线程安全

参考不用synchronized和lock,实现线程安全的单例模式
使用volatile 和 AtomicBoolean 实现的。

11.针对concurrent包下面的一些类的问题

参考:Java 并发工具包 java.util.concurrent 用户指南


参考文章–>https://mp.weixin.qq.com/s/sN_i_IaLUpFBbX9UHIX4NA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值