Android开发基础不牢?2021年Android网络编程总结篇,看看这篇文章吧!

前言

作为一个程序员,性能优化是无法避开的事情,并且性能优化也是软件系统中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能

性能问题和Bug不同,后者的分析和解决思路更清晰,很多时候从应用日志即可直接找到问题根源,而性能问题,其排查思路更为复杂一些。

对App进行性能优化,是一个系统性的工程,对工程师的技术广度和技术深度都有所要求。 一个简单的应用,它不仅包含了应用代码本身,还和虚拟机、存储、网络等紧密相关,线上应用一旦出现了性能问题,需要我们从多方面去考虑。

但在实际的工作中,很多情况下只能看到症状,却完全不知道该从哪下手去排查和解决它。

与此同时,除了一些低级的代码逻辑引发的性能问题外,很多性能问题隐藏的较深,即便能够排查,排查起来也会比较困难,需要我们对应用的各个子模块、应用所使用的框架和组件的原理有所了解,同时掌握一定的性能优化工具和经验。

java方面

  • 基本知识点 集合类的区别和适用场景 1次 java静态内部类和非静态内部类的区别 内存分配 创建过程 内存泄漏问题? 如何保证线程安全? 多次 (面试必问) 哪几种加锁方式(最好扯到monitor) 乐观锁和悲观锁 (适用场景) 锁的适用场景 线程池的概念 构成 适用场景 为什么要用线程池(扯到线程分配资源的过程,和进程分配资源过程的区别)
  • 内核方面(面试必问) GC垃圾回收机制 n次 GC是怎么找要清除的对象的? java的四种引用和适用场景 GC内核清理用什么算法? 新生代复制清理,老生代标记整理 拓展:老生代标记整理如何有效的整理内存碎片? java内存结构  n次 java的内存是怎么分布的 java类的加载机制 java对象的加载机制 常量池 string对象的生成 Integer的缓存机制

计算机网络

  • 网络层级结构以及对应的协议
  • TCP TCP 三次握手(第一次和第三次如果没收到回应会怎样?) TCP四次挥手 拥塞控制没考过?
  • HTTP HTTP报文,http各版本的区别,https
  • IP 为啥不将mac作为ip地址 ping实现原理 ttl生存字段
  • ARP 描述过程,广播单播

操作系统

  • 线程和进程区别(资源分配上是怎样的)
  • 进程通信
  • 内存空间分配
  • 死锁 产生死锁的条件(详细举例) 避免死锁的方法

设计模式

  • 一般是自己说了解哪些模式,一定要说明适用场景
  • 单例模式 懒汉式 饿汉式 线程安全,双重锁
  • 观察者模式
  • 适配器模式
  • 外观模式

android方面(一般是根据项目问)

  • android的进程通信
  • service服务
  • handlerThread
  • handler运行机制 1次
  • recyclerView缓存机制 1次
  • view的重绘

项目方面

  • fragment和activity交互
  • webview的使用 安全问题? 和js互相调用
  • 断点续传 描述过程 文件读写,怎么保证不冲突
  • asynctask内存泄漏 为什么泄漏 解决方法 调试工具是什么
  • MFCC流程 录音环节(快手问了一大堆细节,还让写伪代码)
  • MVP
  • recyclerView 和listview区别 缓存机制 item太多会内存泄漏吗

资源分享

  • 最新大厂面试专题

这个题库内容是比较多的,除了一些流行的热门技术面试题,如Kotlin,数据库,Java虚拟机面试题,数组,Framework ,混合跨平台开发,等

  • 对应导图的Android高级工程师进阶系统学习视频
    最近热门的,NDK,热修复,MVVM,源码等一系列系统学习视频都有!

,NDK,热修复,MVVM,源码等一系列系统学习视频都有!

[外链图片转存中…(img-1fBvy0iE-1611298026141)]

下载方法:点赞+关注后 点击【Android高级工程师进阶学习】即可领取!

猜你喜欢

转载自blog.csdn.net/fanzhang_vip0723/article/details/112984904