收藏 分享(赏)

JAVA复习带答案.doc

上传人:HR专家 文档编号:11560504 上传时间:2020-06-24 格式:DOC 页数:25 大小:200KB
下载 相关 举报
JAVA复习带答案.doc_第1页
第1页 / 共25页
JAVA复习带答案.doc_第2页
第2页 / 共25页
JAVA复习带答案.doc_第3页
第3页 / 共25页
JAVA复习带答案.doc_第4页
第4页 / 共25页
JAVA复习带答案.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、第一章 java 开发入门1. java语言的特点 :简单,面向对象,安 全, 跨平台,支持多线程。 简单: (丢弃了C+中难于理解的运算符重载,多继承,指针等,并且提供自动垃圾回收机制)面向对象:只支持单继承,纯面向对象的语言。安全: 不支持指针,一切内存访问必须通过对象实例来实现,从而使应用更安全。跨平台:同一段程序既可以在window运行也可以在Linux运行多线程:支持多线程。下列选项哪个不属于java语言包含的内容?()A 具有类与对象 B 一次编译处处运行 C 具有多线程的能力 D 具有多继承的特点下列关于java语言特点错误的是()A. java语言可以进行面向对象编程也可以面向

2、过程编程 B. java语言是面向对象的语言 C. java语言支持跨平台编程D. java语言支持多线程下列特点不属于java语言的是()A 多线程 B 多继承C 跨平台D 垃圾自动回收 2. java程序为什么能跨平台?通过java虚拟机可以达到跨平台的特性。3. java程序的编译过程:源文件 a.java- 编译 a.class(字节码文件) 虚拟机运行下面哪种类型的文件可以在java虚拟机中运行?A . .java B. .jre C. .exe D. .class在Java中负责对字节码解释执行的是( )。 A.垃圾回收器 B.虚拟机 C.编译器 D.多线程机制编译JavaAppl

3、ication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为()。A.java B.class C.htm D.exe第二章 java编程基础1. java代码基本格式java语言区分大小写 ,程序代码必须写在一个类中 Java中main()函数的返回值是 ()。 A、 String B、int C、char D、void void的含义( ) A方法没有返回值 B方法体为空 C没有意义 D. 定义方法时必须使用2. java标识符 可以由任意顺序的大小写字母、数字、下划线_和美元符号$组成,但不能以数字开头,不能是java关键字。 以下选项中,哪个是合法标识符( ) Aabc B

4、. class C. 123sb D byte如下哪个不是Java中有效的变量名。( ) A、 if B、_hello C、name D、$good 下面选项中哪个是Java中的标识符A.public B.super C.3number D.width 下面哪个单词是Java语言的关键字( )AFalse BFOR CFor Dfor下列标识符中,正确的是 。 A、1_Back B、$_MoneyC、$-money D、a.b下列标识符中,合法的一个是 。A$#!$B$我们$C$22$D2$23. 运算符表达式 条件 循环 + - - / % 设 x = 1 , y = 2 ,z = 3则表达

5、式 y+=z- -/+ x 的值是( )。 A. 3 B. 3.5 C. 4 D. 5 以下程序的运行结果是:( ) public class Increment public static void main(String args) int a; a = 6; System.out.print(a); System.out.print(a+); System.out.print(a); A 666 B. 667 C. 677 D. 676下列代码输出结果是( ) int i = 10; while ( i 0 ) i = i + 1; if ( i = =10 ) break; A. wh

6、ile循环执行10次 B. 死循环 C. 循环一次都不执行 D. 循环执行一次 执行下面代码结果( ) for(int i=0;) System.out.println(这是 +i); Break; A、 语法错误,缺少表达式2和表达式3 B、 死循环 C、 程序什么都不输出 D、 输出:这是0 下列语句执行后变量a、c的值分别是 。 int x=182; int a,c; c=x/100; a=x%10; A) 12 B) 21 C) 1.82, 2 D) 100,82下列语句执行后,k的值是( ) int j=4, i, k=10; for(i=2; i!=j; i+) k=k-i; A

7、4 B5 C6 D7 break中断语句若在一个for语句中加入break语句它可以 A. 对for语句执行没有影响 B. 中断本次循环进入下一次循环 C. 退出for循环执行for语句后面的语句 D. 以上说法均不对 . 执行完下面程序片段后的结论是正确的。 int a,b,c;a=1; b=2c = (a+b3 ?a+:b+);A.a的值是2b的值是3 B.a的值是1b的值是3 C.a的值是1b的值是2 D.c的值是false 4. 方法(函数) 方法的重载 :函数名相同 ,参数个数和参数类型不同。返回值不同不算重载。 方法的重写 :在继承关系中,子类重新定义父类的同名方法(参数个数和类型

8、与父类一样)。 P116 方法递归是指在一个方法的内部调用自身的过程。必须给出结束条件,不然会陷入死循环。 函数重载是指( )。 A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C. 两个以上的函数名字不同,但形参的个数或类型相同 D. 两个以上的函数取相同的函数名,并且函数的返回类型相同一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型,传回的值也可以不相同。这种面向对象程序的特性称为( )。A、 隐藏 B、覆盖 C、重载 D、Java不支持此特性 重写与重载的关系是 ( ) A、重写只有

9、发生在父类与子类之间而重载可以发生在同一个类中B、重写方法可以不同名而重载方法必须同名 C、final修饰的方法可以被重写但不能被重载 D、重写与重载是同一回事下列方法头中哪一个不与其他方法形成重载(overload)关系?( D ) A、void mmm() B、void mmm(int i) C、void mmm(String s) D、int mm() (方法名不一样)JAVA程序经常用到“递归”“递归”的基本思想是( ) 。 A.“让别人反复调用自己” B.“自己反复调用别人” C.“自己反复调用自己” D.以上说法都不对5. 数组 数组元素的值下列程序段执行后的结果是( )。 Str

10、ing s = new String(abcdefg); for (int i=0; is.length(); i+=2) System.out.print(s.charAt(i); A) aceg B) ACEG C) abcdefg D) abcd 应用程序的main方法中有以下语句则执行后输出的结果是( B )。 int x = 125,21,5,168,98; int min = x0; for (int i=1; ix.length; i+) if(xi min) min = xi; System.out.println(min); A) 125 B) 5 C) 98 D) 168

11、若int a32=123,345,34,56,34,56,则a21= _56_。设有整型数组的定义:“int x=12,34,-5,3,2,6;”则x.length的值为( 9 ) 第三章 面向对象(上)1. java的面向对象的特点: 封装 继承 多态。 P 78 79 java的特性中体现对数据的保护的是( )A抽象性 B封装性C继承性 D多态性 java的特性中体现代码重用的是( )A抽象性 B封装性C继承性 D多态性 2. 几个关键字:extends implements abstract interface类的创建 ,接口,抽象类创建的写法。所有类的父类是Object类。Java中用

12、关键字定义继承(接口,抽象类)。Java语言中, 是所有类的根类。 Object Root Thread Applet下面是类A的构造方法声明,其中正确的是 void A(int x). A(int x). a(int x). void a(int x).下列类定义中不正确的是 public class A extends B public class A extends B,D public class A implements B,D public class A extends B implements C,D,E下列哪个类声明是正确的( )。Apublic abstract class

13、 CarBabstract private move()Cprotected private number; Dabstract final class H1请看下面的程序段public class Test long a=new long10; pubic static void main(String args)System.out.println(a6);哪一个选项是正确的( )。A不输出任何内容B输出0C当编译时有错误出现 D当运行时有错误出现定义类A如下:class A int a,b,c; public void B(int x,int y, int z) a=x;b=y;c=z;

14、下面对方法B的重载哪些是正确的( )。Apublic void A(int x1,int y1, int z1) a=x1;b=y1;c=z1;Bpublic void B(int x1,int y1, int z1) a=x1;b=y1;c=z1;Cpublic void B(int x,int y) a=x;b=y;c=0; Dpublic B(int x,int y, int z) a=x;b=y;c=z;下列方法的声明中不合法的是 。Afloat area( )Bvoid area( ) CareaDint area(int r)下面哪一个是正确的类的声明? A、 public voi

15、d HH B、 public class Move() C、 public class void number D、 public class Car3. 类的设计与封装(属性,方法,继承,接口,抽象类)程序题 所谓类的封装是指在定义一个类时,将类中的属性私有化,即用private关键字来修饰,私有属性智能在它所在的类中被访问。.构造方法:方法与类名相同,方法名前面没有返回值类型,在方法中不能使用return语句返回一个值,当创建对象时调用,可以重载。构造函数在一个类中肯定存在,如果不定义也不会报错,会有一个默认无参数构造函数,该函数函数体为空,如自己定义则无参数构造函数就没有了。 下列关于构

16、造方法错误的是()A. java语言中构造方法名必须与类名相同B. java语言中构造方法没有返回值,所以用void声明C. java语言构造函数可以重载D. java语言构造函数是在创建对象时自动调用。构造函数何时被调用( ) A、创建对象时 B、类定义时 C、使用对象的方法时 D、使用对象的属性时 以下关于构造函数的描述错误的是 。 A、构造函数的返回类型只能是void型。 B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 在Java中,关于构造方法,下列说法错误的是( ) A

17、、 构造方法的名称必须与类名相同 B、 构造方法可以带参数 C、 构造方法不可以重载 D、 构造方法绝对不能有返回值 下面是类A的构造方法声明,其中正确的是 A. void A(int x). B. A(int x). C. a(int x). D. void a(int x). 有一个类A,对于其构造函数的声明正确的是( )。Avoid A(int x)Bpublic A(int x)CA A(int x)Dint A(int x)以下关于构造函数的描述错误的是( )。 A、构造函数的返回类型只能是void型。B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 C、构造函数的主要作用

18、是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 5.static关键字(静态)在定义一个类时,只是在描述某类事物的特征和行为,并没有产生具体的数据。只有通过new关键字创建类的实例对象后,系统才会为对象分配空间,存储各自的数据。有时候,我们希望某些特定的数据在内存中只有一份,而且能够被一个类的实例对象所共享。静态变量:Static修饰的变量被称为静态变量,静态变量被所有实例共享,可以使用类名.变量名访问。静态方法:有时我们希望不创建对象的情况下可以调用某给方法,也就是说方法不必和对象绑在一起。用static修饰的方法是静态方法,可以用类名.方法名调用,也可以用

19、实例对象访问。在一个静态方法中只能访问用static修饰的成员,原因是没有被static修饰的成员需要先创建对象才能访问,而静态方法在被调用时可以不创建任何对象。假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( ) class A int i; static String s; void method1() static void method2() A、System.out.println(a.i);B、a.method1(); C、A.method1(); D、A.method2() 下面程序中类ClassDemo中定义了一个静态变量sum,分析程序段的输出结果。(

20、) class ClassDemo public static int sum=1; public ClassDemo() sum = sum + 5; public class ClassDemoTest public static void main(String args) ClassDemo demo1=new ClassDemo(); ClassDemo demo2=new ClassDemo(); System.out.println(demo1.sum); A. 0 B. 6 C. 11 D. 2 请看下面的程序段class Test private int m;public s

21、tatic void fun() /some code方法fun()如何来访问变量m( )A将private int m 改成protected int m B将private int m 改成public int mC将private int m 改成static int m D将private int m 改成int m 声明为static的方法不能访问( )类成员。A超类 B子类C非static D用户自定义类 第四章 面向对象(下)1. 继承 extends 只有单继承,在Java语言中,下列关于类的继承的描述,正确的是( )。 A、 一个类可以继承多个父类 B、 一个类可以具有多个子

22、类 C、 子类可以使用父类的所有方法 D、 子类一定比父类有更多的成员方法 Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是( ) A、 C不仅继承了B中的成员,同样也继承了A中的成员 B、 C只继承了B中的成员 C、 C只继承了A中的成员 D、 C不能继承A或B中的成员 Java语言中对父类和子类关系描述正确的是 A.一个子类可以有多个父类一个父类也可以有多个子类 B.一个子类可以有多个父类但一个父类只可以有一个子类 C.一个子类可以有一个父类但一个父类可以有多个子类 D.上述说法都不对 有两个类定义:class Avoid who()System.out.print

23、(A);class B extends Avoid who()System.out.print(B);则顺序执行如下语句后输出的结果为 。A a=new B();B b=new B();a.who();b.who();AA AB BB BA已知类关系如下:Class EmployeeClass Manager extends EmployeeClass Director extends Employee则下列语句正确的是:( )。AEmployee e=new Manager(); BDirector d=new Manager();CDirector d =new Employee ();

24、DManager m=new Director (); 关于Java中的继承,下列说法错误的是 。A继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。B继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复。C每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大。D继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类。Java中的类都采用多重继承。2. Super关键字:调用父类的方法。 编译运行下面的程序,结果是( )。public c

25、lass A public static void main(String args)B b=new B();b.test(); void test()System.out.print(“A”); class B extends A void test()super.test();System.out.print(“B”); A产生编译错误 B代码可以编译运行,并输出结果:ABC代码可以编译运行,但没有输出 D编译没有错误,但会产生运行时异常 Class Parent Void printMe()System.out.println(“parent);class Child extends P

26、arent void printMe()System.out.println(child); void printAll() super.printMe(); this.printMe(); printMe(); public class A public static void main(String args) Child myC=new Child(); myC.printAll(); 运行结果是:3. Final关键字 可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下特性:1、final修饰的类不能被继承。2、final

27、修饰的方法不能被子类重写。3、final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。 在Java中关于final关键字的说法不正确的是 。 A.如果修饰变量则一旦赋了值就等同一个常量。 B.如果修饰类则该类只能被一个子类继承。 C.如果修饰方法则该方法不能在子类中被覆盖。 D.如果修饰类则该类不能被继承。 什么样的方法不能被重写 。A私有(private)方法B最终(final)方法C受保护(protected)的方法D以上都不对4. 抽象类和接口定义方法时不写方法体,不包含方法体的方法为抽象方法,抽象方法必须使用abstract关键字来修饰,具体示例如下:当一个类中包含了抽象方法,

28、该类必须使用abstract关键字来修饰,使用abstract关键字修饰的类为抽象类,具体示例如下: 如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另外一种方式来定义,即接口。在定义接口时,需要使用interface关键字来声明。 对抽象类的描述错误的是 必须被继承使用 方法必须被覆盖 不能实例化 用abstract修饰符修饰下列关于接口的叙述中, 是正确的。 接口与抽象类是相同的概念 接口之间不能有继承关系3个类只能实现一个接口 接口中只含有抽象方法和常量 接口是Java面向对象的实现机制之一,以下说法正确的是( )。AJava支持多重继承,一个类可以实现多个接口BJava只支持单重

29、继承,一个类可以实现多个接口CJava只支持单重继承,一个类只可以实现一个接口 DJava支持多重继承,但一个类只可以实现一个接口 下列有关抽象类与接口的叙述中正确的是哪一个 。A抽象类中必须有抽象方法,接口中也必须有抽象方法B抽象类中可以有非抽象方法,接口中也可以有非抽象方法C含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法D抽象类中的变量定义时必须初始化,而接口中不是从下列程序中你发现了几处错误 。abstract class Aabstract void f(); public abstract void k(); class B extends Aprotected void

30、f() public void k()System.out.print(I am subclass);public static void main(String args) A a=new A();a.f(); a.k();A1B2C3D45. 多态(4-13) 匿名内部类 6. 异常什么是异常? Try .catch . Finally 有时候,我们希望有些语句无论程序是否发生异常都要执行,就需要在try catch后加上finally代码块。 自定义异常继承自Exception类。finally语句块中的代码( )A总是被执行 B当try语句块后面没有catch时,finally中的代码

31、才会执行C异常发生时才执行 D异常没有发生时才被执行抛出异常应该使用的关键字是( )AthrowBcatchCfinallyDthrows自定义异常类时,可以继承的类是( )AErrorBAppletCException及其子类DAssertionError在异常处理中,将可能抛出异常的方法放在( )语句块中AthrowsBcatchCtryDfinally使用catch(Exception e)的好处是( )A只会捕获个别类型的异常B捕获try语句块中产生的所有类型的异常C忽略一些异常D执行一些程序 第五章 线程1. 线程和进程2. Java中如何实现线程(继承Thread类创建线程,实现R

32、unnable接口)Run函数中定义子线程中要实现的代码,通过start函数来开启子线程。 继承Thread类 public class Example02 public static void main(String args) MyThread myThread = new MyThread(); / 创建线程MyThread的线程对象myThread.start(); / 开启线程while (true) / 通过死循环语句打印输出System.out.println(main()方法在运行);class MyThread extends Thread public void run()

33、 while (true) / 通过死循环语句打印输出System.out.println(MyThread类的run()方法在运行);实现Runnable接口public class Example03 public static void main(String args) MyThread myThread = new MyThread(); / 创建MyThread的实例对象 Thread thread=new Thread(myThread); / 创建线程对象thread.start(); / 开启线程,执行线程中的run()方法while (true) System.out.pr

34、intln(main()方法在运行); class MyThread implements Runnable public void run() / 线程的代码段,当调用start()方法时,线程从此处开始执行while (true) System.out.println(MyThread类的run()方法在运行);在实现多线程的程序时有两种方式,一是通过继承_Thread_类,二是通过实现Runnable_接口。一个应用程序中有多条并发执行的线索,每条线索都被称作一个_线程_,它们会交替执行。在Thread类中,提供了一个start()方法,该方法用于开启线程_,当新线程启动后,系统会自动调

35、用_run()_方法。设已经编好了一个线程类MyThread,要在main()中启动该线程,需使用以下哪个方法( )Anew MyThreadBMyThread myThread=new MyThread(); myThread.start();CMyThread myThread=new MyThread(); myThread.run();Dnew MyThread.start();以下方法用于定义线程执行体的是( )Astart() Binit() Crun() Dmain()以下方法用于启动线程的是( )Astart() Binit() Crun() Dmain() 第六章 java

36、API1. String类 Substring 的包头不包尾 str=”zhangsanfeng” str.substring(5,8) 结果是san2. Stringbuffer类 Delete replace包头不包尾 String类型 equals() 两个字符串内容一样,就返回真 = = 左右两边的对象是一个对象才返回真比较s1种的字符串和s2种的字符串的内容是否相等的表达式是:( s1.equals(s2) )已知sb为StringBuffer的一个实例,且sb=”abcde”,则sb.reverse()后sb的值为:( edcba )已知StringBuffer sb=new St

37、ringBuffer(abc),则sb.reverse()后,sb的值为 cbaString s1=“China”; int n=s1.length( ); n的值为 5 。已知String对象s=”abcdefg”,则s.substring(2,5)的返回值为( )。A”bcde”B”cde”C”cdef” D”def”已知s为一个String对象,s=”abcdefg”,则s.charAt(1)的返回值为( )。Aa BbCf Dg假设String s=Nice to meet you,则下面返回to 的语句为 。 As.substring(6,8); Bs.substring(5,9);

38、Cs.substring(5,7); Ds.substring(6,7);已知String s= This is a string,则s.indexOf(is)的值为 。A1 B2 C3 D4以下程序段执行的结果为 。String str1, str2;str1 = Byebye;str2= Byebye;System.out.print(str1.equals(str2); trueSystem.out.println(str1 = str2); falseAtruefalse Btruetrue Cfalsetrue Dfalsefalse应用程序的main方法中有以下语句则输出的结果是( A )。 String

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报