Android面试题大全(中高级)

Android面试题大全(中高级)1.synchronized和lock的区别答:https://blog.csdn.net/u012403290/article/details/64910926?locationNum=11&fps=1还可以去了解什么是可重入锁,公平锁,可中断锁。2.okhttp源码分析答:https://blog.csdn.net/mwq384807683/article…

大家好,又见面了,我是你们的朋友全栈君。

目录

Android

Android主流框架

JAVA部分

设计模式

网络

其他


Android

1.synchronized和lock的区别

答: 详解synchronized与Lock的区别与使用_brickworkers的博客-CSDN博客_synchronized和lock区别 还可以去了解什么是可重入锁,公平      锁, 可中断锁。

2.创建多线程方式

答:Android多线程的四种方式 – Android移动开发技术文章_手机开发 – 红黑联盟 除了这些还有最近流行的rxjava

3.handle机制()

答:从源码了解handler looper ,messageQueue思路_amogin的专栏-CSDN博客 这篇文章是我根据源码来分析的,主要是handle如何实现收发消息

Handler延时处理消息的流程_渔人的博客-CSDN博客_handler延时处理 handle如何实现延时发消息postdelay()

Android中为什么主线程不会因为Looper.loop()里的死循环卡死?_tiandiren2007的博客-CSDN博客 还要知道当消息队列里没有消息是怎么解决死循环问题

4.view,groupview的绘制原理

答:ANDROID自定义视图——onMeasure,MeasureSpec源码 流程 思路详解_大苞米的专栏-CSDN博客_android 自定义视图  主要对onMeasure()的源码思路做了解

 5.事件分发机制

答:Android事件分发机制详解:史上最全面、最易懂 – 简书 这篇文章真的超详细

 6. 线程池的类型

答:Android 线程池的类型、区别以及为何要用线程池 – cspecialy – 博客园

7.进程通讯

 答:AIDL Android 深入浅出AIDL(一)_凶残的程序员-CSDN博客

                  Android 深入浅出AIDL(二)_凶残的程序员-CSDN博客

 8.binder分析

答:Android Binder之应用层总结与分析_凶残的程序员-CSDN博客_android binder运用

9.activity的启动过程

答:Android Launcher 启动 Activity 的工作过程_凶残的程序员-CSDN博客_启动activity

10.并发

答:如何解决高并发产生的性能问题:android实现高性能,高并发,可延时线程池管理_kerryqpw的博客-CSDN博客_android 高并发

       高并发过程中涉及到的问题:即第一条讲的同步锁

11.进程保活方法

答:Android进程保活的一般套路_Looper景-CSDN博客

 12.插件化

答:Android 插件化和热修复知识梳理 – 简书

       Android组件化和插件化开发 – 掘金

13.内存泄漏原因以及如何避免内存泄漏

答:5个Android开发中比较常见的内存泄漏问题及解决办法_q178266871的专栏-CSDN博客

14.注解框架实现原理

答:Android面试题-注解框架实现原理_所有技术文章里面全部配置了配套视频-CSDN博客_注解框架实现原理

 15.运行时APT使用及原理

答:AbstractProcessor注解处理器_有码走遍天下,无码寸步难行-CSDN博客_abstractprocessor

        【Android】APT – 简书

        Java进阶–编译时注解处理器(APT)详解 – 掘金

16.性能优化

答:Android性能优化方案 – 掘金

其中包括四点:

  • APP使用起来不卡顿,要流畅;
  • 要省电,省流量;
  • 内存优化
  • APP包尽量要小;

17.如何检测内存溢出

答:Android内存泄漏检测和定位 – 简书  

      看完上面的文章,也可以使用android studio的heap dump ,将其导出至MAT(内存分析工具)进行查看,因为在android studio查看我发现太卡了

 18.activity的启动模式

答:Activity的4种启动模式 – 简书

19.kotlin 协程详解

Kotlin 的协程用力瞥一眼 – 学不会协程?很可能因为你看过的教程都是错的

Kotlin 协程的挂起好神奇好难懂?今天我把它的皮给扒了

到底什么是「非阻塞式」挂起?协程真的更轻量级吗?

20.为什么图片需要用软引用,MVP模式中的view接口用弱引用

答:软引用对象是内存不足的时候会被回收,所以由于图片占用内存过大,我们选择再内存不足的时候就回收图片

       弱引用对象是GC回收的时候会被调用,同时当activity销毁的时候会进行GC。那么为什么MVP模式中的P层中的view要用弱引用呢,我们可以这样么考虑,我们希望activity关闭的同时view也被回收,如果activity关闭,那么会进行GC,那么弱引用对象就会回收。

Android主流框架

1.okhttp源码分析

答:Android面试题-OkHttp3源码分析_所有技术文章里面全部配置了配套视频-CSDN博客_okhttp3面试题 这篇文章按照源码思路一步步往下走,非常不错。

我用一句话让大家更好的理解拦截器 ,从上往下一层一层传递每层封装好的request ,再从下往上一层一层传递每层封装好的response。

 2.rxjava,okhttp,retrofit三者原理及封装使用

答:  Carson带你学Android:RxJava操作符使用教程 – 简书   rxjava      Android面试题-OkHttp3源码分析_所有技术文章里面全部配置了配套视频-CSDN博客_okhttp3面试题

    Carson带你学Android:手把手带你深入读懂Retrofit 2.0源码 – 简书 retrofit

    Android版&Kotlin版RxJava2+Retrofit2+OkHttp3的基础、封装和项目中的使用 – 简书  封装使用

      Rxjava2.0+Retrofit+Okhttp(封装使用)+MVP框架搭建 – 简书   封装使用,个人觉得这个封装比较好,因为对第三方API都进行了封装,避免API  大 量修改造成程序跟着大量修改 ,结合MVP使用 

带你封装自己的MVP+Retrofit+RxJava2框架(一) – 掘金

3.ARouter原理

答:https://www.jianshu.com/p/bc4c34c6a06c

4.leakcanary原理

答:LeakCanary原理解析 – 简书

5.lrucache使用及原理

答:

 6.基于DataBinding与LiveData的MVVM实践

答 : 基于DataBinding与LiveData的MVVM实践 – 简书

         https://www.jianshu.com/p/3e8e1fee00fc

JAVA部分

1.hashmap原理

答:JDK1.7中HashMap底层实现原理 – dijia478 – 博客园

2.内存回收机制

答:Java内存回收机制 – 一粒尘_PM – 博客园   

       深入理解 Java 垃圾回收机制 – Andy赵 – 博客园

      结合这二篇文章看一定能看的非常清晰

设计模式

1.常用的设计模式

 答:单例模式,工厂模式,观察者模式,Builder模式,克隆模式,策略模式这几种个人认为是比较常见的,然后主要要区分工厂模式和策略模式的区别

2.动态代理

答:java动态代理实现与原理详细分析 – Gonjian – 博客园 

网络

1.http协议,tcp/ip协议

答:关于HTTP协议,一篇就够了 – ranyonsue – 博客园 http协议

       TCP/IP协议简介_MXSKE的博客-CSDN博客_tcp/ip协议 tcp/ip协议  

 2.TCP三次握手及四次挥手  

答:TCP的三次握手与四次挥手理解及面试题(很全面)_lucky_jun-CSDN博客_三次握手四次挥手

其他

1.常用加密算法(对称和非对称)

答:快速集成Android最常用八种加密算法_Songlcy-CSDN博客_android 国密加密

       Android开发-对称加密和非对称加密_咖啡店小二-CSDN博客  然后需要了解对称和非对称加密的区别 

 2.图片占据的内存算法

答:Android中一张图片占据的内存大小是如何计算 – 请叫我大苏 – 博客园

 3.数据结构

答:数据结构算法,例如一些快速排序还是需要了解一下,一些大公司会问算法类问题

       排序算法-快速排序(Java实现) – 知乎

       二叉树遍历(前序、中序、后序、层次遍历、深度优先、广度优先)_My_Jobs的专栏-CSDN博客_二叉树的遍历

4.jetpack架构常用组件

Android Jetpack 架构组件系列(一)概述 – 简书

TCP的三次握手与四次挥手理解及面试题(很全面)_lucky_jun-CSDN博客_三次握手四次挥手

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143246.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号