
面试题
文章平均质量分 80
Jaynm
Android漫漫路,码农与你同在。
展开
-
征服面试官:Binder 原理篇 掌握这篇面试题汇总,吊打面试官!
Binder 是 Android 中的一种跨进程通信方式。从 Android Framework 角度来说 Binder 是 ServiceManager 连接各种 Manager(ActivityManager、WindowManager 等等)和相应 ManagerService 的桥梁;从 Android 应用层来说 Binder 是客服端与服务端进行通信的媒介。1、什么是 Binder?直观来说,Binder 是 Android 中的一个类,它继承了 IBinder 接口从 IPC 角度来说原创 2021-05-14 12:55:50 · 2991 阅读 · 3 评论 -
征服面试官:Handler 原理篇 掌握这篇面试题汇总,吊打面试官!
1、Handler 实现机制Handler 机制有几个核心类:Handler、Looper、Message、MessageQueue。Handler 机制是一个典型的生产者消费者模式——多个生产者,一个消费者,该模式是处理线程安全的一个经典模式MessageMessage 是 Handler 接收和处理的消息对象,内部使用链表数据结构实现一个消息池,用于重复利用,避免大量创建消息对象,造成内存浪费。用于在不同线程之间交换数据。Handler主要用来发送和处理消息。发送消息一般是使用 Ha原创 2021-04-01 16:07:37 · 1292 阅读 · 0 评论 -
征服面试官:OkHttp 原理篇 掌握这篇面试题汇总,吊打面试官!
前言如今面试中高级开发工程师岗位,OKhttp 原理是必问环节,只会使用已经无法满足 Android 开发市场的需求,优秀的第三方框架源码剖析不仅能深度理解框架,也能对自己学习带来很大的帮助。本篇文章根据朋友反馈和亲身经历简单整理的一些关于 Okhttp 常见面试题目。1.Okhttp 基本实现原理OkHttp 主要是通过 5 个拦截器和 3 个双端队列(2 个异步队列,1 个同步队列)工作。内部实现通过一个责任链模式完成,将网络请求的各个阶段封装到各个链条中,实现了各层的解耦。OkHttp 的底原创 2020-12-31 09:48:40 · 4620 阅读 · 0 评论 -
征服面试官:RxJava 原理篇 掌握这篇面试题汇总,吊打面试官!
1、RxJava 如何实现线程切换?subscribeOn 是通过新建 Observable 的方式,使用 OnSubscribe 类的方式去做到线程切换的。observeOn 是通过 operator 操作符的形式去完成线程切换的,所以他的作用域和其他操作符一样,是调用 observeOn 之后的链路。Schedulers.io() 代表 io 操作的线程, 通常用于网络,读写文件等 io 密集型的操作Schedulers.computation() 代表 CPU 计算密集型的操作, 例如需要大原创 2020-11-19 15:23:55 · 7776 阅读 · 0 评论 -
征服面试官:Retrofit 原理篇 掌握这篇面试题汇总,吊打面试官!
1、Retrofit 实现原理Retrofit 通过 java 接口以及注解来描述网络请求,并用动态代理的方式生成网络请求的 request,然后通过 client 调用相应的网络框架(默认 okhttp)去发起网络请求,并将返回的 response 通过 converterFactorty 转换成相应的数据 model,最后通过 calladapter 转换成其他数据方式(如 rxjava Observable)通过 Retrofit. create( ciass)方法创建出 Service int原创 2020-09-16 09:16:17 · 13832 阅读 · 5 评论 -
征服面试官:Java 虚拟机(JVM)掌握这篇面试题汇总,吊打面试官!
1、简述 JVM 垃圾回收机制在 JVM 中,有一个垃圾回收线程,它是低优先级的,在正常情况下是不会执行的,只有在虚拟机空闲或者当前堆内存不足时,才会触发执行,扫描那些没有被任何引用的对象,并将它们添加到要回收的集合中,进行回收。2、JVM 的内存结构Java 堆(Heap) 是 Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。方法区(Method Area) 方法原创 2020-08-07 09:12:45 · 681 阅读 · 2 评论 -
Android 面试题(二)Android基础篇
Android基础篇前言1、Android点击应用图标如何启动APP?2、Activity四种启动模式3、Android横竖屏切换activity生命周期?4、PathClassLoader和DexClassLoader的区别?5、Android中Intent传递数据的大小限制?如何解决该问题?6、Android有哪些Context的相关类?7、IntentService和Service有什么区别...原创 2020-04-26 12:32:14 · 588 阅读 · 0 评论 -
Android 面试题(一)Java基础篇
Java基础篇前言1、Java基本数据类型2、String ,Stringbuffer ,Stringbulider的区别?3、final ,finally ,fianlize的区别?4、静态变量和成员变量的不同?5、集合框架,list,map,set都有哪些具体的实现类,区别都是什么?6、ArrayList和LinkedList有什么区别?7、HashMap和Hashtable有什么区别?8、J...原创 2020-04-25 14:10:24 · 2182 阅读 · 0 评论