2016最新Java面试题详细版
(1)下列各题ABCD四个选顼中只有一个选项是正确的请将正确选项填写在答题纸上
(1)下列关于栈的描述中错误的是( )
A. 栈是先进后出的线性表
B 栈只能顺序存储
C 栈具有记忆作用
D 对栈的插入弓删除操作中不需要改变栈底指针
正确答案 B
分析 栈是链式存储的
(2)对于长度为n的线性表在最坏情况下下列各排序法所对应的比较次数中正确的是( )
A 冒泡排序为n/2
B 冒泡排序为n
C 快速排序为n
D 快速排序为n(n-l)/2
正确答案 D
分析
想想快速排序每次都会选取线性表的轴值随后以此轴值划分为两个子线性表再分别进行快排在最坏情况下也就是说每次选出的线性表轴值完全不能将这个线性表划分为两个子线性表。那么此时快速排序退化为冒泡排序了。
那么第一趟排序时轴值线性表的中间位置被选出这个值绝对是这个线性表中最大的不然也不能是最坏情况其他值都比他小那么线性表现在分为完全不对等的
两段一段是0,另一段是n - 1一段是这个值一段是其他值。同样第二趟排序在刚才剩下的值中选中间值剩余值中最大的那个又分为不对等两段依次递推。也就
是说每次都比较了N - 1个元素轴值选出后都与它比较大小那么肯定是比较了n - 1
次如第一次先挑了个轴值然后剩下n - 1比较,n代表当前子线性表中元素个数由此最白痴的数列问题出现了如下
1 + 2 + 3 + .......... + n - 2 + n - 1 = n(n - 1) / 2
还有一种投机取巧的方法在最垃圾情况下既然快排变为冒泡那由时间复杂度知其必为o(n ^ 2)的复杂度答案中ABC都是线性时间复杂显然错误
(3)下列对于线性链表的描述中正确的是( )
A 存储空间间不一定是连续且各元素的存储顺序是任意的
B 存储空间不一定是连续且前件元素一定存储在后件元素的前面
C 存储定间必须连续且前件元素一定存储在后件元素的前面
D 存储空间必须连续且各元素的存储顺序是任意的
答案是A, 分析 链接存储并不要求存储空间连续,存储位置也不用有序
(4)为了使模块爆可能独立要求( )
A 模块的内聚程度要尽量高且各模块间的耦合程度要尽量强
B 模块的内聚程度要尽量高且各模块间的耦合程度要尽量弱
C 模块的内聚程度要尽量低且各模块间的耦合程度要尽量弱
D 模块的内聚程度要尽量低且各模块间的耦合程度要尽量强
答案B
分析高内聚低耦合。
5)下列叙述中正确的是( )
A Java语言的标识符是区分大小写的
B 源文件名与public类名可以不相同
C 源文件扩展名为.jar
D 源文件中public类的数目不限
答案A
6)下列属于合法的Java标识符是( )
A _cat
B 5books
C +static
D -3.14159
答案A
7) 在Java中表示换行符的转义字符是( )
A \n
B \f
C ‘n’
D \dd
答案A
( 8)扯Java中所有类的根类是( )
A. java.lang.Object
Bjava.lang.Class
Cjava.applet.Applet
Djava.awt.Frame
答案A
(9)在Java+中用Package语句说明一个包时该包的层次结构必须是( )
A 与文件的结构相同
B 与文件目录的层次相同
C 与文件类型相同
D 与文件大小相同
答案A
(10)在读字符文件Employee.dat时使用该文件作为参数的类是( )。
A BufferReader
B DatalnputStream
C DataOutoutStream
D FileInputStream
答案D
(11)在Java中能实现多重继承效果的方式是( )。
A 内部类
B 适配器
C 接口
D 同步
答案C
(12) char类型的取值范围是( )。
A 2-727-1
B 0216-1 C -215215—1
D 028-1
答案A
(13)下列方法中可以用来创建一个新线程的是( )。
A 实现java.lang.Runnable接口并重写start0方法
B 实现java.iang.Runnable接口并重写run0方法
C 继承java.lang.Thread类并重写run0方法
D 继承java.lang.Thread类并重写start0方法
答案C
(14)下列关于线程优先级的说法中正确的是( )。
A.线程的优先级是不能改变的
B线程的优先级是在创建线程时设置的
C在创建线程后的任何时候都可以设置
D. B和C
答案C
(15)下列代码中将引起一个编译错误的行是( )。
1) public class Test{
2) int m, n;
3) public Test(){}
4) public Test(int a){ m=a;)
5) public static void main(String args0){
6) Test t1, t2;
7) int j, k;
8) j=0; k=0;
9) t1 = new Test();
10) t2 = new Test(jk);
11) }
12)}
A第3行
B第5行
C第6行
D第10行
答案D
(16)阅读下列代码后
public class Person{
int arr[]=new int[10];
public static void main(String args[ ]){
System.out.println(arr[l]);
}
)
正确的说法是( )。
A 编译时将产生错误
B 编译时正确运行时将产生错误
C 输出零
D 输出空
答案A
(17) AIDL支持以下哪种数据类型l)string 2)list 3)map 4)All native java datatype( ){
A12和3
B4
C.以上所有
D都不支持
答案C
分析
AIDL 服务只支持有限的数据类型如果用AIDL服务传递一些复杂的数据就需要做更一步
处理,AIDL 服务支持的数据类型如下:
1. Java 的原生类型
2. String 和CharSequence
3. List 和 Map ,List和Map 对象的元素必须是AIDL支持的数据类型
以上三种类型都不需要导入(import)
4. AIDL 自动生成的接口
需要导入(import)
5. 实现android.os.Parcelable 接口的类. 需要导入(import)。
二、多项选择题
下列各题A、B.、C.、D四个选项中有一个或多个选项是正确的
(l)下列说法正确的有( )。
A. 环境变量可在编译source code时指定
B在编译程序时所能指定的环境变盛不包括class path
Cjavac -次可同时编译数个Java源文件
D. javac.exe能指定编译结果要置于哪个目录directory
答案BCD
(2)不能用来修饰interface的有( )
A. private B.public C.protected D.static
答案ACD
(3)下列说法错误的有( )
A.在类方法中可用this来调用本类的类方法
B。在类方法中调用本类的类方法时可直接调用
C在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
答案ACD
请将正确选项填写在答题纸上
(4)下列说法错误的有( )
A. Java面向对象语言容许单独的过程与函数存在
B Java面向对象语言容许单独的方法存在
C Java语亩中的方法属于类中的成员(member)
D. Java语言中的方法必定隶属于某…类对象调用方法与过程或函数相同
答案ABC
(5)下列说法错误的有( )。
A.能被java.exe成功运行的java class文件必须有main()方法
BJ2SDK就是Java API
C. Appletviewer.exe可利用jar选项运行Jar文件
D.能被Appletviewer成功运行的java class文件必须有main()方法
答案BCD
三、判断题
请将每空的正确答案写在答题纸上答在试卷上不得分。
(1) Java程序中的起始类名称必须与存放该类的文件名相同。对
(2) Unicode是用16位来表示一个字的。对
(3) 原生类中的数据类型均可任意转换。对
三、填空题
请将每空的正确答案写在答题纸上【l】至【25】序号的横线上答在试卷上不得分。
(l)某二叉树中度为2的结点有18个则该二叉树中有【1】 19 个叶子结点。 二叉树
的终端结点叶子结点数等于双分支结点数加1。
(2)在面向对象方法中类的实例称为【2】 对象
(3)诊断和改正程序中错误的工作通常称为【3】 Debug
(4)在关系数据库中把数据表示成二维表每一个二维表称为【4】 关系
(5)Java 源文件中最多只能有一个【5】 public 类 其他类的个数不限。
(6)线程在生命周期中要经历5中状态分别是新建状态、可运行状态、运行状态。【6】 暂
停 状态和终止状态。
(7)FileInputStream 是字节流BufferedWriter是字符流 ObjectOutputStream是 【7】
对象序列化流
(8)当使用Thread t = new Thread(r)创建一个线程时表达式r instance of Thread 的值为【8】
false 。 r instanceOf Runnable
1.抽象类和接口的区别?
抽象类
1抽象方法只有行为的概念没有具体的行为实现。使用abstract
关键字修饰没有方法体。子类必须重写这些抽象方法。
2包含抽象方法的类一定是抽象类。
3抽象类只能被继承一个类只能继承一个抽象类。
接口
1全部的方法都是抽象方法属型都是常量
2不能实例化可以定义变量。
3接口变量可以引用具体实现类的实例
4接口只能被实现一个具体类实现接口必须实现全部的抽象方法
5接口之间可以多实现
6一个具体类可以实现多个接口实现多继承现象 2列举你所知道的线程同步的方法
1wait():让线程等待。将线程存储到一个线程池中。
2notify()唤醒被等待的线程。通常都唤醒线程池中的第一个。让被
唤醒的线程处于临时阻塞状态。
3notifyAll(): 唤�