资源描述
Java基础知识
一、 填空题(每题1分,共50分)
1. Java程序可以分为两种基本的类型,分别是_________________和_________________。
2. 如果一个类不显示地写上其继承的父类,则它的默认的直接父类是系统类_______________。
3. Java对内存的释放是采用____________________机制。
4. 接口的所有成员方法都具有________________和________________属性。
5. 设有一个Java应用程序,其源程序文件名为Test.java,则编译该源程序的命令是_________________________,运行该应用程序的命令为_________________________。
6. 如果线程类A需要继承类B,而类B不是线程类,则需要通过接口类Runnable构造线程类A,类A的具体定义为___________________________________________________。
7. Java系统提供了方法____________________来强制立即回收垃圾。
8. 运行以下语句后b的值是__________________。
String s1=“1234”; String s2=new String(“1234”); Boolean b=(s1 = = s2);
9. 通过Connection实例对象的_____________________方法可以创建出Statement的实例对象。
10. JAVA小应用程序一般是_____________的子类。
11. JAVA语言通过____________机制简化了程序的内存管理。
12. JAVA字符(char)采用的是___________字符集。
13. 面向对象的计算机语言一般应具有3个基本特性:____________、____________和______________。
14. JAVA语言中,捕获异常是通过________________语句结构来实现的。
15. 编写线程程序主要是构造线程类,而构造线程类的方式主要有以下两种:
(1)____________________________________________
(2)____________________________________________
16. 假设用JAVA语言为清华大学(网址为)编写了图像处理包image,那么按照SUN公司的建议,这个包的名称最好为_________________。
17. JAVA数据类型中,具体包括哪三种引用数据类型:___________、____________、______________。
18. JAVA程序以________为单位进行组织的。
19. 如果没有显式的定义类的构造方法,则系统会为该类定义一个默认的构造方法,这个默认的构造方法的作用是_____________________________________。
20. “System.gc( )”方法的作用是:__________________________________
21. 为增强程序的可读性,同一个类中的同名方法在重载时应当具有_______的功能。
22. 动态多态性将在_____________时被系统识别。
23. 语句“super.clear();”的作用是调用____类的clear()方法。
24. 当一个类的一个成员声明为“public”时,__________________________________能访问该成员。
25. 建立Java SDK开发环境,一般需要设置哪两个环境变量:_________和___________。
26. 按编译时是否检测来分,异常可以分为两大类:受检异常和非受检异常。其中非受检异常包括_______________________。
27. 假设用JAVA语言为浙江工商大学(网址为)编写了声音处理包sound,那么按照SUN公司的建议,这个包的名称最好为_________________。
28. 类包括两个成员要素:域和方法。其中,________定义了类所需要的数据,_________定义了类的功能。
29. 构造方法具有两个明显的特点:(1)方法名必须与________相同;(2)在声明时___________返回类型。
30. 通过继承关系,可以将JAVA的所有类用一个树状的层次结构表示出来,而其根部的类是_____________。
31. 静态多态性在_____________时可以被系统识别,指的是同一个类中同名方法在功能上的重载。在方法声明的形式上,重载要求_________的方法名和__________的参数列表。
32. 语句“import javax.servlet.*;”的作用是:___________________________________________________________________________。
33. 当一个类的一个成员声明为“private”时,____________________中的成员方法能访问该成员。
34. 查看当前Java虚拟机版本的命令是 ____ ___ __。
35. Sun公司提供的Java开发工具包共3类:其中用于工作站和个人计算机的标准开发包称为J2SE,主要用于企业级开发的工具包称为____________________,主要用于开发智能型消费电子产品(如移动电话和汽车导航系统等)的工具称为________________________。
36. 在Java语言中,字符串直接量是用______________括起来的字符序列。字符串不是字符数组,而是类______________的实例对象。
37. 在一个类的内部嵌套定义的类称为______________。
38. Java通过______________支持多重继承,使类继承具有更灵活的扩展性。
39. 用static修饰的方法,成为静态方法。它们不是对象的方法,而是整个类的方法。static 修饰的方法只能处理用关键字______________修饰的数据。
40. 把对象实例化可以生成多个对象,使用______________运算符为对象分配内存空间。
41. Object类是java所有类的______________。
42. 把对象实例化可以生成多个对象,使用______________运算符为对象分配内存空间。
43. Java中字符是作为______________码来处理的,每个字符用_______________个字节表示。
44. 在类java.lang.Thread的成员方法中,方法______________用来启动线程,线程在程序执行时的代码被封装于方法______________中。
45. 定义类的构造方法不能有返回值类型,其名称与_______ _名相同。
46. 接口中的成员只有静态常量和_________。
47. 在子类中使用关键字__________做前缀可调用被子类覆盖的父类中的方法。
48. 关键字_________用于导入包中的类到程序中,供程序中使用。
49. Java语言中, 通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的_____块来捕获和处理异常。
50. 程序中实现多线程的方法有两种:继承___________类和实现Runnable接口。
1.应用程序、小应用程序 2.Object 3.垃圾回收 4public abstract
5 javac Test 、java java Test 6.pulic class A extends B implements Runnable 7.System.gc()
8.false 9.createStatement 10 Applet类 11垃圾回收 12 Unicode
13 封装性 继承性 多态性 14 try-catch-finally
15. 构造类Thread的子类 构造实现接口Runnable的类16 cn.edu.tsinghua.image
17类 接口 数组 18类 19 将类中的成员域初始化成相应类型的默认值
20强制立即回收垃圾 21相似 22 运行 23 父 24所有能访问该类的方法
25path classpath 26 运行时异常(RuntimeException)和错误(Error)
27cn.edu.zjgsu.sound 28域 方法 29 类名 不能写上 30 Object 31编译 相同 不同
32将javax.servlet包下的所有的类和接口导入到程序中 33同一个类 34. java -version 35. J2EE J2ME 36 双引号 String 37. 内部类 38. 接口 39. static 40. New
41父类 42. new 43. unicode 2 44 start run 45.类 46. 抽象方法 47.super 48. import 49. catch 50. Thread
二、 选择题(每题1分,共20分)
1.在一个合法的Java源程序文件中定义了3个类,则其中属性为public的类可能有__个。
(A) 1 (B) 2 (C) 3 (D) A、B、C都有可能
2.执行完下面程序片断之后,下面_______________结论是正确的。
int a, b, c;
a=1;
b=2;
c=(a+b>3 ? a++;++b);
(A) a的值是2,b的值是3 (B) a的值是1,b的值是3
(C) a的值是1,b的值是2 (D) c的值是false
3.类Test1定义如下:
1.public class Test1{
2. public float aMethod(float a,float b){ }
3.
4.}
将以下_______________方法插入行3是不合法的。
(A) public float aMethod(float a, float b,float c){ }
(B) public float aMethod(float c,float d){ }
(C) public int aMethod(int a, int b){ }
(D) private float aMethod(int a, int b, int c){ }
4. 下面程序的输出是___________。
class J_StringBuffer{
public static void main(String args[]){
StringBuffer a = new String(“A”);
StringBuffer b = new String(“B”);
mb_operate(a,b);
System.out.println(a + “.” + b );
}
static void mb_operate(StringBuffer x, StringBuffer y){
x.append(y);
y=new StringBuffer(“AB”);
}
}
(A) A.B (B) A.A (C) AB.AB (D) AB.B
5.下面___________方法可以用来加载JDBC驱动程序。
(A) 类java.sql.DriverManager的getDriver方法
(B) 类java.sql.DriverManager的getDrivers方法
(C) 类java.lang.Class的forName方法
(D) 类java.sql.Driver的connect方法
6.下列说法错误的是____________________。
(A) Java语言与C语言一样区分大小写
(B) Java应用程序若要单独运行需要含有main方法,它是程序执行的入口
(C) Java语言中,每个ASCII码英文字符占用8个二进制位,而每个汉字字符则占用16个二进制位。
(D) 字母,下划线可以用作变量名的首字符
7.下面_________方法定义置于第5行将会导致编译错误。
1. class Super{
2. public float getNum(){return 2.0f;}
3. }
4. public class Sub extends Super{
5.
6. }
(A) public float getNum(){return 4.0f;}
(B) public void getNum(){}
(C) public void getNum(double d){}
(D) public double getNum(float d){return 4.0d;}
8.关于被私有访问控制符private修饰的成员变量,以下说法正确的是___________。
(A) 可被三种类引用:类自身、与它在同一个包中的其他类、在其他包中的该类的子类
(B) 可以被两种类访问和引用:该类本身、该类的所有子类
(C) 只能被该类自身所访问和修改
(D) 只能被同一个包中的类访问
9.下面程序的输出是___________。
class J_String{
public static void main(String args[]){
String a = new String(“A”);
String b = new String(“B”);
mb_operate(a,b);
System.out.println(a + “.” + b );
}
static void mb_operate(String x, String y){
x=x+y;
y=x;
}
}
(A) A.B (B) A.A (C) AB.AB (D) AB.B
10.已经声明了类“public class Test extends Thread”,下面______________语句启动该类型的线程。
(A)Thread t = new Thread(new Test()); t.start(); (B) Test t = new Test(); t.start()
(C) Test t = new Test(); t.run(); (D) new Test.start()
11.要执行查询语句“select * from student”,可以用java.sql.Statement实例对象的__________方法。
(A)excute (B) update
(C) updateRow (D) excuteQuery
12.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
(A) static void method( ) (B) public void method( )
(C) final void method( ) (D) abstract void method( )
13.作为Java应用程序入口的main方法,其声明格式可以是:
A、 public static int main(String args[])
B、 public static void main(String args[])
C、 public void main(String args[])
D、 public int main(String args[])
14.下面程序片断输出的是什么?
int a=3;
int b=1;
if(a=b)
System.out.println(“a=”+a);
A、 a=1
B、 a=3
C、 编译错误,没有输出
D、 正常运行,但没有输出
15.下面那个变量名命名不正确?
A、 水果
B、 $number
C、 1_number
D、 startTime
16.下面程序运行后的输出结果是什么?
class Test
{
int i=2;
int s=null;
Test()
{
i=3;
s=”hello”;
}
Test(int number)
{
i=number;
s=”hello world!”;
}
public static void main(String args[])
{
Test app=new Test(5);
System.out.println(app.i+” ”+app.s);
}
}
A、 2 null
B、 3 hello
C、 5 hello world!
D、 3 null
17.要求设计一个类,它拥有一个特殊的成员域,该成员域只能被这个类的子类或是同一个包内的其他类访问到。那么该成员域的封装属性应设置为:
A、 public
B、 private
C、 protected
D、 default
18.对于数组“int[] a”,下面哪些语句可以输出数组a的元素个数?
A、 System.out.println(a.size);
B、 System.out.println(a.size());
C、 System.out.println(a.length());
D、 System.out.println(a.length);
19.下面哪个说法不正确?
A、 程序编写规范可以增强程序的可读性
B、 排版规范的程序可以提高程序的可理解性
C、 排版规范的程序可以提高程序的运行效率
D、 注释是帮助理解程序的重要手段之一
20.JAVA语言含有哪两类数据类型:
A. 基本数据类型和引用数据类型
B. 基本数据类型和自定义数据类型
C. 常量和变量
D. 类和接口
21.“instanceof”的作用是:
A、 用来指定接口
B、 用来测试一个对象是否是一个指定类的实例
C、 用来申请新对象
D、 用来抛出异常
22.要求设计一个类,它拥有一个特殊的成员域,该成员域只能被同一个包内的其他类访问到。那么该成员域的封装属性应设置为:
A. public
B. private
C. protected
D. default
23.下面的程序代码会产生编译错误,应当如何修正?
public class Test
{
private int number=3;
public static void main(String args[])
{
System.out.println(“number=”+number);
}
}
A. 将“private int number=3;”改为“protected int number=3;”
B. 将“private int number=3;”改为“public int number=3;”
C. 将“private int number=3;”改为“static int number=3;”
D. 将“private int number=3;”改为“int number=3;”
24.下面程序运行结果是什么?
public class Test
{
String m_string=new String(“good”);
String m_array[]={“aaa”};
public void mb_method(String s,String[] sa)
{
s=”bad”;
sa[0]=”bbb”;
}
public static void main(String args[])
{
Test a=new Test();
a.mb_method(a.m_string, a.m_array);
System.out.println(a.m_string+a.m_array[0]);
}
}
A. goodaaa
B. goodbbb
C. badaaa
D. badbbb
25.下面哪个类型的实例对象可以通过throws语句抛出?
A. Event
B. Object
C. RuntimeException
D. package
26.下面哪个说法不正确?
A. 注释是帮助理解程序的重要手段之一
B. 排版规范的程序可以缩短程序运行的时间
C. 程序编写规范可以增强程序的可读性
D. 排版规范的程序可以提高程序的可理解性
27.Java程序的执行过程中用到了一套JDK工具,其中的javac.exe是指________。
(A) java语言编译器 (B) java字节码解释器
(C) java文档生成器 (D) java类分析器
28.下列保留字书写正确的是 。
(A) Byte (B) NEW (C) long (D) Null
29.下列不属于扩展赋值运算符的是 。
(A) += (B)\= (C) *= (D) >>>=
30.下列对继承的说法, ____________是正确的。
(A) 子类能继承父类的所有方法和域。
(B) 子类能继承父类的非私有方法和域。
(C) 子类能继承父类的public的方法和域。
(D) 子类只能继承父类的方法,而不能继承域。
31.当方法遇到异常又不知如何处理时,下列哪些做法是正确的?__ ___
(A) 捕获异常 (B) 抛出异常 (C) 声明异常 (D) 嵌套异常
32.关于构造方法,下列说法错误的是__________。
(A) 构造方法不可以进行方法的重写
(B) 构造方法用来初始化该类的一个新的对象
(C) 构造方法具有和类名相同的名称
(D) 构造方法不返回任何数据类型
33.____________类是所有异常类的父类。
(A) Throwable (B) Error (C) Exception (D) AWTError
34.__ ___是java程序与数据库连接的一种机制 。
(A) ODBC (B) JDBC (C) J2EE (D) ODBC API
35.在J2SDK安装过程中,需设置的环境变量为___________。
(A) path和classpath (B) direct和classdirect
(C) path和 setpath (D)direct 和setdirect
1.A 2.B 3.B 4.D 5.C 6.C 7.B 8.C 9.A 10.B 11.D 12.A
13. B 14 C 15C 16C 17C 18D 19C 20 A 21B 22D 23C 24B 25C 26B
27. A 28.C 29.B 30.A 31.B 32.A 33.A 34 B 35.A
三、 读程序,写出运行结果。(每题4分)
1.运行下面程序,结果输出__________________________。
class Value{
public int i = 15;
}
public class Test{
public static void main(String argv[]){
Test t = new Test();
t.first();
}
public void first(){
int i = 5;
Value v = new Value();
v.i = 25;
second(v, i);
System.out.println(v.i);
}
public void second(Value v, int i){
i = 0;
v.i = 20;
Value val = new Value();
v = val;
System.out.println(v.i + " " + i);
}
}
结果: 15 0 20
2. 运行下面程序,结果输出__________________________。
class MyParent {
int x, y;
MyParent(int x, int y){
this.x = x;
this.y = y;
}
public int addMe(int x, int y){
return this.x + x + y + this.y;
}
public int addMe(MyParent myPar){
return addMe(myPar.x, myPar.y);
}
}
class MyChild extends MyParent{
int z;
MyChild (int x, int y, int z){
super(x,y);
this.z = z;
}
public int addMe(int x, int y, int z){
return this.x + x + this.y + y + this.z + z;
}
public int addMe(MyChild myChi){
return addMe(myChi.x, myChi.y, myChi.z);
}
public int addMe(int x, int y){
return this.x + x + this.y + y;
}
}
public class MySomeOne{
public static void main(String args[]){
MyChild myChi = new MyChild(10, 20, 30);
MyParent myPar = new MyParent(10, 20);
int x = myChi.addMe(10, 20, 30);
int y = myChi.addMe(myChi);
int z = myPar.addMe(myPar);
System.out.println(x + y + z);
}
}
结果:300
3. 运行下面程序,结果输出__________________________。
class FatherClass {
public FatherClass(){
System.out.println("FatherClass Create");
}
}
public class ChildClass extends FatherClass{
public ChildClass() {
System.out.println("ChildClass Create");
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
结果:
FatherClass Create
FatherClass Create
ChildClass Create
4.
public class Machine extends Thread
{
public void run()
{
for(int a=0;a<3;a++)
{
System.out.println(currentThread().getName()+":"+a);
yield();
}
}
public static void main(String []args)
{
Machine machine=new Machine();
machine.setName("m1");
machine.start();
machine.run();
}
}
结果:main:0
m1:0
main:1
m1:1
main:2
m1:2
5.
public class Example
{
public static void main(String args[]){
try{
try{
int i=1/0;
}
catch (Exception e){
System.out.print(“1”);
Throw e;
}
finally{
System.out.print(“2”);
}
}
catch(Exception e){
System.out.print(“3”);
}
finally{
System.out.print(“4”);
}
` System.out.print(“5\n”);
}//方法main结束
}//类Example结束
结果:12345
6.
class A
{
int i;
A(int i)
{
this.i=i*2;
}
}
class B extends A
{
public static void main(String []args)
{
B b=new B(2);
}
B (int i)
{
super(i);
System.out.println(i);
}
}
结果:2
7.
import java.util.Arrays;
public class SortArray {
public static void main(String args[]) {
String[] str = {"size", "abs","length","class"};
System.out.println(str[0].length());
Arrays.sort(str);
for (int i=0; i<str.length; i++)
System.out.print(str[i]+" ");
}
}
写出程序运行后的结果。
结果:4 abs class length size
8.
定义类A和类B如下. (5分)
class A
{
int a=1;
double d=2.0;
void show( )
{
System.out.println("Class A: a="+a +"\td="+d);\}
}
class B extends A
{
float a=3.0f;
String d="Java program.";
void show( )
{
super.show( );
System.out.println("Class B: a="+a +"\td="+d);
}
}
(1) 若在应用程序的main方法中有以下语句:
A a=new A();
a.show();
则输出的结果如何?(2分)
(2) 若在应用程序的main方法中定义类B的对象b:
A b=new B();
b.show();
则输出的结果如何?(3分)
结果:1) Class A: a=1 d=2.0 (2) Class A: a=1 d=2.0 Class B: a=3.0 d=Java program.
四、程序填空题(每空2分)
1. 下面程序实现以下功能:定义一个接口Area,其中包含一个面积的抽象方法calculateArea(),然后设计MyCircle类实现这个接口中的方法calculateArea(),以计算圆的面积。最后,以计算圆心(3,4),半径为5的圆的面积加以验证。请在横线处填入适当内容,使程序能够正确运行。
____________________ Area
{
public abstract float calculateArea();
}
public class MyCircle ____________________
{
private float x;
private float y;
private float radius;
MyCircle(float x, float y, float radius)
{
this.x = x;
this.y = y;
this.radius = radius;
}
____________________________
{
return ((float)Math.PI* radius* radius);
}
}
public class Test
{
public void static main(__________________________)
{
____________________________
System.out.print(“Circle’s Area = ” + c. calculateArea());
}
答案:
interface、implements
展开阅读全文