Skip to content

BigChaChi/AndroidInterview

 
 

Repository files navigation

1. Java

1.1 语言特性

面向对象的3个特征 & 含义

多态的实现原理

Java的4种引用& 使用场景

8种基本数据类型、封装类 及 相关操作

for each 、 for循环效率对比

对比 Java、C++

1.2 具体类 & 方法

Override与Overload的区别

static关键字(静态类、静态变量与普通的区别)

接口(Interface) 与 抽象类(abstract class)的区别

String相关(equals与==的区别、Switch能否用string做参数、String、StringBuffer 与 StringBuilder的区别、常用函数、正则表达式)

Object类的公有方法

不同情形下return 和 finally的执行顺序

关键字:transient、volatile

1.3 集合

Collection相关:包结构、与Collections的区别、Collections与 Arrays 的区别

List、Set、Queue、Stack、Map的特点与用法

Vector、ArrayList、LinkedList的存储特性 & 区别

Map相关:子类继承、对比、HashCode()、HashMap原理、HashSet

BlockingQueue & 实现类

CountDownLatch

1.4 机制

实现多线程的两种方法:Thread与Runable

线程池ThreadPool 使用 & 原理

线程局部变量ThreadLocal相关

线程同步的方法:sychronized、lock、reentrantLock

锁的等级:方法锁、对象锁、类锁

wait()和sleep()区别

反射

JNI相关

IO 和 NIO.

泛型相关:特点、List能否转为List、Java泛型与C++泛型区别

Java 1.7、Java 1.8新特性

XML解析方式 & 与JSON对比

解决生产 & 消费者问题的5种实现

错误类型:Exception与Error包结构、OOM、SOF


2. Android

2.1 四大组件

四大组件简介

Activity相关:生命周期、启动模式 & 方式 & 过程、加速启动 、IntentFilter匹配规则、卡顿原因、状态保存(缓存方式)

Broadcast:注册广播的两种方式.

ContentProvider:使用、Intent、Binder

Service:简介、生命周期、IntentService

2.2 多线程

AsyncTask:原理 & 使用

Handler相关:机制原理、发送方式的区别

多线程使用场景 & 特点(继承Thread类 / 实现Runnable、AsycTask、IntentService、HandlerThread)

2.3 基础使用

5种数据存储形式

软引用、弱引用的应用场景

文件缓存方法:内存缓存 > 硬盘缓存 > 数据库缓存(SQLite) > 文件缓存

长连接、心跳、推送

6种布局特点 & 对比

Sqlite的基本操作

Asset目录 与 res:raw,res:drawable目录的区别

Parcelable、Serializable的简介 & 区别

2.4 自定义View

自定义View流程

事件分发机制

动画类型 & 特点

布局性能优化:标签(include、viewstub、merge)

Bitmap:4种解码方式属性、内存优化

Window、Activity、DecorView 和 ViewRoot的关系

2.5 性能优化

内存优化 & 泄露、布局优化、绘制优化

2.6 补充技术

NDK

热补丁修复

插件化

MVC、MVP、MVVM

2.7 其他

设计模式

开源分析:GlideOkhttpRetrofit.RxJavaV-layout

断点续传

8.0、7.0、6.0、5.0新特性

App的启动流程

Zygote进程启动过程

为什么不能在子线程操作UI

一键退出App

3. 数据结构

4. 算法

5. JVM

6. 计算机基础

示意图

体系结构、TCP & 其他:简书

HTTP

Socket

About

Android面试指南

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%