Android开发项目开发必备底层技术知识点~

Posted 冬天的毛毛雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android开发项目开发必备底层技术知识点~相关的知识,希望对你有一定的参考价值。

android开发行业做了这么久,是时候该回头梳理了一下Android 的知识点了,下面我大家整理里一部分Android 开发项目必备技术知识点, 从Java序列化、泛型与反射到虚拟机底层原理、Android内存原理、 Java高级并发原理详解、 编译时技术掌握与实战、JDK高级动态代理、数据结构与算法、 Java IO操作等。因知识点的内容过多,将其整理成为了一个思维导图如下。

通过思维导图记录顺序,我将这些知识点也进行了归纳整理成了文档形式。 如需要参考完整版请去我GitHub进行访问查阅

GitHub地址: https://github.com/733gh/Android-T3

Java序列化、泛型与反射

Java序列化与反序列化深入讲解

1. 为什么需要序列化与反序列化
2. 序列化概述
3. Serializable
4. Externalizable
6. 序列化问题
7. 总结

1. 为什么需要序列化与反序列化

程序运行时,只要需要,对象可以一直存在,并且我们可以随时访问对象的一些状态信息,如果程序终止,那么对象是肯定不会存在的,但是有时候,我们需要再程序终止时保存对象的状态信息,之后程序再次运行时可以重新恢复到之前的状态,如,玩家玩游戏退出时,需要保存玩家的状态信息(如等级、装备等等),之后玩家再此登入时,必须要恢复这些状态信息。我们可以通过数据库手段来达到这个保存状态的目的,在Java中,我们有更简便的方法进行处理,那就是序列化与反序列化。序列化是一种对象持久化的手段,反序列化与序列化相反,其是通过序列化后的信息重新组装成对象。序列化与反序列化普遍应用在网络传输、RMI等场景中。

2. 序列化概述

2.1 序列化类结构图

下面展示了与序列化相关的类的结构图

说明:虚线框的表示接口类型,实线框表示具体的类。

2.2 序列化关键字说明

与序列化相关的关键字如下

说明:

1. 关键字transient,用来修饰字段,表示此字段在默认序列化过程中不会被处理,但是可以采用另外的手段进行处理。
2. 关键字serialVersionUID,表示序列化版本号,当两个类的序列化ID一致时允许反序列化,默认可以采用编译器提供的值1L。

2.3 序列化方法说明

与序列化相关的方法如下

说明:writeObject与readObject方法分别在ObjectOutput接口与ObjectInput接口中声明,在ObjectOutputStream与ObjectInputStream中实现。

后续章节内容过多如下图:

Java泛型剖析篇

1. java泛型是什么?泛型的好处是啥?
2. 泛型类
3. 泛型方法
4. 泛型接口
5. 通配符

1. java泛型是什么?泛型的好处是啥?

那些拥有Java1.4或更早版本的开发背景的人都知道。

  1. 在集合中存储对象并在使用前进行类型转换是多么的不方便。泛型防止了那种情况的发生。
  2. 它提供了编译期的类型安全,确保你只能把正确类型的对象放入集合中,避免了在运行时出现ClassCastException。

后续章节内容过多如下图:

深入理解Java反射

理解RTTI在Java中的工作原理,首先需要知道类型信息在运行时是如何表示的,这是由Class对象来完成的,它包含了与类有关的信息。Class对象就是用来创建所有“常规”对象的,Java使用Class对象来执行RTTI,即使你正在执行的是类似类型转换这样的操作。

1、Class对象
2、类型转换前先做检查
3、反射:运行时类信息
4、动态代理

虚拟机


1.JVM 工作流程
2.运行时数据区(Runtime Data Area)
3.方法指令
4.类加载器
5.垃圾回收 gc

Android内存原理


1. 垃圾内存回收算法
2. 拷贝回收法(Copying GC)
3. 逐代回收法(Generational GC)
4. 源码分析

如需要参考完整版请去我GitHub进行访问查阅

GitHub地址: https://github.com/733gh/Android-T3

Java高级并发原理详解


1. 线程池
2.为什么要使用线程池
3.线程池参数详解
4.ThreadLocal 原理
5.锁
6.并发容器
7.Future 和 Callable

JDK高级动态代理

Java两种动态代理JDK动态代理和CGLIB动态代理

1.代理模式
2.JDK动态代理
3.cglib动态代理

总结

上面所记录到的技术知识点可能还不是特别完整,后续还会慢慢的更新改进,大家如果有好Android知识点建议需要整理在内,大家可以在评论区进行留言,方便我为大家进行记录,将其知识点进行更好的完善。

如需要参考完整版请去我GitHub进行访问查阅

GitHub地址: https://github.com/733gh/Android-T3

以上是关于Android开发项目开发必备底层技术知识点~的主要内容,如果未能解决你的问题,请参考以下文章

Java开发的必备技术点

阿里程序员的2019Android年终盘点,必备技能知识点,程序员必须收藏

iOS开发各种底层实现--面试必备!

Java开发者跳槽必备:RPC的通信Netty的底层是Nio

2022最终版Android中高级开发面试神册,进大厂拿高薪必备

2020最新统计,年薪50万+的Android开发者所必备的知识体系架构,你都会吗?(超多图哦!)