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博客_三次握手四次挥手

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

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

(0)
上一篇 2022年5月22日 上午6:40
下一篇 2022年5月22日 上午6:40


相关推荐

  • 如何获取ChatGLM API Key 密钥(分步指南)

    如何获取ChatGLM API Key 密钥(分步指南)

    2026年3月12日
    2
  • 函数实现判断素数并调用函数输出100以内所有素数

    函数实现判断素数并调用函数输出100以内所有素数文件名称 2012 4 cpp 作者 胡颖 完成日期 2017 年 3 月 13 日 输入描述 输入整数 m 问题描述 判断整数 m 是否为素数 调用函数输出 100 以内的所有素数 程序输出 输出 m 是否为素数及 100 以内的素数 问题分析 构造函数判别素数 算法设计 略 include includeintma

    2026年3月16日
    2
  • php统计近一周和近30天的用户数据

    php统计近一周和近30天的用户数据

    2021年10月25日
    40
  • Windows系统日志分析_windows系统事件日志

    Windows系统日志分析_windows系统事件日志Windows操作系统的日志分析Windows日志简介Windows操作系统在其运行的生命周期中会记录其大量的日志信息,这些日志信息包括:Windows事件日志,Windows服务器角色日志,FTP日志,邮件服务日志,MSSQLServer数据库日志等。主要记录行为当前的日期、时间、用户、计算机、信息来源、事件、类型、分类等信息。用户可以通过它来检查错误发生的原因,处理应急事件,提供溯源,这些日志信息在取证和溯源中扮演着重要的角色。Windows日志事件类型Windows操作系统日志分析Wi

    2025年10月2日
    2
  • oracle 用户赋权_oracle数据库创建只读用户

    oracle 用户赋权_oracle数据库创建只读用户ORACLE创建用户赋予权限删除用户oracle数据库的权限系统分为系统权限与对象权限。一.ORACLE默认管理员密码二.创建用户及密码。三.赋予权限。oracle数据库的权限系统分为系统权限与对象权限。系统权限(databasesystemprivilege)可以让用户执行特定的命令集。例如,createtable权限允许用户创建表,grantanyprivilege权限允许用户授予任何系统权限。对象权限(databaseobjectprivilege)可以让用户能

    2025年7月1日
    4
  • 软件开发视频资源分享[通俗易懂]

    软件开发视频资源分享[通俗易懂]资源分享资源均来源于网络,在自学/开公众号的时候收集而来。如果侵权请联系我,会第一时间删除。如果链接已失效(我也无办法,很多链接我是没有保存在自已的网盘中的,见谅)。Java基础Java马士兵:链接:https://pan.baidu.com/s/1jJRvxGi密码:v3xbJava毕向东:可以到往B站找,已上传到B站Java刘意:链接:https://pan.bai…

    2022年5月21日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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