比較好的一份面试题
1.Java中Short数据类型的长度是( )bits
A.2 B.8 C.16 D.32
2.下列代码中,哪个选项相应代码不会产生错误 ( )
A.String A = “hello”;
String B = “world”;
String C = A+B;
B.String A = “hello world”;
String B = “world”;
String C = A-B;
C.String A = “hello world;”
String B = A.toUpperCase();
String C = A+B[3];
D.String A = “abc”;
String B = new String(“def”);
String C = A*B;
3.下面选项中哪个不是java的原始类型(primitive type) ( )
A.int B.Boolean C.short D.float
4.main方法的返回类型是 ( )
A.void B.int C.Boolean D.float
5.关于垃圾收集的哪些叙述是对的 ( )
A.程序开发人员必须自己创建一个线程进行内存释放的工作。
B.垃圾收集同意程序开发人员明白指定并马上释放该内存
C.垃圾收集将检查并释放不再使用的内存
D.垃圾收集可以在期望的时间释放被java对象使用的内存
6.下面代码段。在内存中创建了几个对象 ( )
String A=“hi”; String B=“java”; String C = new String(A+B)
A.4 B.5 C.6 D.7
7.方法resume()负责恢复哪些线程的运行 ( )
A.通过调用stop()方法而停止的线程
B.通过调用sleep()方法而停止执行的线程
C.通过调用wait()方法而停止执行的线程
D.通过调用suspend()方法而停止执行的线程
8.以下的哪些答案能够正确表示一个十六进制数字10 ( )
A.0xA B.0x16 C.0A D.016
9.有关线程的哪些叙述是对的 ( )
A.一旦一个线程被创建,它就马上開始执行
B.使用start()方法能够使一个线程成为可执行的,可是它不一定马上開始执行
C.当一个线程由于抢先机制而停止执行。它被放在可执行队列的前面
D.一个线程可能由于不同的原因停止并进入挂起状态
10.例如以下代码:
1)
2) { success = connect();
3) if (success==-1) {
4) throw new TimedOutException();
5) }
6) }
若TimedOutExcetion并不是RuntimException的子类,第一行代码method方法
签名该选用下面哪个选项 ( )
A.public void method()
B.public void method() throws Exception
C.public void method() throw TimedOutException
D.public throw TimedOutException void method()
11.以下哪行代码会产生编译错误 ( )
1) public void modify() {
2) int i, j, k;
3) i = 100;
4) while ( i > 0 ) {
5} j = i * 2;
6) System.out.println (" The value of j is " + j );
7) k = k + 1;
8) i--;
9) }
10} }
A. 4 B. 6 C. 7 D. 没有错误
12.Android应用中对一些资源以及状态的操作保存。最好是保存在生命周期的哪个函数中
进行 ( )
A.onPause() B.onCreate() C.onResume() D.onStart()
13.Android应用中下列属于Intent的作用的是 ( )
A.实现应用程序间的数据共享
B.是一段长的生命周期,没实用户界面的程序。能够保持应用在后台执行,而不会由于
切换页面而消失
C.能够实现界面间的切换,能够包括动作和动作数据,连接四大组件的纽带
D.处理一个应用程序总体性的工作
14.我们都知道Hanlder是线程与Activity通信的桥梁,假设线程处理不当。你的机器就会
变得越慢,那么线程销毁的方法是 ( )
A.onDestroy() B.onClear() C.onFinish() D.onStop()
15.以下关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是 ( )
A. DVM指dalivk的虚拟机.每个Android应用程序都在它自己的进程中执行,不一定
拥有一个独立的Dalvik虚拟机实例.而每个DVM都是在Linux中的一个进程,所以说可
以觉得是同一个概念
B. DVM指dalivk的虚拟机.每个Android应用程序都在它自己的进程中执行,不一定
拥有一个独立的Dalvik虚拟机实例.而每个DVM不一定都是在Linux中的一个进程,
所以说不是一个概念
C. DVM指dalivk的虚拟机.每个Android应用程序都在它自己的进程中执行,都拥有
一个独立的Dalvik虚拟机实例.而每个DVM不一定都是在Linux中的一个进程,所以说
不是一个概念
D. DVM指dalivk的虚拟机.每个Android应用程序都在它自己的进程中执行,都拥有
一个独立的 Dalvik虚拟机实例.而每个DVM都是在Linux中的一个进程,所以说能够认
为是同一个概念
16.Android项目project以下的assets文件夹的作用是什么 ( )
A.放置应用到的图片资源。
B.主要放置多媒体等数据文件
C.放置字符串,颜色,数组等常量数据
D.放置一些与UI对应的布局文件,都是xml文件
17.以下在AndroidManifest.xml文件里注冊BroadcastReceiver方式正确的 ( )
A. <receiver android:name="NewBroad">
<intent-filter>
<action android:name="android.provider.action.NewBroad"/>
</intent-filter>
</receiver>
B.<receiver android:name="NewBroad">
<intent-filter>
<android:name="android.provider.action.NewBroad"/>
</intent-filter>
</receiver>
C.<receiver android:name="NewBroad">
<action android:name="android.provider.action.NewBroad"/>
</receiver>
D.<intent-filter>
<receiver android:name="NewBroad">
<action android:name="android.provider.action.NewBroad"/>
</receiver>
</intent-filter>
18.关于Android进程,下面描写叙述错误的是 ( )
A.当一个程序第一次启动的时候,Android会启动一个LINUX进程和一个主线程。
默
认的情况下。全部该程序的组件都将在该进程和线程中执行
B.前台进程是用户当前正在使用的进程
C.通过startService()启动的进程尽管对用户不是直接可见的,可是他们运行了用户非
常关注的任务,所以不会被系统进行回收
D.执行着一个对用户不可见的activity(调用过 onStop() 方法).这些进程对用户体验
没有直接的影响,能够在服务进程、可见进程、前台进程须要内存的时候回收
19.下面哪个不是Android的五种默认布局 ( )
A.FrameLayout B.LinearLayout
C.TableLayout D.BorderLayout
20.下面JSON数据可以被正确解析的是 ( )
A.[{“1”:1;“abc”:123},{1:1}]
B.[{“2”:222,”3”:true,”4”:”789”}]
C.{[“age”:”15”, gender:”male”]}
D.{“age”:15; gender:male}
二、推断题:
1.Java的Integer是有符号的数据类型 ( )
2.equals()方法推断的是对象的引用(类似C语言的句柄) ( )
3.代码中明白调用了System.gc()方法后,JVM在运行过程中会马上进行垃圾回收,进行内
存垃圾清理 ( )
4.对原始数据类型比如boolean,byte的变量的声明不会为该变量分配内存空间 ( )
5.Android应用中ContenValues的key必须是String,value必须是原始类型 ( )
6.Android的res/raw文件是原封不动的存储到设备上不会转换为二进制的格式 ( )
7.Android应用的四大组件各自是Activity、Service、ContentProvider 和
BroadcastReciver ( )
8.Android的 nine patch 图片中四条边都是可拉伸区域 ( )
9.Android和JAVA一样。其代码无法调用底层的C/C++编写的代码库,全部内容必须通
过虚拟机编译运行 ( )
10.Android的系统架构中分为AP和BP两类处理器。分别进行Android应用的后台应用
处理和前台界面应用处理 ( )
三、问答题:
1.请描写叙述JVM中主要的内存结构模型,以及对应的作用
2.请用Java代码编写一个冒泡排序法的method
3.请用Java代码编写单例模式(Singleton)的实现代码
4.请描写叙述Android的底层架构情况及其作用
5.请描写叙述下面行为情况下Activity的生命周期情况
1) 父Activity A 启动子Activity B
2) 执行中Activity的横竖屏切换
3) 用户按下Home键
6.Fragment的主要作用是什么,有哪些优点?
7.现有一Android App想实现10秒的progressBar的处理,请依据例如以下代码内容进行相
应代码段补齐。以完毕所需功能。
public class ProgressBarStu extends Activity {
private ProgressBar progressBar = null;
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progressbar);
//请填写此处内容
}
}
四、附加题:
1.Android代码中。广播注冊有几种方法,有什么差别。对应优先级情况怎样(请试写相
应代码片段)。
2.简要描写叙述Android ListView 中getViewType的作用和使用场景。
3.请描写叙述一下android App 扫描二维码后实现用户登录并跳转到特定页面的实现过程(可
以使用时序图或流程图,并描写叙述详细实现方法)。
4.请描写叙述一下HTTP协议中关于server返回状态码的分类和表示的含义