8月份收到美图的面试邀约,一种紧张与激动的心情油然而生。到达面试地点后发现4399、美柚、GBit等大公司都聚集在旁边。原本以为没有笔试题,没想到还是有一份笔试题让你做的,时间大概是一个小时。笔试内容主要分为两部分包含Java基础与Android相关知识点,还有一道逻辑推理题吧!下面与大家分享一下这些笔试题。
Java基础部分
1.执行如下程序代码后,c的值是();
int a=0;
int c=0;
do {
--c;
a=a-1;
}while(a>=0);
System.out.println("数值:"+c);
2.概述java垃圾回收机制。如何更有效的管理内存,减少OOM的概率?
3.简述ConcurrentHashMap的实现原理
4利用char数组作为数据存储,设计实现一个名为CString的类,实现java自带String的常用的功能API。(必须实现三种构造函数,拷贝函数clone(),比较函数equals())。
5.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?(逻辑推理)
Android部分
1.View的绘制流程
2.Android提供了几种数据持久方式,分别是什么?
3.Android中有哪几种方法可以使得任务并发执行,Handler有什么作用?
4.Android如何实现多线程之间同步访问共享数据。
5.Android中常用的显示单位有px、dip、sp,有什么区别,以及它们之间如何换算?
6.以下代码是否可以很好的工作,为什么?如果不行如何优化?
public void onClick(View v){
Bitmap b=loadImageFromNetwork("http://example.com/image.png");
mImageView.setImageBitmap(b);
}
7.你对Android提供的兼容包了解多少,你已经用过里面哪些Api?试验说说你利用它们解决什么问题?
8.利用自己所了解的Android特性或是Java特性,如实现一个Bitmap缓存方案。