一面java基础和安卓基础,问的很详细,但是都不涉及源码。
二面java基础:
1自我介绍+项目.
2String s1 = "abc" 与 String s2 =new String("abc")中,s1 == s2?为什么?
3是否了解JMM,说一下s1,s2各在JMM哪个地方存储.
4JMM中哪些区域可以多线程访问.
5java虚拟机的垃圾回收机制.
6弱引用,软引用.
7锁的类型你了解吗,比如对象锁,类锁,重入锁.
8写一下你知道的单例模式.
9我写了并发类型的,用了synchronized(A.class),面试官说这个写法效率低了,问知不知道一种双变量的写法。
10java线程池中的核心线程数与最大线程容量有什么用.
11假设java线程池最大容量为10,核心线程数为5,任务队列为2。
12当第1个任务来了放在哪里。
13第6个任务来了,放到哪里。
14第8个任务来了,放到哪里。
15sleep()方法与wait()方法有什么区别.
16调用sleep()方法后线程是否占用CPU资源Android.
1View点击事件是怎么传递的?
2如果事件传递到子View,子View返回false,这个时候的事件怎么处理.
3handle底层是怎么工作的?
4你知不知道ThreadLocal?
5假如我们在主线程新建10个Handler,现在handler1发了一个message,那么handler2的.
6dispatchMessage能收到吗.
7AsyncTask的底层是怎么实现的.
8怎么让AsyncTask实现并发线程池算法给定一个整型的有序数组num,和整数X,返回 num中大于X的最小整数的位置。比如num = {1,2,3,4,5,9,10,12},X = 7,则返回5,X = 1,则返回1.
三面java基础:
1自我介绍+项目介绍.
2说一下view的点击事件.
3.6个线程如果保证其他5个执行完了,第6个线程再执行.
4系统中哪些地方用到了缓存.
5浏览器缓存你了解吗.
6应用程序中哪些地方用了缓存算法一个int型数组[5,6,7,8,9,0,1,2,3,4],寻找int型变量x在数组中的位置,如果不存在,返回-1。(这题要求的时间复杂度小于o(n))
一共四面,问题太多,这里只添加内容做详实的2面和3面面经.
...查看更多