Android 面试问答
目录
- 数据结构和算法
- java核心知识
- Android核心知识
- 架构
- 设计相关问题
- 相关工具和技术
- Android 测试驱动开发
- 其他
数据结构和算法
******关于此类问题的难易程度完全取决于你所面试的单位 *****
- 数组
- 链表
- 双向链表
- 栈
- 队列
- 优先队列
- 动态规划(Dynamic Programming)
- 字符串处理(string Manipulation)
- 二叉树(Binary Tree)
- 二叉搜索树(Binary Search Tree)
- 排序算法(Sorting Algorithms)
- Hash Table & Hash Map
- 广度优先搜索算法(breadth First Search, BFS)
- 深度优先搜索(Depth First Search)
- 贪心算法(greedy algorithm)
Java核心知识
- 解释面向对象的概念
- 抽象类和接口有什么不同?
- 什么是序列化(serialization),你是怎么实现的?
- 什么是单例类?
- 什么是匿名类(anonymous classes)?
- 处理一个string类型的数据时,== 和 equals 有什么区别?
- hashcode() 和 equals() 是用来做什么的?
- 什么是内存泄漏?Java是如何处理这个问题的?
- 什么是垃圾回收机制?它是如何工作的?
- Java中的类型转换
- 方法重写和方法重载有什么区别?
- 你知道哪些访问修饰符(the access modifiers)?他们各自的作用是什么?
- 接口可以继承另一个接口吗?
- Java中
static
关键字是什么含义 - Java中静态方法可以被重写吗?
- 什么是多态(Polymorphism)?什么是继承(Inheritance)?
- Integer和int有什么区别?
- 详述下Java中对象的引用和值传递(objects get passed by reference)
- 什么是
ThreadPoolExecutor
? - 局部变量(local variables),成员变量(class variables),实例变量(instance variables)有什么不同?
- 什么是反射?
- Java中的弱引用,软引用,虚引用(strong, soft and weak references)是什么?
- 什么是依赖注入(dependency injection)?能说出几个相关的库么?你有没有用过?
synchronized
关键字是什么意思?- 为什么说String类型的变量是不可修改的(immutable)?
transient
和volatile
修饰符是什么?- 一个对象的实例化(instantiation)和初始化(initialization)有什么区别
- 静态代码块(static block)什么时候执行?
- 解释下Java中的泛型(Generics)
StringBuffer
和StringBuilder
有什么区别?- 什么是自动拆装箱(Autoboxing and Unboxing)?
- 什么是设计模式(design patterns)?
Android 核心知识
未完待续。。。