现在的位置: 首页 > 综合 > 正文

比较好的一份面试题

2018年01月31日 ⁄ 综合 ⁄ 共 4551字 ⁄ 字号 评论关闭

一、单项选择题:

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项目工程下面的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协议中关于服务器返回状态码的分类和表示的含义

抱歉!评论已关闭.