android 面试宝典

dayxy 分享 时间: 收藏本文

【简介】感谢网友“dayxy”参与投稿,今天小编在这给大家整理了android 面试宝典(共12篇),我们一起来阅读吧!

篇1:android面试宝典

1、Android的四大组件是哪些,它们的作用?

答:Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑

service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事物,定义好需要接受的Intent提供同步和异步的接口

Content Provider:是Android提供的第三方应用数据的访问方案,可以派生Content Provider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的接口模型,大大简化上层应用,对数据的整合提供了更方便的途径

Broadcast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型

2、请介绍下Android中常用的五种布局。

常用五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。

一、FrameLayout:所有东西依次都放在左上角,会重叠,这个布局比较简单,也只能放一点比较简单的东西。二、LinearLayout:线性布局,每一个LinearLayout里面又可分为垂直布局(android:orientation=“vertical”)和水平布局(android:orientation=“horizontal” )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。三、AbsoluteLayout:绝对布局用X,Y坐标来指定元素的位置,这种布局方式也比较简单,但是在屏幕旋转时,往往会出问题,而且多个元素的时候,计算比较麻烦。四、RelativeLayout:相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:相对于某一个元素android:layout_below、android:layout_toLeftOf相对于父元素的地方android:layout_alignParentLeft、android:layout_alignParentRigh;五、TableLayout:表格布局,每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素。每一个布局都有自己适合的方式,这五个布局元素可以相互嵌套应用,做出美观的界面。

3、android中的动画有哪几类,它们的特点和区别是什么

答:两种,一种是Tween动画、还有一种是Frame动画。Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

4、android 中有哪几种解析xml的类?官方推荐哪种?以及它们的原理和区别。

答:XML解析主要有三种方式,SAX、DOM、PULL。常规在PC上开发我们使用Dom相对轻松些,但一些性能敏感的数据库或手机上还是主要采用SAX方式,SAX读取是单向的,优点:不占内存空间、解析属性方便,但缺点就是对于套嵌多个分支来说处理不是很方便。而DOM方式会把整个XML文件加载到内存中去,该方法在查找方面可以和XPath很好的结合如果数据量不是很大推荐使用,而PULL常常用在J2ME对于节点处理比较好,类似SAX方式,同样很节省内存,在J2ME中我们经常使用的KXML库来解析。

5、ListView的优化方案

答:1、如果自定义适配器,那么在getView方法中要考虑方法传进来的参数contentView是否为null,如果为null就创建contentView并返回,如果不为null则直接使用。在这个方法中尽可能少创建view。

2、给contentView设置tag(setTag),传入一个viewHolder对象,用于缓存要显示的数据,可以达到图像数据异步加载的效果。

3、如果listview需要显示的item很多,就要考虑分页加载。比如一共要显示100条或者更多的时候,我们可以考虑先加载20条,等用户拉到列表底部的时候再去加载接下来的20条。

6、请介绍下Android的数据存储方式。

答:使用SharedPreferences存储数据;文件存储数据;SQLite数据库存储数据;使用ContentProvider存储数据;网络存储数据;

Preference,File, DataBase这三种方式分别对应的目录是/data/data/Package Name/Shared_Pref, /data/data/Package Name/files, /data/data/Package Name/database 。

一:使用SharedPreferences存储数据

首先说明SharedPreferences存储方式,它是 Android提供的用来存储一些简单配置信息的一种机制,例如:登录用户的用户名与密码。其采用了Map数据结构来存储数据,以键值的方式存储,可以简单的读取与写入,具体实例如下:

void ReadSharedPreferences(){

String strName,strPassword;

SharedPreferences user = getSharedPreferences(“user_info”,0);

strName = user.getString(“NAME”,””);

strPassword = user getString(“PASSWORD”,””);

}

void WriteSharedPreferences(String strName,String strPassword){

SharedPreferences user = getSharedPreferences(“user_info”,0);

uer.edit();

user.putString(“NAME”, strName);

user.putString(“PASSWORD” ,strPassword);

user.commit();

}

数据读取与写入的方法都非常简单,只是在写入的时候有些区别:先调用edit()使其处于编辑状态,然后才能修改数据,最后使用commit()提交修改的数据。实际上SharedPreferences是采用了XML格式将数据存储到设备中,在DDMS中的File Explorer中的/data/data//shares_prefs下。使用SharedPreferences是有些限制的:只能在同一个包内使用,不能在不同的包之间使用。

二:文件存储数据

文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法,与 Java中实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。具体实例如下:

String fn = “moandroid.log”;

FileInputStream fis = openFileInput(fn);

FileOutputStream fos = openFileOutput(fn,Context.MODE_PRIVATE);

三:网络存储数据

网络存储方式,需要与Android 网络数据包打交道,关于Android 网络数据包的详细说明,请阅读Android SDK引用了Java SDK的哪些package?。

四:ContentProvider

1、ContentProvider简介

当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferences API读写数据。而使用ContentProvider共享数据的好处是统一了数据访问方式。

2、Uri类简介

Uri代表了要操作的数据,Uri主要包含了两部分信息:1.需要操作的ContentProvider ,2.对ContentProvider中的什么数据进行操作,一个Uri由以下几部分组成:

1.scheme:ContentProvider(内容提供者)的scheme已经由Android所规定为:content://…

2.主机名(或Authority):用于唯一标识这个ContentProvider,外部调用者可以根据这个标识来找到它。

3.路径(path):可以用来表示我们要操作的数据,路径的构建应根据业务而定,如下:

要操作contact表中id为10的记录,可以构建这样的路径:/contact/10

要操作contact表中id为10的记录的name字段, contact/10/name

要操作contact表中的所有记录,可以构建这样的路径:/contact?

要操作的数据不一定来自数据库,也可以是文件等他存储方式,如下:

要操作xml文件中contact节点下的name节点,可以构建这样的路径:/contact/name

如果要把一个字符串转换成Uri,可以使用Uri类中的parse()方法,如下:

Uri uri = Uri.parse(“content://com.changcheng.provider.contactprovider/contact”)

3、UriMatcher、ContentUrist和ContentResolver简介

因为Uri代表了要操作的数据,所以我们很经常需要解析Uri,并从 Uri中获取数据。Android系统提供了两个用于操作Uri的工具类,分别为UriMatcher 和ContentUris 。掌握它们的使用,会便于我们的开发工作。

UriMatcher:用于匹配Uri,它的用法如下:

1.首先把你需要匹配Uri路径全部给注册上,如下:

//常量UriMatcher.NO_MATCH表示不匹配任何路径的返回码(-1)。

UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);

//如果match()方法匹配content://com.changcheng.sqlite.provider.contactprovider /contact路径,返回匹配码为1

uriMatcher.addURI(“com.changcheng.sqlite.provider.contactprovider”, “contact”, 1);//添加需要匹配uri,如果匹配就会返回匹配码

//如果match()方法匹配 content://com.changcheng.sqlite.provider.contactprovider/contact/230路径,返回匹配码为2

uriMatcher.addURI(“com.changcheng.sqlite.provider.contactprovider”, “contact/#”, 2);//#号为通配符

2.注册完需要匹配的Uri后,就可以使用uriMatcher.match(uri)方法对输入的Uri进行匹配,如果匹配就返回匹配码,匹配码是调用 addURI()方法传入的第三个参数,假设匹配 content://com.changcheng.sqlite.provider.contactprovider/contact路径,返回的匹配码为1。

ContentUris:用于获取Uri路径后面的ID部分,它有两个比较

[android面试宝典]

篇2:android程序员面试宝典

谈谈UI中, Padding和Margin有什么区别?

widget相对位置的完成在antivity的哪个生命周期阶段实现。

请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。

AIDL的全称是什么?如何工作?能处理哪些类型的数据?

请解释下Android程序运行时权限与文件系统权限的区别。

系统上安装了多种浏览器,能否指定某浏览器访问指定页面?

对多线程的运用和理解,及多线程之间handle的传值。

对android虚拟机的理解,包括内存管理机制垃圾回收机制。

Framework工作方式及原理,Activity是如何生成一个view的,机制是什么。

android本身的一些限制,比如apk包大小限制,读取大文件时的时间限。

如何加载的音乐信息,如何改善其效率。

ListView如何提高其效率?

启动应用后,改变系统语言,应用的语言会改变么?

启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?

Android程序与Java程序的区别?

Android中Task任务栈的分配。

在Android中,怎么节省内存的使用,怎么主动回收内存?

不同工程中的方法是否可以相互调用?

在Android中是如何实现判断区分通话记录中的电话状态,去电,来电、未接来电?

dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念

sim卡的EF 文件有何作用

如何判断是否有SD卡?

嵌入式操作系统内存管理有哪几种, 各有何特性。

什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?

一条最长的短信息约占多少byte?

Linux中跨进程通信的几种方式 。

谈谈对Android NDK的理解。

谈谈Android的优点和不足之处。

Android系统中GC什么情况下会出现内存泄露呢?

Android UI中的View如何刷新。

简单描述下Android 数字签名。

什么是ANR 如何避免它?

android中的动画有哪几类,它们的特点和区别是什么?

handler机制的原理。

android中线程与线程,进程与进程之间如何通信。

说说mvc模式的原理,它在android中的运用。

android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别。

DDMS与TraceView的区别?

res目录有默认几项resource。

android的哪个版本是一次重大的升级?

两个Activity之间跳转时必然会执行的是哪几个方法。

横竖屏切换时候Activity的生命周期。

如何将一个Activity设置成窗口的样式。

你后台的Activity被系统 回收怎么办?

如何退出Activity?如何安全退出已调用多个Activity的Application?

如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?

两个Activity之间怎么传递数据?

怎么让在启动一个Activity是就启动一个service?

同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?

Activity怎么和service绑定,怎么在activity中启动自己对应的service?

什么是Service以及描述下它的生命周期。

Service有哪些启动方法,有什么区别,怎样停用Service?

不用service,B页面为音乐播放,从A跳转到B,再返回,如何使音乐继续播放?

什么是IntentService?有何优点?

什么时候使用Service?

请描述一下Intent 和 Intent Filter。

Intent传递数据时,可以传递哪些类型数据?

说说Activity,Intent,Service是什么关系 。

请描述一下Broadcast Receiver。

在manifest和代码中如何注册和使 用 broadcast receiver 。

请介绍下ContentProvider是如何实现数据共享的。

请介绍下Android的数据存储方式。

SharedPreferences:用来存储”key-value paires“格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型。

文件存储:通过FileInputStream和FileOutputStream对文件进行操作。在Android中,文件是一个应用程序私有的,一个应用无法读写其他应用程序的文件。

[android程序员面试宝典]

篇3:腾讯android面试

如何画出一个印章的图案;

如何实现一个字体的描边与阴影效果;

同一个应用程序的不同Activity可以运行在不同的进程中么?如果可以,举例说明;

Java中的线程同步有哪几种方式,举例说明;

说说对Handler, Looper, 以及HandlerThread的理解;

dp, dip, dpi, px, sp是什么意思以及他们的换算公式?layout-sw600dp, layout-h600dp分别代表什么意思;

写出Activity的几中启动方式,并简单说说自己的理解或者使用场景;

如何设计一个文件的断点续传系统;

一个关于xml的布局问题,大概意思就是如何让两个TextView在一个RelativeLayout水平居中显示;

设计一个从网络请求数据,图片,并加载到列表的系统,画出客户端架构并简单的分析下;

[腾讯android面试]

篇4:android面试题目

1、Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念

DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。

2、sim卡的EF 文件有何作用

sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本 身可以有自己的操作系统,EF就是作存储并和手机通讯用的

3、嵌入式操作系统内存管理有哪几种, 各有何特性

页式,段式,段页,用到了MMU,虚拟空间等技术

4、什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?

嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。主要用于工业控制、军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬实时两种,而android是基于linux内核的,因此属于软实时。

5、一条最长的短信息约占多少byte?

中文70(包括标点),英文160,160个字节。

6、android中的动画有哪几类,它们的特点和区别是什么?

两种,一种是Tween动画、还有一种是Frame动画。Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

7、handler机制的原理

andriod提供了 Handler 和 Looper 来满足线程间的通信。Handler 先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(Message Exchange)。

1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列)。

2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue里;或者接收Looper从Message Queue取出)所送来的消息。

3) Message Queue(消息队列):用来存放线程放入的消息。

4)线程:UI thread 通常就是main thread,而Android启动程序时会替它建立一个Message Queue。

8、说说mvc模式的原理,它在android中的运用

android的官方建议应用程序的开发采用mvc模式。何谓mvc?

mvc是model,view,controller的缩写,mvc包含三个部分:

l模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。

l视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。

l控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,想用用户出发的相关事件,交给m哦得了处理。

android鼓励弱耦合和组件的重用,在android中mvc的具体体现如下:

1)视图层(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入,当然,如何你对android了解的比较的多了话,就一定 可以想到在android中也可以使用javascript+html等的方式作为view层,当然这里需要进行java和javascript之间的通 信,幸运的是,android提供了它们之间非常方便的通信实现。

2)控制层(controller):android的控制层的重 任通常落在了众多的acitvity的肩上,这句话也就暗含了不要在acitivity中写代码,要通过activity交割model业务逻辑层处理, 这样做的另外一个原因是android中的acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。

3)模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,当然对业务计算等操作也是必须放在的该层的。

9、Activity的生命周期

和其他手机平台 的应用 程序 一样,Android的应用程序 的生命周期是被统一掌控 的,也就是说我们写的应用程序命运掌握在别人(系统)的手里,我们不能改变它,只能学习并适应它。

简单地说一下为什么是这样:我们手机在运行 一个应用程序的时候,有可能打进来电话发进来短信 ,或者没有电了,这时候程序都会被中断,优先去服务电话的基本功能 ,另外系统也不允许你占用太多资源 ,至少要保证电话功能吧,所以资源不足的时候也就有可能被干掉。言归正传,Activity的基本生命周期如下代码 所示:

Java代码

public

class MyActivity extends Activity {

protected

void onCreate(Bundle savedInstanceState);

protected

void onStart;

protected

void onResume();

protected

void onPause();

protected

void onStop();

protected

void onDestroy();

}

public class MyActivity extends Activity { protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(); }

你自己写的Activity会按需要 重载这些方法,onCreate是免不了的,在一个Activity正常启动的过程中,他们被调用的顺序是 onCreate ->onStart ->onResume, 在Activity被干掉的时候顺序是onPause ->onStop ->onDestroy ,这样就是一个完整的生命周期,但是有人问了 ,程序正运行着呢来电话了,这个程序咋办?中止了呗,如果中止的时候新出的一个Activity是全屏的那么:onPause->onStop ,恢复的时候onStart->onResume ,如果打断 这个应用程序的是一个Theme为Translucent 或者Dialog 的Activity那么只是onPause ,恢复 的时候onResume 。

详细介绍一下这几个方法中系统在做什么以及我们应该做什么:

onCreate: 在这里创建界面 ,做一些数据 的初始化工作

onStart: 到这一步变成用户可见不可交互的onResume: 变成和用户可交互 的,(在activity 栈系统通过栈的方式管理这些个Activity的最上面,运行完弹出栈,则回到上一个Activity)

onPause: 到这一步是可见但不可交互 的,系统会停止动画 等消耗CPU 的事情从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在

onResume里读出来,注意:这个方法里做的事情时间要短,因为下一个activity不会等到这个方法完成才启动

onstop: 变得不可见 ,被下一个activity覆盖了

onDestroy: 这是activity被干掉前最后一个被调用方法了,可能是外面类调用finish方法或者是系统为了节省空间将它暂时性的干掉,可以用isFinishing()来判断它,如果你有一个Progress Dialog在线程中转动,请在onDestroy里把他cancel掉,不然等线程结束的时候,调用Dialog的cancel方法会抛异常的。

onPause,onstop, onDestroy,三种状态 下 activity都有可能被系统干掉为了保证程序的正确性,你要在onPause()里写上持久层操作的代码,将用户编辑的内容都保存到存储介质上(一般都是数据库 )。实际工作中因为生命周期的变化而带来的问题也很多,比如你的应用程序起了新的线程在跑,这时候中断了,你还要去维护那个线程,是暂停还是杀掉还是数据 回滚,是吧?因为Activity可能被杀掉,所以线程中使用的变量和一些界面元素就千万要注意了,一般都是采用Android的消息机制 [Handler,Message]来处理多线程和界面交互的问题。

10、让Activity变成一个窗口:Activity属性设定

篇5:android面试经历

虽然现在离那时面试的经历有一段时间了,但是我还是要说出来,希望能给想要找工作和换工作的同学们一些帮助。

先说投简历,其时我没投简历,有经验的同学们可以把简历挂到网上(最好是智联)等着公司和猎头给你电话就行,简历要尽量简洁,当然你会的技能最好写的详细些,最好一篇纸搞定。

先说小公司,小公司面了10多家,总结来说小公司远没有想象中那样要求低,很多小公司要求还是很高的,但基本问的都是些皮毛,大家只要把网上的面试题搞定就好了,不少小公司都问道了布局,因为面试官以前可能是做j2ee的,他们要转android应用层开发,界面布局还是稍微另他们头痛的事,小公司不愿花从大多成本招程序员,一个客户端往往就2,3个人开发,比较变态的是有的公司让你一个人搞定。另外小公司大多做apk,布局和界面的美化对他们来说十分重要。小公司一般都会有笔试题,都是些基础知识还有工作中常见的问题,比如手机适配方面的知识。有两家中小企业有些印象:一家忘记名字了,项目经理很牛的样子,说出他们公司为了性能整个客户端就用一个activity,这个固然可以,但是也得考虑可维护性吧,再说写成一个activity也没什么牛的,不用那么吹嘘。还有一家是中科金财,问了些布局和socket和手机地图的问题就ok了,结果我吃了大亏,报道时说第二天就派我去飞机场(客户那边),让我一个人负责客户端的开发,我说周期多长,答曰:两三个月。立马闪人,工作地点又远又偏僻,还我一个人搞开发,待遇也不高,典型的节约成本拿技术人员当驴使的公司。

轮到些大一点的公司,先说搜狐,搜狐要求还是很高的,问题是该项目经理对我这种从小公司出来的人很不感冒,他很随意但显然坐不住凳子,他说他们做了一个新浪视频客户端正在维护,让我看着他们的界面,让我简单分析他们的布局。这个问题看似简单其实很难,要全部说清楚几乎不可能。

还有千橡互动(人人网),这个公司也勉强算大吧= =,前台很牛的样子,进来让我做智力题,我说我来面试程序员,他说每个来面试的必须写,一个填图题跟智力无关,反而感觉自己被轻视了。面试官穿这脱鞋,蓬头垢面,很“牛”的样子。拿了张纸考我闰年的算法和listview的优化,期间他一直手直哆嗦,看来派了个小兵考我,再次被轻视,果断闪人(罢面)。

联想面了3次+ +,第一个项目经理还是很随和的,问了些Task的问题,activity加载模式以及一些我项目中的问题,可能我经验尚浅没进去。第二次有些变态,四个人面我,其中一个之总经理级别,面我一个小程序员不用这样吧,一人问一个问题,静态的问题啊,我项目中的问题啊,不过居然问我代码是怎写的,让我说出来,我当时无语了,早忘了啊。第三次没印象了。

土豆网很偏僻啊,我看了看他们的环境(不太好)人员也很闲散,大下午的都不在工作。项目经理有会,找可俩手下面我,感觉更像是技术PK,聊些asyncTask了,消息处理了,当我说道framework层时,显然他们就不知道了。Pk了一小时,还让我教他们关于surfaceview的知识,说他们不清楚,我刚想讲项目经理来了,可能是离职原因说的不太好吧。只差一步了啊= =,所以离职原因非常重要,想好了再说出来。

京东商城好像包了三层大楼,环境不错,来了个开发人员考我问题,问的都是项目中的问题,一些关于多线程下载的问题,问道我代码,我记错了,所以就惨了,其实我认为不应考一些代码的问题,虽然是自己写的,但过一阵都忘了,我要问面试官代码,估计他也说不出来。不过感觉不错。

阿里云,刚去时不知道是什么公司,是阿里巴巴的子公司,环境还ok,主要是项目经理不错,我们聊了一个半小时,技术问题没问太多,就是关于布局一些问题,消息处理,数据存储等一些基本题,他更关注的是你的思想,很可惜这个岗位招的是管理人员,我经验尚浅条件不符。

金山去了一趟,楼里还不错,不过我没见面试官,人事给我一张笔试题,我其实很差异大公司一般不笔试啊+ +,我看了看,三道题都拿不准,一道链表的算法题,晕菜啊没看啊。最郁闷的是,最后一道问金山快盘的原理和设计什么的,我也没用过啊,狂晕,果断闪人。

中科软,这个比较郁闷,项目经理显然很喜欢我,遗憾的是他们这没有做android开发,所以面试时最好先了解面试的公司招什么职位,具体做哪些事,变被动为主动。

中软国际,这个是做外包项目,面试题很多,主要还是基础,什么如何观看手机的内存cpu信息等等。

文思创新,临时有事直接罢面,面试题很多也很恶心,算法题考的很多,还是客观题。

还有一家大公司忘了名字了,这回彻底被鄙视,意思是我在小公司没有做过内存优化和性能方面的工作,不过面试期间我接了四个面试电话,把俩面试官凉在那也算解了气。

期间还有新浪,百度,360,创新工厂找我面试因为各种原因没去,最后去了华为,在华为可以让你的层次更高一些,因为我参与的是整机开发,如果去搜狐和千橡或者是土豆做客户端维护的,技术就容易停留到应用层了。

[android面试经历]

篇6:java面试宝典

*** JAVA面试题. ***

1、作用域public,private,protected,以及不写时的区别 答:区别如下:

作用域 当前类 同一package 子孙类 其他 package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × ×

不写时默认为friendly2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,

是否可以implements(实现)interface(接口)

答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作

为一个接口,由另一个内部类 实现

3、Static Nested Class 和 Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++

嵌套类最大的不同就在于

是否有指向外部的引用上。注: 静态内部类(Inner Class)意味着1创建一个static内部类

的对象,不需要一个外部类对

象,2 不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别

答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别

答:Collection是集合类的上级接口,继承与他的接口主要有 Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排

序、线程安全化等操作 6、什么时候用assert

答: assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。

在实现中,assertion就是

在程序中的一条语句,它对一个 boolean 表达式进行检查,一个正确程序必须保证这个

boolean表达式的值为 true;如果该

值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说, assertion

用于保证程序最基本、关

键的正确性。assertion 检查通常在开发和测试时开启。为了提高性能,在软件发布后,

assertion检查通常是关闭的

7、String s = new String(“xyz”);创建了几个String Object

答:两个,一个字符对象,一个字符对象引用对象

8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少

答: Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回与参数最接近的长整数,参

数加1/2 后求其floor9、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错 答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)short s1 = 1; s1 += 1;(可以正确编 译)

10、Java有没有goto

答:java中的保留字,现在没有在java中使用 11、数组有没有length这个方法? String有没有length()这个方法

答:数组没有length()这个方法,有 length的属性。String有有 length()这个方法

12、Overload和Override的区别。Overloaded 的方法是否可以改变返回值的类型

答:方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写 Overriding

是父类与子类之间多态性的一种

表现,重载 Overloading 是一个类中多态性的一种表现。如果在子类中定义某方法与其父类

有相同的名称和参数,我们说该

方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,

父类中的定义如同被“屏蔽”

了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型, 则称为方法的重载

(Overloading)。Overloaded的方法是可以改变返回值的类型

13、Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是 equals()? 它们有何区别

答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个 Set是否相等

equals()和==方法决定引用值是否指向同一对象 equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配 的话,返回真值

14、给我一个你最常见到的 runtime exception

答 : 常 见 的 运 行 时 异 常 有 如 下 这 些 ArithmeticException, ArrayStoreException,BufferOverflowException,

BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException,

ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException,

IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException,

SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException15、error和exception有什么区别

答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可

能指望程序能处理这样的情况

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的 情况

16、List, Set, Map是否继承自 Collection接口 答: List,Set是,Map不是

17、abstract class和interface 有什么区别

答:声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并

为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个

抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。 Abstract 类的子类为它们父类中的所有

抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义 static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口

18、abstract的method 是否可同时是static,是否可同时是 native,是否可同时是synchronized

答:都不能

---------- 1 ----------

*** JAVA面试题.txt ***

19、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类 (concrete class)

答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构 造函数

20、构造器Constructor 是否可被override

答:构造器Constructor 不能被继承,因此不能重写Overriding,但可以被重载Overloading21、是否可以继承String类

答:String类是final类故不可以继承

22、try {}里有一个return语句,那么紧跟在这个try后的 finally {}里的 code会不会被执行,什么时候被执行,在return 前还是后

答:会执行,在return前执行

23、用最有效率的方法算出 2乘以8等於几 答:2 << 324、两个对象值相同(x.equals(y) == true),但却可有不同的 hash code,这句话对不 对

答:不对,有相同的hash code25、当一个对象被当作参数传递到一个方法后,此方法可改

变这个对象的属性,并可返回变化后的结果,那么这里到底是 值传递还是引用传递

答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方

法中时,参数的值就是对该对象

的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的

26、swtich是否能作用在byte 上,是否能作用在long上,是否能作用在String上 答:witch(expr1)中,expr1 是一个整数表达式。因此传递给 switch 和 case 语句的参数

应该是 int、short、char

或者 byte。long,string 都不能作用于 swtich27、ArrayList 和 Vector 的区别,HashMap 和 Hashtable的区别

答:就ArrayList与Vector主要从二方面来说.

一.同步性:Vector 是线程安全的,也就是说是同步的,而 ArrayList 是线程序不安全的,不是 同步的

二.数据增长:当需要增长时,Vector默认增长为原来一培,而 ArrayList却是原来的一半

就HashMap与 HashTable主要从三方面来说。

一.历史原因:Hashtable 是基于陈旧的Dictionary 类的,HashMap是Java 1.2引进的 Map接口 的一个实现

二.同步性:Hashtable 是线程安全的,也就是说是同步的,而 HashMap 是线程序不安全的, 不是同步的

三.值:只有HashMap可以让你将空值作为一个表的条目的key或value

28、char 型变量中能不能存贮一个中文汉字?为什么?

答:是能够定义成为一个中文的,因为 java中以 unicode 编码,一个char 占16 个字节,所

以放一个中文是没问题的

29、GC是什么? 为什么要有 GC

答:GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,

忘记或者错误的内存回收会

导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域

从而达到自动回收内存的目的,

[java面试宝典]

篇7:java面试宝典

java面试宝典

String和StringBuffer的区别

JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据,这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。另外,String实现了equals方法,new String(“abc”).equals(newString(“abc”)的结果为true,而StringBuffer没有实现equals方法,所以,new StringBuffer(“abc”).equals(newStringBuffer(“abc”)的'结果为false。

数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性,

String有有length()这个方法。

final, finally, finalize的区别。

final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 内部类要访问局部变量,局部变量必须定义成final类型,例如,一段代码……

finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM不保证此方法总被调用。

error和exception有什么区别?

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。 exception表示一种设计或实现问题。也就是说,

篇8:程序员面试宝典

程序员面试宝典

对于即将成为程序员的应届生,首先需要考虑的是如何选择一个适合自己职业起步的公司,以及根据自己感兴趣的技术确立自己将来的职业方向,对于已经身为程序员的跳槽人员,则需要考虑继续走技术方向还是转型到管理、销售等方面。在求职面试过程中需要什么流程以及需要注意什么细节?

针对初级C/C++工程师职位

所谓的初级C/C++工程师,也就是刚刚踏入C/C++开发领域的初学者,或者说是有过很短经历的C/C++开发者。针对这个职位,下面将会介绍这个职位所需要掌握的知识体系。

面向对象的知识: C++是一个面向对象的开发语言,因此熟悉面向对象对学习C++很有必要。读者要了解:什么是对象、什么是类、什么是封装、什么是多态、什么是继承、什么是抽象类、什么是接口等。读者不但要了解概念,还需要知道这些概念是如何体现的。例如,类和对象有什么区别?类是如何封装的?

C/C++语法:如果读者已经有了开发经验,那对于学习C/C++语法来讲比较容易,

如果你有C++等面向对象语言的'开发经验,那么只需简单的翻看介绍C/C++的相关书籍。如果你是新手,那么就好好研究一本有关C/C++初级教程之类的书。学习了C/C++语法,加上面向对象的知识,相信读者可以写出来比较好的C/C++代码。如果再抽出时间熟悉一下C/C++编程规范,那么代码的水平就会比较正规了。

数据库知识:作为一名初级C++开发工程师,必须要清楚如何使用数据库进行一些简单的开发工作,这是一些应用软件开发的基础。

开发工具:读者都知道,开发工具可以帮助更好更快地开发,因此熟悉几种开发工具很有必要。目前C/C++的开发工具比较流行的有Turbo C和Visual C++ 6.0等。

掌握了以上的知识,另外再加上少许的开发经验,就可以称得上是一名基本合格的初级C/C++开发工程师。所有招聘公司对于初级程序员的要求并不高,但基础知识一定要扎实,如果你连开发工具都不会使用,那如何能迅速提高学习水平呢?

针对中、高级C/C++开发工程师职位

所谓的中、高级C/C++开发工程师,也就是有了几年的开发经验和实战经验的开发人员。针对这个职位,

篇9:小升初面试宝典

面试宝典一:这题并不难

孩子平时的成绩非常好,可是家长还是担心他(她)在面试时会怯场。不少家长都说,不怕考试,就怕面试,怕孩子发挥欠好。专家说,其实,孩子会怯场,主要是因为对于面试这种形式感到陌生,一陌生,不免就会紧张。所以,要让孩子在面试中发挥正常,首先要做的,就是了解面试的整个流程,熟悉了,也就不会那么害怕了。

就拿某重点中学来说,他们是让考生按照规定的时间进入考试区域,并由专门的老师领入到一间准备室进行面试准备。在准备室里,考生将会拿到本身即将要进行面试的题,考生在准备室里将有20分钟摆布的时间进行答题准备。在准备时间过后,考生就要进入面试环节了,整个面试过程约10分钟摆布。

这位老师说,别小看了准备室里的这20分钟,这对考生来说是十分关键的,当考生拿到面试题的那一刻开始就要争分夺秒地思考并准备如何答题。建议考生在得到试卷后要迅速浏览,寻找本身熟悉的标题问题,同时考生还需要给本身强烈的心理暗示――这张试卷不难,这样做可以缓解考生本身的心理压力与紧张情绪。

同样的,在考生从准备室走到面试考场的过程中,考生也不需要紧张,更不需要急匆匆地奔驰过去,考生正常步入考场就可以了,入考场后先向面试老师问声好,面试老师会让你坐在面试的座位上,然后会将一份与考生在准备室看过一样的试卷交到考生手上,考生这个时候就可以按照面试老师的提问进行口头答题了。

面试宝典二:稳中求胜才是关键

考生准备答题要懂得策略,不行鲁莽行事。一般来说考试标题问题的设置都是从易到难的,考生就按考题所给的挨次看下去就行了,考生不克不及看到标题问题陌生就不动脑筋而直接放弃看下面的标题问题,这种做法会导致最后考生什么标题问题都看过了,但什么标题问题都没有做出来,有限的时间就这么被浪费掉了。

面对第一道题就被卡住的现象,此时考生切记不要在一道题上耗费过多的时间,必然要注意准备时间的合理分配。同时考生还需要制止审题不清而导致的失分,不少考生在看到一些标题问题后觉得以前做过类似的标题问题,因此就想当然地答题,但事实上,标题问题中所给的条件稍微一变,答题的方法也随着改变了,此时考生的丢分原因就是没看清标题问题或是漏看标题问题中的条件。

在该中学的面试过程中,考生在准备室时,发到考生手中的试卷上是不允许写字的,但考生可以拿到一张草稿纸,考生必然要合理利用草稿纸。建议考生可以将草稿纸一折为二,一边记录简略的答题过程和思路,一边用于打草稿,最后在草稿纸上把得出的答案用醒目的标志圈出来,提醒本身。虽然准备时间未几,考生不需要像正规笔试那样答题,但建议考生还是要将答题的重点和本身的思路进行一些记录。

面试宝典三:不轻言放弃

试的标题问题一般都不会是小学课本上的标题问题,但面试考核的知识点必然不会超出考生现有的知识结构,所以考生没有须要花大量精力提前学初中的知识。面试主要考查学生的综合能力,所以面试的标题问题不会用偏题或是难题来为难考生。目前家长可以与考生小学的各科老师沟通一下,了解一下考生在各学科中的单薄环节是什么,针对考生的单薄环节督促考生进行考前的复习。

从去历年面试的过程和结果可以发现,有不少原本不错的学生,因为紧张或是不善表达,在面试时的体现不敷抱负,因此,面试前让考生熟悉一下考试环境还是有须要的。在参加面试的前一天,考生没关系可以到面试的学校参观一下,了解哪里是准备室,哪里是本身的考场,考生是小学结业生,这对缓解考生的紧张情绪是有资助的。

面试时老师提的问题一般就是试卷上问的问题,如果考生已经准备好,那么考生可以从容答题,回答老师的提问时考生要口齿清楚、响亮地说出本身的答案,如果考生在老师提问后还没有准备好要如何作答,那么此时考生可以跟面试老师说“请让我再思考一下”,考生要为本身多争取思考的时间和答题的机会,不克不及被紧张的情绪所干扰而放弃回答。当你回答不出时,有时老师会按照标题问题的难易程度给考生适当的提醒,考生可以按照老师提供的思路思考问题后再进行答题。

值得一说的是数学题,有的考生会认为没有算出标题问题的最后答案就不算是答对标题问题,往往就会放弃答题,其实数学标题问题更加注重的是解题方法,所以考生的解题思路和解题方法也是得分的关键,建议考生在回答老师的提问时,要做到有问必答,并且要多答,面试的几分钟里考生要把本身的聪明才智充分表现出来,展现出本身最好的一面。

这就是我们为大家分享的面试宝典三部曲,希望对大家有资助,并祝大家顺利进入抱负的重点中学!

[小升初面试必备宝典]

篇10:程序员面试宝典

作 者:欧立奇,刘洋,段韬编

出 版 社:电子工业出版社 时 间:-11-1

原 价:39.80元

当当网最低价格:29.90元

卓越网最低价格:元

去当当网免费阅读,购买本书

程序员面试宝典(第二版) 欧立奇,刘洋,段韬编内容简介:

本书是《程序员面试宝典》的第二版,在保留第一版的数据结构、面向对象、程序设计等主干的基础上,使用各大IT公司及相关企业-的最新面试题替换和补充原内容,以反映自第一版以来近2年的时间所发生的变化。

本书取材于各大公司面试真题(笔试、口试、电话面试、英语面试,以及逻辑测试和智商测试),详细分析了应聘程序员(含网络、测试等)职位的常见考点。本书不仅对传统的C系语言考点做了详尽解说,还根据外企出题最新特点,新增加了对友元、Static、图形/音频、树、栈、ERP等问题的深入讲解。最后本书着力讲述了如何进行英语面试和电话面试,并对求职中签约、毁约的注意事项及群体面试进行了解析。本书的面试题除了有详细解析和回答外,对相关知识点还有扩展说明。希望真正做到由点成线,举一反三,对读者从求职就业到提升计算机专业知识都有显著帮助。

本书适合计算机相关专业应届毕业生阅读,也适合作为正在应聘软件行业的相关就业人员和计算机爱好者的参考书。

当当网用户妮妮90:

感觉书的质量不是很好,小的印刷错误也不少不过书的内容还是不错的

当当网用户玛莉梦菲:

不知道是配送问题,还是别的,新书上都有扎的洞了,质量太不行了

当当网用户落英缓缓:

不过这本书定位挺高的,面试题很丰富!

这篇文章希望能解决程序员面试宝典(第二版)写得好不好,读者读后感怎么样,网上哪里有卖,最低价格是多少钱,网上免费阅读地址,值不值得买等问题。

[程序员面试宝典]

篇11:外企面试宝典

回避硬伤的三项注意事项 当面试进入一定阶段,有的企业根据需要,可能会加上英文面试,能到这个阶段,也预示着你正向梦想的职位最后冲刺,这轮面试的分量可想而知,所以你应该确保在面试中发挥最佳状态.毕业生求职攻克交流障碍,帮助自己回避硬伤的注意事项如下:

1.回答语速切莫过快

英文面试的第一目的是让国外主管了解你,甚至对你感兴趣,最重要的是展示你的综合素质,绝非单单的语言能力,所以应该首先力求有条不紊、表达清晰.剑桥大学的一项调查显示,语速快一般体现具备两种不同特质的人,一种是思维和语言反应能力强且协调的人,一种是处事急躁的人.语速过快容易给人不自信、不稳重的错觉.所以最好的语速是中速平和,既让人听懂,又给自己以思考的时间.

2.自由讨论应当直白

在英语的口语交谈中,不必太拘泥于语法,大胆表达清楚自己的意思即可.用简单直白的语言表现最具魅力的自我,才是英文面试的至高境界.很多人恨不得在面试中用大气磅礴的英文演讲征服面试官,习惯于堆砌华丽的词藻,其实又犯了舍本逐末的错误.

3.电话面试充分准备

如果采用电话面试,而且你提前知道了电话面试的时间,则可以在面试时把简历、cover letter放在你旁边的桌子上,直接运用里面的句子回答问题.一些基本的问题,你可以事先准备好答案.

(责任编辑:京都人才网-小杨)

篇12:面试自我介绍宝典

面试中一般都会要求考生先做简单的自我介绍,自我介绍的时间一般为2-3分钟左右。自我介绍是很好的表现机会,应把握以下几个要点:首先,要突出个人的优点和特长,并要有相当的可信度。特别是具有实际管理经验的要突出自己在管理方面的优势,最好是通过自己做过什么项目这样的方式来验证一下;其次,要展示个性,使个人形象鲜明,可以适当引用别人的言论,如老师、朋友等的评论来支持自己的描述;第三,不可夸张,坚持以事实说话,少用虚词、感叹词之类;最后,要符合常规,介绍的内容和层次应合理、有序地展开。最后,要符合逻辑,介绍时应层次分明、重点突出,使自己的优势很自然地逐步显露,不要一上来就急于罗列自己的优点。

问题一:“请你简单自我介绍一下”

思路:

1、这是面试的必考题目。

2、介绍内容要与个人简历相一致。

3、表述方式上尽量口语化。

4、要切中要害,不谈无关、无用的内容。

5、条理要清晰,层次要分明。

6、事先最好以文字的形式写好背熟。

问题二:“您在前一家公司的离职原因是什么?”

思路:

1、最重要的是:应聘者要使找招聘单位相信,应聘者在过往的单位的“离职原因”在此家招聘单位里不存在。

2、避免把“离职原因”说得太详细、太具体。

3、不能掺杂主观的负面感受,如“太幸苦”、“人际关系复杂”、“管理太混乱”、“公司不重视人才”、“公司排斥我们某某的员工”等。

4、但也不能躲闪、回避,如“想换换环境”、“个人原因”等。

5、不能涉及自己负面的人格特征,如不诚实、懒惰、缺乏责任感、不随和等。

6、尽量使解释的理由为应聘者个人形象添彩。

7、如“我离职是因为这家公司倒闭。我在公司工作了三年多,有较深的感情。从去年始,由于市场形势突变,公司的局面急转直下。到眼下这一步我觉得很遗憾,但还要面对显示,重新寻找能发挥我能力的舞台。”

问题三:“谈谈你的家庭情况”

思路

1、况对于了解应聘者的性格、观念、心态等有一定的作用,这是招聘单位问该问题的主要原因。

2、简单地罗列家庭人口。

3、宜强调温馨和睦的家庭氛围。

4、宜强调父母对自己教育的重视。

5、宜强调各位家庭成员的良好状况。

6、宜强调家庭成员对自己工作的支持。

7、宜强调自己对家庭的责任感。

问题四:“我们为什么要录用你?”

思路:

1、应聘者最好站在招聘单位的角度来回答。

2、招聘单位一般会录用这样的应聘者:基本符合条件、对这份共组感兴趣、有足够的信心。

3、如“我符合贵公司的招聘条件,凭我目前掌握的技能、高度的责任感和良好的饿适应能力及学习能力,完全能胜任这份工作。我十分希望能为贵 公司服务,如果贵公司给我这个机会,我一定能成为贵公司的栋梁!”

相关专题 宝典android