安卓面试准备的知识点

一:Java基础

java语言熟练
常用的关键字知道表达含义
线程(实现方式)
锁(锁对象 锁类 锁变量各自的情况)
volatile(什么作用,什么是原子操作 i++ 和 a=b是原子操作么)
JVM相关(类的加载机制(双亲委派机制) 分配内存情况 垃圾回收机制 算法及收集器 对象分配哪儿的地址空间 方法区 堆 栈 寄存器 以及本地方法栈分别是在什么时候使用的)
Java中集合类及层次关系(底层实现 collection 和 map:细分有collection->(list->(Arraylist,linkedlist,vector->(stack)),set->(hashset,treeset)) map->(hashmap,linkedhashmap))
单列的写法(饱汉模式和懒汉模式 以及线程安全(锁对象))
线程如何保证安全(线程如何同步,以及实现)
Java中的代理,及反射技术
注解(类型 及使用)
细节:string 常量内存是在什么地方分配的 通过new 出来的对象内存是在什么地方分配的
静态数据存储在哪儿的?静态对象分配的内存在哪儿?

二:数据结构

数组(内存分配情况)
链表(单向,双向,循环,以及内存分配情况)
栈 (底层实现)
树(二叉树,遍历,深度,广度,前中后序遍历)
算法(查找算法,排序算法(快排,堆排,选择排,插入排,冒泡排,希尔排)),超大数据使用什么排序,排序实现。简单的算法实现(遍历文件夹中的文件
团团鼠采了一箱鲜果子准备过冬,因为是新鲜的不能够存放太久,需要将果子晒干。
于是团团鼠找来一些石板来晒果子(假设石板大小是一样的可以晒N个晒单位),大的果子很大要占两个晒单位,小的果子很小两个果子才占一个晒单位。
团团鼠只要把果子拿出来了就找石板去晒,不会去挑选果子的大小。请你帮团团鼠实现一下这个晒果子的过程,以及需要多少石板。)
HashMap 及LinkedHashMap 区别及底层实现(超过负载因子之后会做什么) (有序,是怎么实现的)
ArrayList linkedList底层实现(负载因子)

三:计算机网络知识

协议 HTTP HTTPS (S表示什么,在那两层之间添加的)
TCP/UDP (TCP三次握手 四次挥手,分别有什么数据,为什么是三次而不是两次或者更多次) (TCP传输的数据结构 UDP传输的数据结构 以及最小大小)
计算机网络分层(应用层 会话层 表示层 传输层 网络层 链路层 物理层以及各层的传输的数据)
开发过程中cache 和 session
加密解密(对称加密算法 非对称加密算法 md5摘要 SH1摘要算法是否可逆)

四:安卓基础

安卓系统框架是怎样的,以及在安卓系统中文件结构是什么样的(linux文件结构,系统级应用放在什么位置,开发的应用放在什么位置)
四大组件及生命周期(activity service broadreceiver contentprovider) (activity的启动模式及一般应用场景) (service的启动方式) (broadcastreceiver的注册方式及广播的种类,是否可以取消) contentprovider的使用
子线程与主线程之间如何通信,(handler ,view.post ,activity.runOnUIThread)
handler + looper的实现机制,HandlerThread 实现
ThreadLocal 使用场景,及在安卓中使用
View的绘制过程(view的两个方法onMeasure onDraw,ViewGroup的三方方法onMeasure onLayout onDraw(这个方法不用写)) (理解onMeasure方法中如何计算宽和高的)
触摸事件的传递(activity -> window -> decorview -> parentlayout -> childView) (parentlayout的三个方法(onDispatchTouchEvent onIntercepTouchEvent onTouchEvent)) (子View中的两个方法 onDispatchTouchEvent onTouchEvent) (Action_cancel是在什么时候产生的)
ANR 及 OOM 产生原因及如何避免,项目中的体现
android跨线程通讯方式:handler 共享内存 文件 数据库
android跨进程通讯方法:四大组件,共享内存,aidl,Binder
MVC MVP MVVM 使用及解决什么问题
网络框架是怎么搭建的,使用的是什么网络框架,(Okhhtp 中构建request 然后加入到OkHttp的请求队列中,创建新的线程实现网络的请求 volley也是一样,构建request,然后放在请求队列中完成请求 retrofit实现 注解使用)
图片框架(如何缓存,LruCache 和 本地实现 lruCache底层实现)
进程状态(前台 可见 服务 后台 空进程)
安卓中四种引用技术(强引用 软引用 弱引用 虚引用,以及四种引用如何创建产生,回收机制如何回收这四种引用)
主线程当中的looper一直在循环,为什么这里就没有出现anr(ANR产生的根本原因)
context的比较 启动activity dialog service broadcastreceiver contentprovider 等,以及toast的上下文有没有限制,是在哪个Window上处理的
activity 和 window的关系
应用中出现卡顿怎么找原因(第一是在主线程中执行太多东西,优化主线程中的业务处理 第二是在布局中是否存在过度绘制,导致GPU对纹理进行格栅化操作耗时,在硬件时钟通知刷新重绘屏幕时未完成操作,导致丢帧)

五:安卓原理

一个应用的启动过程(如何跟系统AMS WM SM完成通信)
ActivityThread类 是一个什么类,main方法中做了什么事情
binder机制 如何完成一个简单的bander通信过程
看过那些源码ListView RecyclerView viewpager源码相关

六:开源库相关

okhttp 实现过程
volley 实现过程(okhttp volley在使用过程中 各有哪些优势和缺点)
retrofit 实现过程
glide 实现过程
rxjava 和 rxandroid 常用操作符
butternife 实现原理(基于什么实现,以及注解保存时间,如何去解析)
其他常用的三方的实现原理及个人的理解

七:其他知识点

项目的技术点难点以及实现方案
设计模式及体现(常用的设计模式:观察者模式 适配器模式 责任链模式 单例模式 工厂模式 工厂方法模式 抽象工厂模式 构建者模式…)
git 简单命令
新技术 java8 as新版本 关注的博客 他们的特点

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值