min=x[i];
}
System.out.println(min);
B)5(求数组中的最小值为多少?
)
10、下面说法不正确的是(D)?
A)列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。
B)List接口是可以包含重复元素的有序集合。
C)Set接口是不包含重复元素的集合。
D)Map接口将键映射到值,键可以重复,但每个键最多只能映射一个值。
11、下列修饰符中与访问控制无关的是 ( D )
A.private B.public
C.protectedD.Final
12、void的含义:
( A )
A.方法没有返回值
13、return语句:
( C )
C.方法中可以有多句return
14、关于对象成员占用内存的说法哪个正确?
( B )
B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
15、下列说法哪个正确?
(C)
C.属性可以是简单变量,也可以是一个对象
16、下列说法哪个正确?
( A )
A、一个程序可以包含多个源文件
17、关于方法main()的说法哪个正确?
( C )
C.一个类中可以没有main()方法
18、构造函数何时被调用?
( A )
A、创建对象时
19、 抽象方法:
( C )
C、是没有方法体的方法
20、关于继承的说法正确的是:
( B )
B、子类将继承父类的非私有属性和方法。
21、关于构造函数的说法哪个正确?
(C )
C、构造函数与类同名
22、this和super:
(C)
C、不能用在main()方法中
23、覆盖与重载的关系是 ( A )
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中
24、关于接口哪个正确?
( A )
A、实现一个接口必须实现接口的所有方法
25、异常包含下列哪些内容?
( A )
A.程序执行过程中遇到的事先没有预料到的情况
26、对于已经被定义过可能抛出异常的语句,在编程时:
( A )
A、必须使用try/catch语句处理异常,或用throws将其抛出
27、 字符流与字节流的区别在于( D )
D.每次读写的字节数不同
28、下列流中哪个不属于字节流 ( D )
A.FileInputStream
B.BufferedInputStream
C.FilterInputStream
D.InputStreamReader
29、下列____D____是Java合法的标识符
A.staticB.5stuC.-3eD._atm
30、Java中main()方法的返回值是______D________
A.stringB.intC.charD.Void
31、以下关于JAVA程序的叙述中正确的是____D______。
D.JAVA程序中必须有一个主函数
32、下列语句序列执行后,k的值是(C)。
intj=8,k=15;
for(inti=2;i!
=j;i+=6){
k++;
}
C.16
33、下列语句序列执行后,i的值是(D)。
inti=0;
do{i+=3;}while(i<10);
D.12
34、下面关于JavaApplication程序结构特点描述中,错误的是(D)。
A.一个JavaApplication程序由一个或多个文件组成,每个文件中可以定义一个或多个类,每个类由若干个方法和变量组成。
B.Java程序中声明有public类时,则Java程序文件名必须与public类的类名相同,并区分大小写,扩展名为.java。
C.组成JavaApplication程序的多个类中,有且仅有一个主类。
D.一个.java文件中定义多个类时,允许其中声明多个public类。
35、下面哪些选项是正确的main方法说明?
(D)
D.publicstaticvoidmain(Stringargs[])
36、在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是(B)。
B.protected
37、下列关于抽象类的描述中,错误的是(B)。
A.抽象类是用修饰符abstract说明的B.抽象类是不可以定义对象的
C.抽象类是不可以有构造方法的D.抽象类通常要有它的子类
38、下面关于接口的描述中,错误的是(A)。
A.一个类只允许继承一个接口B.定义接口使用的关键字是interface
C.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现
D.接口实际上是由常量和抽象方法构成的特殊类
39、以下关于继承的叙述正确的是(A)。
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
40、在java中,()对象可以使用键/值的形式保存数据。
(C)
a)ArrayList
b)HashSet
c)HashMap
d)LinkedList
41、以下哪个不是Java的原始数据类型(B)
A、intB、BooleanC、floatD、char
42、以下有关构造方法的说法,正确的是:
(A)
A.一个类的构造方法可以有多个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其它方法调用。
D.构造方法可以和类同名,也可以和类名不同
43、以下有关构造方法的说法,正确的是:
(A)
A.一个类的构造方法可以有多个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其它方法调用。
D.构造方法可以和类同名,也可以和类名不同
44、给出下面代码,关于该程序以下哪个说法是正确的?
(C)
publicclassPerson{
staticintarr[]=newint[5];
publicstaticvoidmain(Stringa[])
{
System.out.println(arr[0]); }
}
A、编译时将产生错误B、编译时正确,运行时将产生错误
C、输出零D、输出空
45、下列哪一项不属于Swing的顶层容器?
(B)
A)JApplet
B)JTree
C)JDialog
D)JFrame
46、为了使包ch4在当前程序中可见,可以使用的语句是(A)。
A)importch4.*;
B)packagech4.*;
C)ch4import;
D)ch4package;
47、请问所有的异常类皆继承哪一个类?
(B)。
A)java.io.Exception
B)java.lang.Throwable
C)java.lang.Exception
D)java.lang.Error
48、当点击鼠标或者拖动鼠标时,触发的事件是下列的哪一个?
(D)
A)KeyEvent
B)ActionEvent
C)ItemEvent
D)MouseEvent
49、ArrayList是实现了List接口的类,现欲构造ArrayList类的一个实例,下述方法中正确的是(D)
A.ArrayListmyList=newObject();
B.ArrayListmyList=newList();
C.ListmyList=newList();
D.ListmyList=newArrayList();
50、设有如下程序代码,则表达式s1==s2和s1==s3的值分别是(B)
Stringsl="123";
Strings2="123";
Strings3=newString("123");
A.truetrueB.truefalseC.falsefalseD.falsetrue
51、当使用SomeThreadt=newSomeThread()创建一个线程时,下列叙述中正确的是(C)
A.SomeThread类是包含run()方法的任意java类
B.SomeThread类一定要实现Runnable接口
C.SomeThread类是Thread类的子类
D.SomeThread类是Thread类的子类并且要实现Runnable接口
52、Java中的抽象类Reader和Writer所处理的流是(D)
A.图像流B.对象流 C.字节流 D.字符流
53、以下布局管理器中按照加入控件的先后顺序,从左到右、从上到下,当一行装满时开始新的一行的布局管理器是(A)
A.FlowLayoutB.BorderLayoutC.GridLayoutD.CardLayout
54、如下的程序代码体现了Java的面向对象特征中的(C)
classClassA{
……
publicvoidaMethod(Strings){……}
publicvoidaMethod(inti){……}
publicvoidaMethod(inti,floatf){……}
}
A.封装B.继承C.重载D.重写
55、在下述Java语句中,错误的创建数组的方法是(D)
A.intintArray[];intArray=newint[5];
B.intintArray[]=newint[5];
C.int[]intArray={1,2,3,4,5};
D.intintArray[5]={1,2,3,4,5};
56、下列类定义中,不正确的是(C)。
A)classx{....}
B)classxextendsy{....}
C)staticclassximplementsy1,y2{....}
D)publicclassxextendsApplet{....}
57、下列方法定义中,正确的是(A)。
A)intx(){charch='a';return(int)ch;}
B)voidx(){...returntrue;}
C)intx(){...returntrue;}
D)intx(inta,b){returna+b;}
58、下面语句的功能是(A)。
RandomAccessFileraf2=newRandomAccessFile("1.txt","rw");
A)打开当前目录下的文件1.txt,既可以向文件写数据,也可以从文件读数据。
B)打开当前目录下的文件1.txt,但只能向文件写入数据,不能从文件读取数据。
C)打开当前目录下的文件1.txt,但不能向文件写入数据,只能从文件读取数据。
D)以上说法都不对。
59、下面程序段执行后b的值是(B)。
Integerinteg=newInteger(9);
booleanb=integinstanceofObject;
A)9B)trueC)1D)false
60、应用程序Test.java的源程序如下,在命令行键入:
javaTestaaabbc
回车后输出的结果是(A)。
publicclassTest{
publicstaticvoidmain(Stringargs[]){
intk1=args.length;
intk2=args[1].length();
System.out.print(k1+""+k2);
}
}
A)32B)12C)13D)33
2、简答题
1、怎么理解java的泛型?
答:
在JavaSE1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。
对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型是JavaSE1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
2、JAVA源文件中是否可以包括多个类,有什么限制
答:
一个java源文件中可以包含多个类,每个源文件中至多有一个public类,如果有的话,那么源文件的名字必须与之相同。
如果源文件中没有public类,则源文件用什么名字都可以,但最好还是具有特定的意义,免得自己都不记得里面写的是什么了。
3、请写出5种常见到的runtimeexception。
答:
NullPointerException:
当操作一个空引用时会出现此错误。
NumberFormatException:
数据格式转换出现问题时出现此异常。
ClassCastException:
强制类型转换类型不匹配时出现此异常。
ArrayIndexOutOfBoundsException:
数组下标越界,当使用一个不存
在的数组下标时出现此异常。
ArithmeticException:
数学运行错误时出现此异常
4、在java语言中int和Integer有什么区别
答:
int是基本数据类型,Integer是int的包装类,属于引用类型
5、多线程有几种实现方法,都是什么?
同步的方法有几种,都是什么?
解答:
多线程有两种实现方法:
继承Thread类或者实现Runnable接口。
实现同步也有两种方法:
一种是同步方法,另一种是同步代码块。
同步方法是在方法返回类型前面加上synchronized关键字
同步代码块是synchronized(这里写需要同步的对象){…}
6、面向对象的特征:
(1).抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面,一是过程抽象,二是数据抽象。
(2).继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
(3).封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
(4).多态性:
多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
7、类和对象的定义:
类和对象是面向对象方法的核心概念。
类(Class):
对某一类事物的描述,是抽象的、概念上的定义;
对象(Object):
实际存在的该类事物的个体,因而也称实例(Instance).
8、封装的定义和目的:
定义:
通过将类的成员变量声明为私有的(private),再提供一个或多个公有(public)方法对该成员变量的访问或修改,这种方式即称为封装。
目的:
(1)隐藏类的实现细节;
(2)让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;
(3)便于修改,增强代码的可维护性;
(4)可进行数据检查
9、Java程序设计中如何调用类的成员
(1)成员方法可以无条件直接调用本类的其他成员
(2)其他类中调用一个类的成员时,必须采用“对象.成员”的形式调用
10、String,StringBuffer的区别?
String类提供了数值不可改变的字符串,每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象, String覆盖了equals方法和hashCode方法
StringBuffer类提供的字符串可进行修改,每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象
11、abstract修饰符如何使用,使用了abstract修饰符有什么特点?
abstract修饰符可以修饰类和方法
abstract类为抽象类,是不能创建对象的
abstract方法为抽象方法,只有方法的声明,没有具体的实现
需要注意的是:
有抽象方法的类一定是抽象类
抽象类不一定有抽象方法
抽象类也有构造器,但不能创建对象实例
12、instanceof操作符的作用?
可以判断一个对象的类型是否是某一个类的类型或子类,也可以判断这个对象的类型是否是一个接口的实现类
13、接口中的成员有什么特点?
数据域必须是(publicstaticfinal修饰)公有静态常量
方法必须是(publicabstract修饰)公有抽象
没有构造方法
14、字符串的常用方法有哪些?
charAt方法:
可以返回指定位置的字符
substring方法:
可以截取子字符串
length方法:
返回字符串长度
indexOf方法:
查找子串的位置
lastIndexOf方法:
反向搜索字串的位置
replaceAll方法:
替换字符串
split方法:
分解字符串
toLowerCase,toUpperCase方法:
字符串大小写转换
15、在Java中,怎样创建一个线程?
1、定义类来实现Runnable接口
classTestThreadimplementsRunnable{
publicvoidrun(){…}
}
2、继承Thread类来实现
classTestThreadextendsThread{
TestThread(Stringname){
super(name);
start();
}
publicvoidrun(){…}
}
16、什么是组件对象?
什么是容器?
容器与其他类型的组件有何不同?
答:
组件是图形界面的基本元素,用户可以直接操作,java语言为每种组件都预定义类,程序通过它们或它们的子类创建各种组件对象。
容器是图形界面的复合元素,容器可以包含组件。
java语言也为每种容器预定义类,程序通过它们或它们的子类创建各种容器对象。
容器与其他组件的不同是:
为了能层次地构造复杂的图形界面,容器被当作特殊的组件,可以把容器放入另一个容器中,可以向容器中添加组件。
17、什么是事件?
什么是监听器?
如何进行事件注册?
答:
图形界面上的事件是指在某个组件上发生的用户操作。
对事件作监视的对象称为监视器,监视器提供响应事件的处理方法。
为了让监视器与事件对象关联起来,需要对事件对象作监视器注册,告诉系统事件对象的监视器。
以程序响应按钮事件为例,当用户点击用户界面中与button对应的按钮时,button对象就会产生一个ActionEvent类型的事件。
如果监视器对象是obj,对象的类是Obj,则类Obj必须实现AWT中的ActionListener接口,实现监视按钮事件睥actionPerformed方法。
buton对象必须用addActionListener方法注册它的监视器对象obj。
18、如何用套接字建立两个程序间的通信?
(1)用Socket类建立客户到服务器的套接字的对象:
Socket(Stringhost,intport)
(2)用ServerSocket建立接受客户套接字的服务器套接字对象:
ServerSocket(intport)客户端与服务器端的端口号相同
(3)客户端服务器对象调用方法accept()接受客户的套接字创建客户端套接字对象,服