-
Notifications
You must be signed in to change notification settings - Fork 933
Home
dodola edited this page Mar 24, 2015
·
56 revisions
部分内容翻译自:AustinChou/My-Knowledge-Base iOS/Mac 开发部分
- Android系统架构
- Activity/Service生命周期
- Android中的动画(补帧与逐帧)
- Handler机制
- Android线程之间、Activity之间通信
- DVM与ART
- assest和raw文件夹与程序打包
- 常用的五种布局方式
- Android中的广播机制
- 设计模式与IoC(Inversion of Control)
- Android中长度单位
- Activity的4种启动模式
- 什么是ANR,如何避免
- ListView原理与优化
- ContentProvider实现原理
- 介绍Binder机制
- 匿名共享内存,使用场景
- 如何自定义View,如果要实现一个转盘圆形的View,需要重写View中的哪些方法?(onLayout,onMeasure,onDraw)
- Android事件分发机制
- Socket和LocalSocket
- 如何加载大图片
- HttpClient和URLConnection的区别,怎么使用https
- Parcelable和Serializable区别
- Android里跨进程传递数据的几种方案。(Binder,文件[面试官说这个不算],Socket,匿名共享内存(Anonymous Shared Memory))
- 布局文件中,layout_gravity 和 gravity 以及 weight的作用。
- ListView里的ViewType机制
- TextView怎么改变局部颜色(SpannableString或者HTML)
- Activity A 跳转到 Activity B,生命周期的执行过程是啥?(此处有坑 ActivityA的OnPause和ActivityB的onResume谁先执行)
- Android中Handler声明非静态对象会发出警告,为什么,非得是静态的?(Memory Leak)
- ListView使用过程中是否可以调用addView(不能,话说这题考来干啥。。。)
- HandlerThread有什么作用,请描述一下内部机制。
- 请用一个线程自己实现消息队列循环。(Thread+Looper+Handler即可)
- Application类的作用
- View的绘制过程
- 广播注册后不解除注册会有什么问题?(内存泄露)
- 属性动画(Property Animation)和补间动画(Tween Animation)的区别,为什么在3.0之后引入属性动画(官方解释:调用简单)
- 有没有使用过EventBus或者Otto框架,主要用来解决什么问题,内部原理
- 设计一个网络请求框架(可以参考Volley框架)
- 网络图片加载框架(可以参考BitmapFun)
- Android里的LRU算法原理
- BrocastReceive里面可不可以执行耗时操作?
- Service onBindService 和startService 启动的区别
算法(很多是《编程之美》里的原题):
- 二分搜索
- 从100W个数中,找出100个最大数(堆)
- 链表模拟加法,比如 1->2->3 , 4->-5>6->7 输出结果:4->6->9->0 (主要考察链表逆置)
- 用两个栈实现一个队列。队列的生命如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。
- 写一个将字符串转换为数字的方法,不能使用Java现有的方法(如:Integer.parseInt)
- 一百个台阶,一步一步走,也可以两步两步走,一共有多少种走法?
- 递归实现下 public String replace(String ss, char ch);(没看懂什么意思)
- 快排
- 双链表
Java
- 垃圾回收机制。。。(主要从下面几方面解答 GC原理、最好画图解释一下年轻代(Eden区和Survival区)、年老代、比例分配及为啥要这样分代回收)
- 对象分配问题,堆栈里的问题,详细的会问道方法区、堆、程序计数器、本地方法栈、虚拟机栈,问题入口从String a,new String("")开始
- 关键字,private protected public static final 组合着问
- Object类里面有哪几种方法,作用
- equals 和 hashCode方法,重写equals的原则()
- 向上转型
- Java引用类型(强引用,软引用,弱引用,虚引用)
- 线程相关的,主要是volitate,synchorized,wait(),notify(),notifyAll(),join()
- Exception和Error
- 反射的用途
- HashMap实现原理(数组+链表),查找数据的时间复杂度
- List有哪些子类,各有什么区别
- NIO相关,缓冲区、通道、selector。。。(不熟,面了这么多,挂在这里。其实主要是表现在同步阻塞和异步,传输方式不同。标准IO无法实现非阻塞模式、文件锁、读选择、分散聚集等)
- 内存泄露,举个例子
- OOM是怎么出现的,有哪几块JVM区域会产生OOM,如何解决(对于该问题,建议去《Java特种兵》的3.6章)
- Java里面的观察者模式实现
- 单例实现(我一般用enum写,不容易被挑毛病)
- 用Java模拟一个栈,并能够做到扩容,并且能有同步锁。(用数组实现)