JAVA整理复习题含答案(14页).docx
-JAVA整理复习题含答案-第 14 页1已知:int a =8,b=6; 则:表达式+a-b+的值为(4 ) 2已知:boolean b1=true,b2; 则:表达式! b1 && b2 |b2的值为(false ) 3已知:double x=8.5,y=5.8; 则:表达式x+>y-值为(True ) 4已知:int a =2,4,6,8; 则:表达式(a0+=a1)+ +a2值为(12 ) 5执行int x, a = 2, b = 3, c = 4; x = +a + b+ + c+; 结果是(x=12 ) 6Java中的显式类型转换既能(从低类型向高类型转换 )也能从高类型向低类型转换,而隐式类型转换只有前者。7执行下列程序代码的输出结果是(10,11,11 )。int a = 10; int i, j; i = +a; j = a-; System.out.printf("%d,%d,%d", a, i, j); 8执行完boolean x=false; boolean y=true; boolean z=(x&&y)&&(!y) ; int f=z=false?1:2; 这段代码后,z与f的值分别是(False )和(1 ) 9类是一组具有相同(属性 )和(行为 )的对象的抽象。(实例 )是由某个特定的类所描述的一个个具体的对象10(NEW )是一个特殊的方法,用于创建一个类的实例11(静态 )方法不能直接访问其所属类的(实例 )变量和(实例 )方法,只可直接访问其所属类的( 静态成员)变量和(静态成员 )方法12(类 )变量在内存中只有一个拷贝,被该类的所有对象共享;每当创建一个实例, 就会为(实例 )变量分配一次内存,(实例 )变量可以在内存中有多个拷贝,互不影响。13Java使用固定于首行的(Package )语句来创建包。14类成员的访问控制符有(Public )、(private )、(pretected )和默认四种。15protected类型的类成员可被(当前类 )、同一包中的(派生类 )和不同包中的(派生类 )的代码访问引用。16系统规定用(This )表示当前类的构造方法,用(super )表示直接父类的构造方法,在构造方法中两者只能选其一,且须放在第一条语句。17Java的多态性主要表现在(方法重载 )、(方法覆盖 )和(变量覆盖 )三个方面。18接口中定义的数据成员均是(没有实体 ),所有成员方法均为(abstract )方法,且没有(实现 )方法。19如果一个类包含一个或多个abstract方法,则它是一个(接口 )类。20Java不直接支持多继承,但可以通过(重载 )实现多继承。类的继承具有(单一 )性21接口中只能包含(静态 )类型的成员变量和(静态 )类型的成员方法。22Swing的事件处理机制包括(事件源 )、事件和事件监听者。23Java事件处理包括建立事件源、(建立事件监听器 )和将事件源注册到监听器。1下面哪些标识符在Java语言中是合法的?(B )Apersons$ BTwoUsers C*point Dinstanceof F.end-line 2下列(B )是合法标识符。B-是下划线A2end B-hello C=AB D整型变量3已知int i = 2 147 483 647; +i; 则i的值等于(A )。A- 2 147 483 648 B2 147 483 647 C2 147 483 648 D.-1 4若x = 5,y = 8,则表达式x|y的值为(C )。A3 B13 C0 D5 5若定义有变量float f1,f2 = 8.0F,则下列说法正确的是(B )。A变量f1,f2均被初始化为8.0 B变量f1没有被初始化,f2被初始化为8.0 C变量f1,f2均未被初始化D变量f2没有被初始化,f1被初始化为8.0 6基本数据类型short的取值范围是(B )。A(-256) 255 B(-32 768) 32 767 C(-128) 127 D065 535 7若定义有short s; byte b; char c; 则表达式s * b + c的类型为(A )。Achar Bshort Cint Dbyte 8下列循环语句的循环次数是(B )。int i=5; do System.out.println(i-); i-; while(i!=0); A5 B无限C0 D1 9下列代码哪几行会出错?(C ) 1) public void modify() 2) int I, j, k; 3) I = 100; 4) while (I > 0) 5) j = I * 2; 6) System.out.println(" The value of j is " + j); 7) k = k + 1; 8) I-; 9) 10 Aline 4 Bline 6 Cline 7 Dline 8 10 下列关于数组的定义形式,哪些是错误的?(ABC ) Aint c=new char10; Bint 3=new int2 ; Cint a; a=new int; Dchar b ; b=new char80; 11执行String s=new String10;语句后,哪些结论是正确的?(BC ) As0 为未定义Bs.length 为10 Cs9 为null Ds10 为"" 12下列关于Java语言的数组描述中,错误的是(D )。A数组的长度通常用length表示B数组下标从0开始C数组元素是按顺序存放在内存的D数组在赋初值和赋值时都不判界13下面的表达式哪些是正确的? (ACE ) AString s="你好"int i=3; s+=i; BString s="你好"int i=3; if(i=s) s+=i;CString s="你好"int i=3; s=i+s; DString s="你好"int i=3; s=i+; E. String s=null; int i=(s!=null)&&(s.length()>0)?s.length():0; 14下列代表十六进制整数的是(C )。A012345 B2008 C0xfa08 Dfb05 15下列说法正确的是(AC )。A表达式“1+2>3”的值是false B表达式“1+2|3”是非法的表达式C表达式“i+j=1”是非法的表达式D表达式“1+2>3”的值是true 16指出正确的表达式(B )。Abyte=128; Blong l=0xfffL; CBoolean=null; Ddouble=0.9239d; 17public class T18 static int arr = new int10; public static void main(String a) System.out.println(arr1); 哪个语句是正确的?(C ) A编译时将产生错误B编译时正确,运行时将产生错误C输出零D输出空18若String s = "hello" String t = "hello" char c = 'h','e','l','l','o' ; 则下列哪些表达式返回true?(AB ) As.equals(t); Bt.equals(new String("hello"); Ct.equals(c); Ds=t; 19下列关于“<<”和“>>”的运算,哪些是正确的?(AC ) A0000 0100 0000 0000 0000 0000 0000 0000<<5 的运行结果是1000 0000 0000 0000 0000 0000 0000 0000 B0000 0100 0000 0000 0000 0000 0000 0000<<5的运行结果是1111 1100 0000 0000 0000 0000 0000 0000 C1100 0000 0000 0000 0000 0000 0000 0000>>5的运行结果是1111 1110 0000 0000 0000 0000 0000 0000 D1100 0000 0000 0000 0000 0000 0000 0000>>5的运行结果是0000 0110 0000 0000 0000 0000 0000 0000 20下面关于Java Application 程序结构特点描述中,错误的是(D )。A一个Java Application 程序由一个或多个文件组成,每个文件中可以定义一个或多个类,每个类由若干个方法和变量组成。BJava 程序中声明有public 类时,则Java 程序文件名必须与public 类的类名相同,并区分大小写,扩展名为.java。C组成Java Application 程序的多个类中,有且仅有一个主类。D一个.java 文件中定义多个类时,允许其中声明多个public 类。21编译Java 程序后生成的面向JVM 的字节码文件的扩展名是(B )。A.java B.class C.obj D.exe 22下面关于Java 语言特点的描述中,错误的是(A )。AJava 是纯面向对象编程语言,支持单继承和多继承。BJava 支持分布式的网络应用,可透明地访问网络上的其他对象。CJava 支持多线程编程。DJava 程序与平台无关、可移植性好。23Java SE 的命令文件(java、javac、javadoc 等)所在目录是(C )。A%JAVA_HOME%jre B%JAVA_HOME%lib C%JAVA_HOME%bin D%JAVA_HOME%demo 24下列关于运行字节码文件的命令行参的描述中,正确的是(C )。A命令行的命令字被存放在args0中。B数组args的大小与命令行的参数的个数无关。C第一个命令行参数(紧跟命令字的参数)被存放在args0中。D第一个命令行参数被存放在args1中。25paint()方法使用哪种类型的参数? (A ) AGraphics BGraphics2D CString DColor 26Java 的核心包中,提供编程应用的基本类的包是(B )。Ajava.util Bjava.lang Cjava.applet Djava.rmi 27下列标识符(名字)命名原则中,正确的是(C )。A类名的首字母小写B接口名的首字母小写C常量全部大写D变量名和方法名的首字母大写28下面哪些选项是正确的main 方法说明?(B ) Avoid main() Bprivate static void main(String args) Cpublic main(String args) Dpublic static void main(String args) 29下面关于类的继承性的描述中,错误的是(C )。A继承是在已有的基础上生成新类的一种方法BJava语言要求一个子类只有一个父类C父类中成员的访问权限在子类中将被改变D子类继承父类的所有成员,但不包括私有的成员方法30在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是(B )。A默认Bprotected Cprivate Dpublic 31在类的修饰符中,规定只能被同一包类所使用的修饰符是(B )。Apublic B默认Cfinal Dabstract 32下列关于子类继承父类的成员描述中,错误的是(C )。A当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法。B方法重载是编译时处理的,而方法覆盖是在运行时处理的。C子类中继承父类中的所有成员都可以访问。D子类中定义有与父类同名变量时,在子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量。33下列关于继承性的描述中,错误的是(C )。A一个类可以同时生成多个子类B子类继承了父类中除私有的成员以外的其他成员CJava支持单重继承和多重继承DJava通过接口可使子类使用多个父类的成员34下列关于抽象类的描述中,错误的是(C )。A抽象类是用修饰符abstract说明的B抽象类是不可以定义对象的C抽象类是不可以有构造方法的D抽象类通常要有它的子类35下列哪些方法与方法public void add(int a)为合理的重载方法?(ACD ) Apublic void add(char a) Bpublic int add(int a) Cpublic void add(int a,int b) Dpublic void add(float a) 36MAX_LENGTH是int型public成员变量,变量值保持为常量100,其定义是(C )。Apublic int MAX_LENGTH=100; Bfinal public int MAX_LENGTH=100; Cpublic final int MAX_LENGTH=100; Dfinal int MAX_LENGTH=100; 37Swing组件必须添加到Swing顶层容器相关的(B )。A分隔板上B内容面板上C选项板上D复选框内38Panel和Applet的默认布局管理器是(A )。AFlowLayout BCardLayout CBorderLayout DGridLayout 39容器类java.awt.container的父类是(C )。Ajava.awt.Frame Bjava.awt.Panel Cjava.awt.Componet Djava.awt.Windows 40哪些布局管理器使用的是组件的最佳尺寸?(AE ) AFlowLayout BBorderLayout CGridLayout DCardLayout EGridBagLayout 41关于AWT和Swing说法正确的是(CD )。ASwing是AWT的子类BAWT在不同操作系统中显示相同的风格CAWT和Swing都支持事件模型DSwing在不同的操作系统中显示相同的风格42线程在生命周期中要经历五种状态,若线程当前是新建状态,则它可以到达的下一个状态是(B )。A运行状态B可运行状态C阻塞状态D终止状态43下列关于Java多线程并发控制机制的叙述中,错误的是(D )。AJava中没有提供检测与避免死锁的专门机制,但应用程序可以采用某些策略防止死锁的发生B共享数据的访问权限都必须定义为private CJava中对共享数据操作的并发控制是采用加锁技术D线程之间的交互,提倡采用suspend()/resume()方法44哪个关键字可以对对象加互斥锁?(C ) Atransient Bserialize Csynchronized Dstatic 45运行下列程序,会产生什么结果?(A ) public class Exercises3_1 extends Thread implements runable public void run() System.out.println("this is run()"); public static void main(String args) Thread t = new Thread(new Exercises3_1(); t.start(); A第一行会产生编译错误B第六行会产生编译错误C第六行会产生运行错误D程序会运行和启动三、判断题1所有的变量在使用前都必须进行初始化。(F ) 2已知byte i = (byte)127; i = i +1;这两个语句能被成功编译。(T ) 3String str="abcdefghi" char chr=str.charAt(9); (F ) 4char chrArray= 'a', 'b', 'c', 'd', 'e', 'f', 'g' char chr=chrArray6; (T )5int i,j; boolean booleanValue=(i=j); (F ) 6int intArray=0,2,4,6,8; int length=int Array.length();(F ) 7String str="abcedf" int length=str.length; (F ) 8short shortValue=220; byte byteValue=shortValue; (F ) 9int intArray60; (F ) 10char str="abcdefgh" (F ) 11说明或声明数组时不分配内存大小,创建数组时分配内存大小。(T ) 12Java语言具有较好的安全性和可移植性及与平台无关等特性。(T ) 13Java语言的源程序不是编译型的,而是编译解释型的。(T ) 14Java Application程序中,必有一个主方法main(),该方法有没有参数都可以。(T ) 15Java程序中不区分大小写字母。(F ) 16机器不能直接识别字节码文件,它要经过JVM中的解释器边解释边执行。(T ) 17System类中的println()方法分行显示信息,而print()方法不分行显示信息。(T ) 18java命令不区分大小写,而javac命令区分大小写。(F ) 19在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。(F ) 20容器是用来组织其他界面成分和元素的单元,它不能嵌套其他容器。(F ) 21一个容器中可以混合使用多种布局策略。(F ) 22使用BorderLayout布局管理器时,GUI组件可以按任何顺序添加到面板上。(T ) 23每个事件类对应一个事件监听器接口,每一个监听器接口都有相对应的适配器。(F ) 24Java中,并非每个事件类都只对应一个事件。(T ) 25一个Java多线程的程序不论在什么计算机上运行,其结果始终是一样的。(F ) 26Java线程有五种不同的状态,这五种状态中的任何两种状态之间都可以相互转换。(F ) 27所谓线程同步就是若干个线程都需要使用同一个synchronized修饰的方法。(T ) 28使用Thread子类创建线程的优点是可以在子类中增加新的成员变量,使线程具有某种属性,也可以在子类中新增加方法,使线程具有某种功能。但是,Java不支持多继承,Thread 类的子类不能再扩展其他的类。(T ) 四、简答题1Java Application 程序和Java Applet 程序的主要区别是什么? 一.结构上的区别(1)运行方式不同。(2)运行工具不同。(3)程序结构不同。(4)Java Applet程序可以直接利用浏览器或AppletViewer提供的图形用户界面,而Java Application程序则必须另外书写专用代码来营建自己的图形界面。(5)受到的限制不同二.执行方面: Java Application一般是在本地运行,而Java Applet一般在服务端运行。2Java Application 程序在结构上有哪些特点?如何编译、运行?被编译后生成什么文件?该文件机器可以直接识别吗?如何执行? JAVA Application程序在结构上特点是面向对象编程,可以一处编写导出运行。如果编译,如果运行?编译是通过JAVA虚拟机编译和运行。编译后生成文件.class文件,是通过java文件编译的该文件机器可以直接识别吗?无法直接识别,可以通过反编译或JAVA虚拟机进行识别如何执行?执行可以通过控制他进行编译执行。可以通过专用的编译器Eclipse进行执行。3Java 定义了哪些基本数据类型?基本数据类型和引用数据类型的特点是什么? Java定义了8个简单的数据类型:字节型(byte),短整型(short),整型(int),长整型(long),字符型(char),浮点型(float),双精度型(double),布尔型(boolean) 基本类型的数据变量在声明之后java就会立刻分配给他内存空间。它存储在堆中。引用类型的实例在栈中,保存的是数据。在堆中的物理地址,只是一个“引用”。就相当于一个箭头,指向堆中的数据一样4在Java 中怎样定义和使用一维数组、二维数组?一维int a; /声明未初始化a = new int 10; / 定义占用空间大小(10个int)int a = new int 10; /声明并定义大小(即分配了指定大小的空间)int a = 1,2,3; / 声明并初始化,占用空间大小是3个int。二维 int num=new int1,2,3,4,5,6; 5名词解释:封装(encapsulation)、垃圾收集器、JRE、JVM 隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。JavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。JVM是Java Virtual Machine(Java虚拟机)的缩写。6什么是继承?什么是父类?什么是子类?继承的特性可给面向对象编程带来什么好处?什么是单继承?什么是多重继承? 继承实际上是存在于面向对象程序设计中的两个类之间的一种关系,是面向对象程序设计方法的一个重要手段,通过继承可以更有效地组织程序结构,明确类间的关系,充分利用已有的类来完成更复杂、更深入的开发。当一个类拥有另一个类的所有数据和操作时,就称这两个类之间具有继承关系。被继承的类称为父类或超类,继承了父类或超类的所有数据和操作的类称为子类。在Java语言程序设计类头定义中用extends表明子类与父类的继承关系。在面向对象的程序设计中,采用继承的方式来组织设计系统中的类,可以提高程序的抽象程度,更接近人的思维方式,使程序结构更清晰并降低编码和维护的工作量。 单重继承是指任何一个类都只有一个单一的父类,其结构可以用单纯的树状结构来表示;而多重继承是指一个类可以有一个以上的父类,它的静态的数据属性和操作从所有这些父类中继承,其结构应以复杂的网状结构来表示。Java语言中仅支持单重继承,而多重继承是通过接口来实现的。7什么是多态?使用多态有什么优点? 多态是指程序中同名的不同方法共存的情况。多态是面向对象程序设计的又一个特性。我们知道,面向过程的程序设计中,过程或函数各具有一定的功能它们之间是不允许重名的;而面向对象程序设计中,则要利用这种多态来提高程序的抽象性,突出Java语言的继承性。面向对象的程序中多态的情况有多种,可以通过子类对父类方法的覆盖实现多态,也可以利用重载在同一个类中定义多个同名的不同方法。多态的特点大大提高了程序的抽象程度和简洁性,更重要的是它最大限度地降低了类和程序模块之间的耦合性,提高了类模块的封闭性,使得它们不需了解对方的具体细节,就可以很好地共同工作。这个优点,对程序的设计、开发和维护都有很大的好处。8什么是重载方法?什么是覆盖方法?它们的主要区别是什么? 方法的覆盖和重载是Java多态性的不同表现。覆盖是父类与子类之间多态性的一种表现,重载是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被覆盖。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载。重载的方法是可以改变返回值的类型。1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。 2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。 3、覆盖要求参数列表相同;重载要求参数列表不同。 4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的9什么是接口?如何定义接口?接口与类有何区别?我们把用于完成特定功能的若干属性组织成相对独立的属性集合。这种属性的集合就是接口。定义接口与定义类非常相似。实际上完全可以把接口理解成为一种特殊的类,接口是由常量和抽象方法组成的特殊类。一个类只能由一个父类,但是它可以同时实现若干个接口。这种情况下如果把接口理解成特殊的类,那么这个类利用接口实际上就获得了多个父类,即实现了多重继承。与类定义相仿,声明接口时也需要给出访问控制符,不同的是接口的访问控制符只有public一个。用public修饰的接口是公共接口,可以被所有的类和接口使用,而没有public修饰符的接口则只能被同一个包中的其他类和接口利用。接口也具有继承性。定义一个接口是可以通过extends关键字声明该新接口是某个已经存在的父接口的派生接口,它将继承父接口的所有属性和方法。与类的继承不同的是一个接口可以有一个以上的父接口,它们之间用逗号分隔,形成父接口列表。新接口将继承所有父接口中的属性和方法。10什么是抽象类?什么是抽象方法?各自有什么特点?1.抽象类 (声明方法的存在而不去实现它的类被叫做抽象类)抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来new对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。 在抽象类中的成员方法可以包括一般方法和抽象方法。2.抽象方法 抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为abstract。11试述AWT 的事件处理机制。当事件源发生事件时,就会自动调用该事件的接口方法,而方法中就是编写的事件处理程序代码。要实现AWT中事件处理,需以下三步:1,事件源 2,监视器 3,处理事件的接口12布局管理器的作用是什么?在JDK 中哪些常用布局管理器?根据一定的规则调用各个组件的setBounds方法放置组件 BorderLayout GridBagLayout FlowLayout CardLayout GridLayout SpringLayout13什么是容器组件?组件与容器有何区别? 容器是特殊的组件,它可以用来存放更多的组件。比如Frame、Dialog、Panel一般来说的组件就是提供功能的,比如Button、CheckBox、TextField容器可以添加其他组件形成复合组件,比如在panel里可以添加button。容器本身也是一种组件14一个线程执行完run()方法后,进入了什么状态?该线程还能再调用start()方法吗? 执行完run()方法后,进入了死亡状态;此时不能再调用start()方法。15建立线程的方法有哪几种?Runnable 接口在线程创建中的作用? :用Thread类直接创建一个线程;创建时要向构造方法Thread(Runnable target)传递一个Runnable接口的实例。 用Thread类的子类创建一个线程;需要重写父类的run()方法。提供方法run()16Runnable 接口中包括哪些抽象方法?Thread 类有哪些主要的成员变量和方法? public abstract void run(); 1 start()方法和stop() 2 run方法 3 sleep() 4 yield() 5 isAlive()6 currentThread()17在多线程中引入同步机制的原因是什么? 不加入线程的同步,可能导致冲突异常,不应该访问的,被访问,或者数据被无故修改五、编程题1编写一个程序,求1!+2!+10!的值。public static void main(String args) int sum = 0; for(int i = 1; i <= 10; i+) int temp = 1; for(int j = 1; j <= i; j+) temp *= j; sum += temp; System.out.println(sum);2编写一个程序,打印输出下列5×5螺旋方阵: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 import java.util.Scanner;public class Helix * 螺旋输出 public static void main(String args) int size=5; Scanner sc=new Scanner(System.in); System.out.println("输入数组大小:"); size=sc.nextInt(); int count=0; int array=new intsizesize; int m=0,n=0; int down,right,up=0,left=0; down=size-1; right=size-1; int max=size*size; while(true) count+; if(m=up) arraymn=count; n+; if(n>right) n=right; m+; else if(n=right) arraymn=count; m+; if(m>down) m=down; right-; else if(m=down) arraymright=count; right-; if(right<left) right=left; down-; else if(right=left) arraydownleft=count; down-; if(down<=up) down=up; left+; else up+; down=n-1; right=m-1; m=up; n=left; count-; for (int j = 0; j < size; j+) / System.out.print(arrayij+"t"); if(count>=max) break; System.out.println(); / end loop for (int i = 0; i < size; i+) access control 访问控制 accessibility 可访问能力,可访问性 accessor method 访问方法 adapter pattern 适配器模式 anonymous class 匿名类 antipattern 反模式 API Application Programming Interface,应用编程接口 API element API元素 array 数组 assertion 断言 binary compatibility 二进制兼容性 callback 回调 callback framework 回调框架 checked exception 被检查的异常 class 类 client 客户 comparator 比较器 composition 复合 concrete strategy 具体策略 constant interface 常量接口 copy constructor 拷贝构造函数 custom serialized form 自定义的序列化形式 decorator pattern decorator模式 default access 缺省访问 default constructor 缺省构造函数 defens