面试笔记
字节晃动
爱动脑,爱思考,爱记录。
展开
-
面试笔记:Java反射原理
什么是反射(反射的机制) 反射是在运行状态中对任意一个类都可以知道其内部所有的属性和方法,对于任意一个对象都可以调用其属性和方法,这种动态获取信息和动态调用对象方法的功能称为Java的反射机制。 反射的优缺点 优点: 可以动态执行和动态创建,在编码期不知道类和对象的具体信息,但在运行期间依旧可以根据业务功能执行方法和访问属性,最大程度发挥了编码的灵活性 缺点: 对性能有影响,反射操作总是慢于直接执行Java代码,代码量增多。 维护起来比原生Java代码繁琐 反射会跳过类型检查,导致安全性问题,例如泛型的类.原创 2021-11-19 19:47:37 · 2199 阅读 · 0 评论 -
面试笔记:Android网络编程(Http,Socket)协议
网络分层解构(四层解构) 应用层(HTTP,FTP) 定义了如何包装和解析数据,会按照HTTP协议将数据进行包装,然后传递到运输层 传输层(TCP,UDP) 运输层有两种运输方式主要是将数据发送到对应的端口,TCP为可靠的运输,UDP为不可靠的运输,一般都是通过Socket来进行调用,因为Socket封装了一组调用TCP和UDP的接口。 网络层(IP) 这一层主要指定了要传输到那个IP地址,其中会选择最优线路和路由算法等操作。 数据链路层(ARP) 负责把IP地址解析为硬件MAC地址,这样就找到了对应的..原创 2021-11-19 19:44:58 · 1932 阅读 · 0 评论 -
面试笔记Handler
Looper 死循环为什么不会导致应用卡死 内部使用epoll机制实现(epoll机制:IO多路复用的一个实现;IO多路复用:在一个操作里同时监听多个输入输出源;) MessageQueue优先级队列 是如何进行排序的 优先级排序,就是依靠msg对象中提供的when参数,根据时间来进行排序; Message结构 Message是单链表结构:非线性,非顺序的物理结构,由n个节点组成;链表是采用“见缝插针”的存储方式,不要求内存连续,靠next指针关联;存储的时候是随机存储;访问的时候是顺序访问; ..原创 2021-11-19 19:42:08 · 1541 阅读 · 0 评论 -
面试笔记Glide
// Glide使用 RequestManager with = Glide.with(this); RequestBuilder<Drawable> load = with.load(url); load.into(iv); 为什么RequestManager能够管理生命周期? 是因为Glide通过RequestMangerRetriever创建一个无UI的Fragment,并将这个Fragment的生命周期绑定到RequestManager上,所以当activity显示或隐藏或销毁时原创 2021-11-03 11:07:15 · 106 阅读 · 0 评论 -
面试笔记MVC-MVP-MVVM
MVC Model 业务模型类,主要负责从网络或磁盘获取数据。 View 在Android中对应的是xml布局和view组件,负责将数据进行展示 Controller Android中控制层是由activity来负责的,activity承担了view的显示和业务逻辑的控制,所以比较繁杂。 由于业务逻辑都在activity中处理所以view和model是可以直接交互的,所以m v c三层是高度耦合的。 MVP MVP增加了一个中间层Presenter来解决耦合问题,Model和View的交互统一交给p层原创 2021-11-03 10:38:06 · 1106 阅读 · 1 评论