一、单选题
1、JDK安装进程中,需设置的环境变量为(D)
A、classpath B、path C、path和setpath D、A和B都要设置
2、一个部件在水平方向会改变大小,但垂直方向不变,则放到什么位置?B
A、BorderLayout布局的North或South位置B、FlowLayout布局的第一个部件
C、BorderLayout布局的East或West位置D、BorderLayout布局的Center位置
3、以下哪个是Java应用程序main方法的有效定义? C
A、public static void main(); B、public static void main( String args );
C、public static void main( String args[] ); D、public static boolean main( String a[] );
4、下列哪个不是Java的保留字(D)。
A、float B、class C、extends D、virtual
5、下列符号中不能作为Java标识符的是(D )。
A、abc B、$str1 C、_pore D、45six
6、当x=1、y=3时,表达式x%=y的运算结束后x的值为(D)
A、2 B、3 C、0 D、1
7、现有一变量声明为boolean aa;下面赋值语句中正确的是( D )。
A、aa=0 B、aa=True C、aa="true" D、aa=false
8、可以在for循环初始化部分声明一个变量,其作用域是(B)
A、for循环体所在的代码块B、整个for循环结构
C、for循环后的所有部分D、除for循环体外的部分
9、在switch(表达式)语句中,表达式的类型不能为(C)。
A、byte B、char C、long D、int
10、下列哪一个是表达式3+2+”aa”+3的值。(B)
A、”32aa3” B、”5aa3” C、”32aa” D、”aa3”
11、下列程序执行之后,输出的结果为。(A)
public class Test{
public static void main(String[] args){
double y = 10.5;
String s = “abc”;
s += y;
System.out.println(s);
}
}
A、abc10.5 B、10.5abc C、abc D、10.5
12、方法methodA定义如下:
returnType methodA(byte x,double y){
return (short)x/y*2;
}
则返回值returnType为(B)。
A、byte B、double C、short D、int
13、在Java语言中的哪一个包是编译器自动导入的?(C)
java.swing B、java.awt C、java.lang D、java.applet
14、类Cycle的main()方法为:
public static void main(String args[]){
System.out.println(args[0]);
}
则运行时如果命令行语句为Java Cycle one two three,则输出结果为(B)。
A、Cycle B、one C、two D、three
15、某类Example的main()方法参数为args,当输入数据Java Example cat时,args[0]的值为(A)。
A、cat B、Java C、example D、null
16、类定义如下
class Foo{
public static void main(String args[]){
String s;
System.out.println("s="+s);
}
}
则下列结论正确的是(C)。
A、有输出结果,且为空 B、没有输出结果
C、编译错误 D、有输出结果,且不为空
17、java中,对于构造方法,下列叙述中不正确的是。(C)
A、构造方法是类的一种特殊方法,它的方法名必须与类名相同。
B、构造方法的主要作用是完成对类的对象的初始化工作。
C、构造方法的返回类型只能是void型。(没有返回类型说明)
D、一般在创建新对象时,系统会自动调用构造方法。
18、声明公用的abstract方法的正确格式是(C)。
抽象类不能创建对象,只能被继承
A、public abstract void add() {} B、public abstract add();
C、public abstract void add(); D、public virtual add();
19、下列程序结果正确的是(A)。
public class Test {
public static void main (String args []) {
Ad a1=new Ad();
System.out.println(a1.add(1));
Ad a2=new Ad();
System.out.println(a2.add(2));
}
}
class Ad{
static int total = 10;
public int add(int i){
total=total+i;
return total;
}
}
A、11,12 B、11,13 C、11,11 D、12,12
20、哪个方法是实现Runnable接口所需的?(B)
A、wait() B、run() C、stop() D、resume()
21、在java中,以下叙述不正确的是(B)
A、构造方法名与类名相同。B、构造方法不是用来完成初始化的。
C、构造方法只能由new操作调用,而不能被用户直接调用。
D、构造方法没有返回类型。
22、下列哪一项不是File类的功能?(B)
A、新建文件B、新建目录C、删除文件D、修改文件
23、以下类DataIutputStream的构造方法正确的是(C)。
A、new DataInputStream(“in.txt”);
B、new DataInputStream(new file(“in.txt”));
C、new DataInputStream(new FileInputStream(“in.txt”));
D、new DataInputStream(new FileWriter(“in.txt”));
24、下面哪一个是Thread类中的静态方法( D )。
Thread类实现了runnerable接口,runnerable接口定义了run方法
sleep()是Thread类里面的一个静态方法,其全称为:public static void sleep (long millis) thorows InterruptedException
yield方法也是一个Thread类的静态方法.作用是,让出CPU,给其他线程执行的机会
A、start() B、stop() C、run() D、sleep(long m)
25、以下哪个最准确描述synchronized关键字?(B)
A、允许两线程并行运行,而且互相通信;
B、保证在某时刻只有一个线程可访问方法或对象;
C、保证允许两个或更多处理同时开始和结束;
D、保证两个或更多线程同时开始和结束。
26、网格布局把容器区域分成若干个网格,每个网格可以放置一个组件,它对应的类是(A)
A、GridLayout B、FlowLayout C、CardLayout D、BorderLayout
27、下列说法中,错误的一项是。(A)
A、Applet(init()方法开始)和Application一样,入口方法都是main()
B、Applet和Application不一样,入口方法不是main(),其运行要复杂得多
C、Applet必须嵌入Web浏览器或者Appletviewer中运行
D、Applet可以为Web页面提供动画效果
28、定义Java Applet程序时,必须有的import语句是。(C)
A、import java.awt.event; B、import java.util.*;
C、import java.applet.Applet; D、import java.lang.*;
29、下面说法哪个是错误的?B
A、Applet可以访问本地文件B、对static方法的调用不需要类实例
C、UDP通信需要使用DatagramSocket类实现D、127.0.0.1地址代表本机
30、下列说法错误是:A
A、java语言里的线程是没有优先级的B、String类在java.lang包中
C、java语言支持类的序列化D、能序列化的类必须实现java.io.Serializable接口
二、程序填空
1、以下程序实现在屏幕上输出字符串“this is a java programme!”,请把程序填写完整
public class A
{
public static void main(String args[])
{
System.out.println(“this is a java programme!”);
}
}
2、以下方法实现求10!,并将结果保存在变量s中输出,完成程序
public void print( )
{
int s=1,i=1;
for(i=1;i<=10;i++)
{
s=s*i;
}
System.out.println("10!="+s);
}
3、以下方法实现求1+2+3……+100,并将结果保存在变量m中输出,完成程序
public void print( )
{
int s=0;
for(int i=1;i<=100;i++)
{
s=s+i;
}
System.out.println("1+2+3……+100="+s);
}
4、在如下定义的Applet容器中添加按钮组件,请填空
import java.awt.*;
import java.applet.Applet;
public class Examp extends Applet
{
public void init( )
{
button1=new Button("Click here");
add(button1);
}
}
5、定义接口N1,然后类R1实现接口N1,完成下面的程序
public interfaceN1
{
int year=2006;
int year( );
}
public class R1implements N1
{
//实现year方法
public int year( )
{
return year;
}
public void output( ){ }
}
三、程序设计题
1、编写一个Applet应用程序,输出当前系统日期信息。要求编写出完整的HTML文件。
Clock.html
时间显示Clock.java
import java.awt.*;
import java.applet.*;
import java.util.*;
public class clock extends Applet
{
public void paint(Graphics g){
String today;
Date dat=new Date();
today=dat.toLocaleString();
g.drawString(today, 20, 32);
}
}
2、按如下要求编程(10分)【P137】
(1)创建矩形类(Rectangle),添加属性宽度(width),高度(height);添加方法计算矩形周长(getPerimeter),计算面积(getArea)。
(2)编程利用Rectangle类在屏幕输出一个矩形的周长和面积。
public class Rectangle{
int width,height;
public static int getPerimeter(int w,int h){
int l;
l=2*(w+h);
return l;
}
public static int getArea(int w,int h){
int a;
a=w*h;
return a;
}
public static void main(String args[])
{
int l,a;
l=getPerimeter(20,35);
a=getArea(20,35);
System.out.println("矩形的周长是:"+l+"cm");
System.out.println("矩形的面积是:"+a+"立方厘米");
}
}
3、编程输出下列形状的图形。
*****
*****
*****
*****
*****
这个是自己写的
public class Test{
public static void main(String args[ ]){
for(int i=0;i<7;i++){
for(int j=0;j<5;j++){
if(i==3)
System.out.println();
else
System.out.print("*");
}
System.out.println();
}
}
}
下面的老师给的答案:
public class Test{
public static void main(String args[ ]) {
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
for(int k=0;k<5;k++)
System.out.print('*');
System.out.println( );
}
System.out.println( );
}
}
}
四、简答题
1、什么是类?什么是对象?两者有何关系?
类:一组具有共同点的对象,将其共同点抽象出来就是类
对象:每个具体的事物叫对象,对象是由属性和方法组成,
类是java的核心和本质,类是对象属性和对象行为的抽象。Java程序中实现的每一个概念都必须封装到类里面
对象是类的一个实例
2、Error与Exception有什么区别?
Error类及其子类主要用来描述一些java运行时系统内部错误或资源枯竭导致的错误。普通的程序不能从这类错误里面恢复,这类错误出现的几率很小,不必捕获,是属于未检测的异常。
Exception类和他的子类,在编程中错误的处理主要是针对这类错误进行异常处理,如除数为零、数组下标越界等。Exception类是普通程序可以从中恢复的所有规范了的异常的父类。Exception类分为三个子类:IOException、RuntimeException和Non——RuntimeException。
3、什么是构造方法?它有何特点?
在Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的成员变量赋初值的专门功能:构造方法(constructor)构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:
1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。
3.每个类至少有一个构造方法(默认的)或多个构造方法.
4.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。
5.构造方法在创建对象时自动执行,一般不能显式地直接调用.
构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。
4、在java中,一个类被声明为final类型,表示什么意思?
Final类是不能被继承的类,不能在有子类。是最终的类。不能重载或覆盖任何方法。其代码安全性比较高。
5、是否可以继承String类,为什么?
不可以。String是final的,不能被继承。基本类型的类都是final类,无法被继承或修改,比如:Integer,Float,Boolean,Byte,Character,Long,Short等等。
6、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行,在return前还是后?
无论有没有异常发生,finally语句是一定要执行的部分。
Try块中的语句没有产生异常,先执行try中的所有语句,然后在执行finally中的语句。
Try块中语句产生异常,此异常在方法内捕获,java先执行try中语句,直至产生异常处,然后跳过try中语句,执行捕获此异常的
7、简述java语言的特点?
Java语言是一种跨平台的、适合于分布式计算机环境的面向对象的编程语言。它具有可移植、稳定、简单、高性能动态执行等特性。
8、char型变量中能不能存贮一个中文汉字?为什么?
不能
char 只占一个字节。
汉字通常是两个字节来表示,可以使用char数组来表示汉字。
例如
char a[5]="你";
9、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,wait与notify
10、简述Java程序的开发过程?
Java应用程序的运行经过编写、编译、运行三个步骤。
第1步,编写程序。使用记事本或其他软件编写程序的源代码,将源代码保存为文件filename.java文件。
第2步,编译程序。在MS-DOS命令窗口,将当前目录转换到Java源程序所在的保存目录;输入“javac filename.java”形式的命令进行程序编译。
第3步,执行程序。在同样的命令窗口中输入“java filename”形式的命令执行程序。
完成了程序的开发,查看相应t目录,其中应该具有两个文件,分别是XXXX.java和XXXX.class。
11、在一个循环中使用break和continue语句有什么不同的效果?
Break是结束整个循环语句的执行,continue只能再循环体中使用,只结束本次循环,不是终止整个循环的执行。
12、package语句与import语句分别作用是什么?
Package:定义类所属的包
import:一个java由若干类组成,“import说明”是为新定义的类指出要使用java系统已有的类,这些类部分是由java运行环境提供的,部分是用户开发的
13、接口和抽象类有何区别?
interface的抽象完全可以用abstract来定义.但是要想让继承的子类能实例化一个对象,你必须把abstract中的所有方法全部实现,否则子类还是abstract的
而interface不一样的地方就是你可以在它的implements中实现你自己所需要的那些方法,然后就可以实例化一个对象。
接口可以有很多个。抽象类不能创建任何对象,只是用来被其子类继承
14、什么是包?为何使用包?
Package为保留字,定义类所属的包,包在系统分析时对应于一个单位的部门、子系统。在实现时应对应类所属的子目录名。
15、简述Java环境变量的设置。
1.安装j2sdk以后,需要配置一下环境变量,在我的电脑->属性->高级->环境变量->用户变量或系统变量中添加以下环境变量(假定你的j2sdk安装在C:\Program Files\Java\jdk1.5.0_10 :
java_home=C:\Program Files\Java\jdk1.5.0_10
classpath=.;%java_home%\lib;%java_home%\lib\tools.jar (.;一定不能少,因为它代表当前路径)
path=%java_home%\bin;%java_home%\jre\bin;