Android知识清单
##Android 岗知识点清单
###Java
- 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
- 2.JDK和JRE的区别是什么?
- “static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?
- Java支持的数据类型有哪些?什么是自动拆装箱?
- Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?
- Java支持多继承么?如果不支持,如何实现
- 什么是值传递和引用传递?
- 进程和线程的区别是什么?
- 创建线程有几种不同的方式?哪种更好?为什么?
- 概括的解释下线程的几种可用状态
- HashMap和Hashtable有什么区别?
- java中的HashMap的工作原理是什么?
- java中的四种引用
- JVM内存分区,每个区的作用是什么?
- java垃圾收集机制?收集方法?
- Java接口与抽象类的区别,能否在接口中声明final方法、为什么
- java类加载过程?解释双亲委派模型
- java内存模型
- 什么是反射,反射机制
- java泛型、泛型与类型擦除
- java中的四大特性
- volatile 变量和 atomic 变量有什么不同?
- ThrealLocal是什么,原理
- Thread 类中的 start () 和 run () 方法有什么区别?
- java JNI相关
- 线程同步的方法有哪些
- java socket编程
- Callable和Runnable的区别
- ConcurrentHashMap原理
- 线程池的概念、好处、常见的线程池举例
- 原子性与可见性
- 如何判断一个对象是否存活
- java IO,NIO
《java编程思想》
###Android
- 安卓中的四大组件
- android中的五种布局,原理
- android中的动画有哪几种,区别
- android种有哪几种解析xml的方式,原理,区别
- android中解析json方法,原理,区别
- 为什么现在以json数据格式居多
- listview优化方法
- 数据存储方式
- 四种启动模式
- activity,fragment生命周期
- 广播机制,注册方式有哪些,顺序广播和无序广播
- Message+Handler+Looper
- MVC,MVP android中应用 区别
- 什么是ANR 什么情况下会出现ANR,如何避免
- 什么情况下会导致,Force Close 如何避免
- 描述android系统架构
- android中webview
- AIDL是什么 如何工作
- dvm虚拟机
- IPC进程间通信
- NDK开发
- 内存泄露与优化
- 电量优化
- AsyncTask AsyncTask相对于java自带的线程池的好处
- android 事件分发机制
- 什么是OOM,如何避免
- android中如何传递数据,有哪几种方式
谷歌官方最好,最全,也最权威
###数据结构与算法
- 九个排序算法,时间复杂度,什么情况下用哪种排序。
- 链表
- 栈
- 队列
- 二叉树,遍历方式的实现,递归与非递归版
- 图:BFS,DFS,最短路径等
- 字符串匹配,kmp算法
- 二分查找,hash表
理解数据结构原理后,多做题,剑指offer,程序员面试宝典等
###计算机网络
- tcp三次握手,四次挥手(常问)
- tcp可靠原理,流量控制,拥塞控制
- tcp,udp原理
- OSI分层与TCP/P分层,每层作用
- 解释ARP,ICMP
- DNS域名解析
- 交换机,网关,路由器概念,作用
- TCP连接管理,优化
- Http请求头,请求报文,相应报文,状态码及含义
- IP地址的分类,无分类CIDR,划分子网,ip数据报格式,ip网络地址及广播地址的计算(笔试常考)
- 说一下在浏览器输入www.xxx.com背后的原理(dns,http,tcp相关知识)
- URI与URL
- web缓存,代理,https等(了解)
- Http怎么处理长连接,http有无状态,如何保持状态
- Cookie和Session(知道最好)
参考书籍《计算机网络》、《HTTP权威指南》
###操作系统
- 死锁的必要条件,怎么处理死锁。
- 进程的几种状态
- IPC几种通信方式。
- 什么是虚拟内存。
- 虚拟地址、逻辑地址、线性地址、物理地址的区别
- 内存管理方式
- 进程调度的一些算法策略
- 了解linux吗,linux常用命令,内核原理
《深入理解操作系统》