Android 百度面经
百度一二三面经
Gilde实现原理
- 首先为什么使用Glide框架
1.使用方便,API简洁。with、load、into 三步就可以加载图片
2.生命周期自动绑定,根据绑定的Activity或Fragment生命周期管理图片请求
3.支持多级配置:应用、单独页面(Activity/Fragment)、单个请求进行独立配置。
4.高效缓存策略,两级内存 ,两级文件。
5.支持多种图片格式(Gif、WebP、Video), 扩展灵活
Retrofit实现原理
OKhttp实现原理
static,final的对象生命周期
怎么用AS排查内存泄露
大端和小端
https的工作过程
这个问题我回答出来了,但是答错了,就是我是把后面==>
R就是之后数据传输的对称密钥
答错了,我记混了,giao,我回答是把浏览器生成一个随机数R,并使用网站公钥对R进行加密。加密后的密文作为对称加密的的秘钥
浏览器发起往服务器的443端口发起请求"https://www.baidu.com"(及之后的对称加密算法)。
浏览器进入数字证书认证环节,这一部分是浏览器内置的TLS完成的:
(1)首先浏览器会从内置的证书列表中索引,找到服务器下发证书对应的机构,如果没有找到,此时就会警告用户该证书不是由权威机构颁发,是不可信任的(浏览器显示https警告)。如果查到了对应的机构,则取出该机构颁发的公钥。
(2)用机构的证书公钥解密得到证书的内容和证书签名,内容包括网站的网址、网站的公钥、证书的有效期等。浏览器会先验证证书签名的合法性。签名通过后,浏览器验证证书记录的网址是否和当前网址是一致的,不一致会警告用户。如果网址一致会检查证书有效期,证书过期了也会警告用户。这些都通过认证时,浏览器就可以安全使用证书中的网站公钥了。
(3)浏览器生成一个随机数R,并使用网站公钥对R进行加密。(R就是之后数据传输的对称密钥)浏览器将加密的R传送给服务器。
服务器用自己的私钥解密得到R。
服务器以R为密钥使用了对称加密算法加密网页内容并传输给浏览器。
浏览器以R为密钥使用对应的对称解密算法获取网页内容。
GCRoot 可以是那些
我当时的回答:
- static对象
- 单例对象
- 虚拟机栈(栈帧中的本地变量表)中引用的对象
- 本地方法栈中 JNI(即一般说的 Native 方法)引用的对象
- 方法区中类静态属性引用的对象
- 方法区中常量引用的对象
移动端和H5的优缺点
如何实现微信“附近的人”功能?就是假设你知道一个点A(x,y),周围有很多人,每个人的点坐标都是二维已知,你如何设计知道A周围的人有哪些人?
前端请求的结果如何渲染到web页面