在北京呆厌倦了,北漂生活不易,打算返乡,所有的面试都是造航母,而工作都是拧螺丝。只能适应生活,所以不管工作多久都得复习一遍面试内容。在这里把我上次返乡先做一番调查试水的笔试题发表出来。希望能帮到各位求职或跳槽的程序猿同类。
1.执行如下程序代码后,c的值是();
int a=0;
int c=0;
do {
--c;
a=a-1;
}while(a>=0);
System.out.println("数值:"+c);
答案为 c=-1;
2.概述java垃圾回收机制。如何更有效的管理内存,减少OOM的概率?
什么是垃圾回收机制:在系统运行过程中,会产生一些无用的对象,这些对象占据着一定的内存,如果不对这些对象清理回收无用对象的内存,可能会导致内存的耗尽,所以垃圾回收机制回收的是内存。同时GC回收的是堆区和方法区的内存。
3.写一个函数,只能用一个循环并且是for循环来打印九九乘法表--请不要使用递归呦。
4利用char数组作为数据存储,设计实现一个名为CString的类,实现java自带String的常用的功能API。(必须实现三种构造函数,拷贝函数clone(),比较函数equals())。
烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?(逻辑推理)
Android部分
1.请描述下Activity的生命周期,绘制详细流程图加说明。
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); }
当然不行了.
1.运行前提:是loadImageFromNetwork()方法在下载到图片的同时,还要FileInputStream fis = new FileInputStream("/sdcard/test.png");
Bitmap bitmap = BitmapFactory.decodeStream(fis);
2.方法问题:ImageView的setImageBitmap()是设置imageView组件的图片显示。它的定义和源码如下:
public void setImageBitmap(Bitmap bm) {
// if this is used frequently, may handle bitmaps explicitly
// to reduce the intermediate drawable object
setImageDrawable(new BitmapDrawable(mContext.getResources(), bm));
}
也就是说它实际上是对setImageDrawable接口的封装,支持直接听过Bitmap对象进行组件图片的设置。
3.内存问题:
另外注意一下这个方法设置图片时,如果是大图片时,注意对图片的缩放,否则会内存溢出。通常需要三级缓存处理。
7.你对Android提供的兼容包了解多少,你已经用过里面哪些Api?试验说说你利用它们解决什么问题?
8.利用自己所了解的Android特性或是Java特性,如实现一个Bitmap缓存方案。