Android面试
文章平均质量分 75
danfengw
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android面试常见算法题目
1 三线程打印ABC7 如何实现一个lru8 如何定位链表尾部前面的第k个节点,写一下原创 2021-02-07 15:44:06 · 1979 阅读 · 0 评论 -
Android 其他问题点
1 Serializable与Parcelable 区别Sericalizable 是java 提供的进行序列化的方式,对对象整体序列化,更适合网络数据进行序列化的时候使用。Parcelable 是android提供的一种序列化的方式,可以将一个完整的对象进行分解,对部分分别序列化,效率更高,更适合内存中进行数据传输的时候使用。2 Android为什么使用Bundle 传输数据,为啥不是hashMap2个原因:(1)小的数据量:Bundle 内部封装了ArrayMap进行的存储,ArrayMap本原创 2021-01-25 03:47:26 · 522 阅读 · 1 评论 -
Android View第一次绘制
疑问1 Android 走生命周期的时候,View究竟是在哪个生命周期进行测量布局绘制的呢?2 在该生命周期中通知View的绘制流程是怎样的?解答1 Android的resume周期开始绘制的,这也是我们为什么在onResume的时候获取不到view的狂高2 下面来看下具体流程(view的绘制是通过ViewRootImp的scheduleTraversals方法,因此看下怎么从ActivityThread找到ViewRootImp的scheduleTraversals的调用的)直接来看Activ原创 2021-01-21 10:39:29 · 586 阅读 · 0 评论 -
app启动流程 、四大组件 、window、事件分发
zygote参考文章:https://blog.csdn.net/hongxue8888/article/details/102583663zygote 作用启动system-server孵化应用进程zygote 进程怎么启动的init进程启动后,加载init.rc 配置文件,其中zygote就是其中一个。zygote 是通过socket的通讯方式。app启动流程了解Linux下进程的启动方式2种方式都是通过fork这个函数启动的:fork函数返回2次,一次子进程返回一次父进程的返回,原创 2021-01-16 16:16:48 · 520 阅读 · 0 评论 -
Android 进程通信
Android Framework下的跨进程通信方式管道(pipe):半双工,单向的,只能读或者只能写,一般在父子进程间使用。(Looper 4.4版本之前用的管道,后面被替换为eventfd)Socket:全双工,既可以读也可以写,两个进程之间无需亲缘关系。(zygote使用的是socket)共享内存:很快,不需要多次拷贝,进程之间无需亲缘关系。(进程之前大数据传输,比如图片,会被使用)信号:单向的,发出去之后怎么处理是别人的事,只能带个信号,不能带其他参数,知道进程pid就能发信号,而且可以一次原创 2020-12-30 11:45:19 · 669 阅读 · 0 评论 -
Android 线程通信
Handler相关代码分析:Handler 持有 Looper 和 MessaegeQueue可以在子线程创建handler吗可以,需要调用Looper.prepare和Looper.loop主线程的Looper和子线程的Looper的区别子线程的Looper可以退出,主线程的Looper不可以退出Looper 和MessageQueue 有什么关系一对一的关系消息循环过程是怎么样的Looper.loop() 通过 for (;???? 死循环,不断从messageQueue中原创 2020-12-29 21:03:28 · 283 阅读 · 0 评论 -
HashMap conCurrentHashmap Linkedhashmap Linkedhashset Arraymap SparseArray
HashMap1 hashMap底层实现原理数组加原理 数组过多会转成树的方式2 hashMap 怎么扩容的根据扩容因子 和 所能承载的表的容器量 2的倍数扩容,树里边rehash 看是否需要调整位置,rehash 1.7到1.8 有个rehash的区别为什么长度最开始是16呢?hashMap是线程安全的吗?想要线程安全需要用什么?concurrentHashMap也有1.7 1.8的区别 头插法与尾插法LinkedHashMap一般什么情况下用到需要记录顺序的时候使用LinkedHa原创 2020-12-27 20:51:37 · 508 阅读 · 0 评论 -
java 的注解 反射 http 协议 socket
注解https://zhuanlan.zhihu.com/p/85612062https://juejin.cn/post/6844903636733001741注解的作用用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。ps:元数据的概念(1)元数据在开发中的作用就是做数据约束和标准定义,可以将其理解成代码的规范标准(代码的模板);(2)代码的模板(元数据)不直接影响代码的执行,它只是帮助我们来更快捷的开发;注解的本质是原创 2020-12-27 16:56:35 · 270 阅读 · 0 评论 -
Java 基础--线程 锁 线程池
线程1 概念进程与线程的区别:进程:是资源分配的最小单位线程:是cpu调度的最小单位进程是抢占处理机的调度单位,线程属于某个进程,共享其资源线程只由堆栈寄存器 程序计数器 和 TCB组成进程与线程的区别线程不能看作独立应用,而进程可以看作独立应用进程有独立的地址空间,相互不影响,而线程只是进程的不同执行路径线程没有独立的地址空间,多进程的程序比多线程程序健壮进程的切换比线程切换开销大线程中start 与 run 方法的区别start() 会创建一个新的子线程并启动run()只是T原创 2020-12-25 20:06:45 · 709 阅读 · 0 评论 -
Java基础-- 继承 多态 泛型 接口 动态绑定 动态代理
继承1 概念:之所以叫继承,是因为子类继承了父类的行为与属性,父类有的行为和属性子类也都有,子类可以增加子类特有的属性,子类的实现方式也可能与父类不同优点:一方面,可以复用代码,公共的行为与属性可以放到父类中处理,子类只需要关注子类特有的。另一方面,不同的子类可以统一管理多态1 概念:多态:就是一种类型的变量,可以引用多种类型的实际变量动态绑定:比如我们有个父类Shape 实现了draw方法, Shape就是静态类型,而Shape的子类 Rectangle Circle 之类的就是动态类型,原创 2020-12-25 00:10:57 · 867 阅读 · 0 评论 -
Android 题
java基础:设计模式: https://danfeng.blog.csdn.net/article/details/101048315算法:原创 2020-12-24 10:23:48 · 239 阅读 · 0 评论 -
Java基础 JVM 、垃圾回收、classloader
JVM 相关问题1 Jvm(java虚拟机运行时内存) 包括哪些区域?包括线程私有的区域 和线程公有区域线程私有区域: 程序计数器、虚拟机栈、本地方法栈线程公有区域:堆、方法区程序计数器:当前线程正在运行的字节码指令地址(行号)虚拟机栈(OutOfMemoryError 、StackOverflowError):存储运行程序所需要的数据 指令 返回地址,每个方法执行的时候都会创建一个栈帧,栈帧中存储了 局部变量 、操作数栈(方法中调用方法的时候)、动态链接(涉及多态的时候),返回地址,每一个方原创 2020-12-24 01:37:19 · 595 阅读 · 0 评论 -
Http 相关面试题
1 问题:在浏览器地址栏键入URL,按下回撤之后经历的流程答案:1 DNS解析2 TCP连接3 发起HTTP请求4 服务器处理请求并返回HTTP报文5 浏览器解析渲染页面6 连接结束问题: HTTP 状态码五种可能取值1xx:指示信息----表示请求已接收,继续处理2xx: 成功—表示请求已被成功接收、理解、接受3xx:重定向—要完成请求必须进行更进一步的操作4xx: 客户端错误:请求有语法错误或者请求无法实现5xx: 服务端错误–服务器未能实现合法的请求常见状态码200 o原创 2020-12-27 16:20:32 · 403 阅读 · 0 评论 -
TCP与UDP 的区别
二者区别:面向连接 vs 无连接可靠性 vs 不保证可靠性有序性 vs 无序速度慢(因为要建立连接) vs 速度快 (比如视频)量级大 vs 量级小详细描述UDP:1 面向非连接2 不维护连接状态,支持同时向多个客户端传输相同的消息3 数据包报头只有8 个字节,额外开销比较小4 吞吐量只受限于数据生成速率,传输速率以及机器性能5 尽最大努力交付,不保证可靠交付,不需要维持复杂的连接状态表6 面向报文,不对应用程序提交的报文信息进行拆分或者合并TCP:...原创 2020-12-27 16:53:55 · 373 阅读 · 0 评论
分享