java复习题 下载本文

public static void main(String[] args) { new Object(){

public void show(){

System.out.println(\ } }.show(); }

} 答案:helloworld解析:匿名内部类继承了Object类,并自定义了一个show()方法, * 使用匿名内部类调用show()方法,调用的是子类也就是匿名内部类自身的show()方法, * 编译和运行均能正常进行,因此打印输出了helloworld 60请简要概述try?catch语句中,try和catch的作用

答案:try中编写被检查可能出现异常的代码,catch用于抓住或者不捕获异常,并处理异常 解析:

61简述thorws的作用

答案:throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常。对大多数Exception子类来说,Java 编译器会强迫你声明在一个成员函数中抛出的异常的类型。如果异常的类型是Error或 RuntimeException, 或它们的子类,这个规则不起作用, 因为这在程序的正常部分中是不期待出现的。 如果你想明确地抛出一个RuntimeException,你必须用throws语句来声明它的类型

解析:Throws用于声明方法抛出异常,如果是RuntimeException,可以不用抛出。但是如果是编译异常,必须使用throws抛出 62运行时异常的特点是?

答案:运行时异常的特点是Java编译器不会对其进行检查 解析:RuntimeException类及其子类都是运行时异常。运行时异常的特点是Java编译器不会对其进行检查,也就是说,当程序中出现这类异常时,即使没有使用try..catch语句捕获或使用throws关键字声明抛出,程序也能编译通过

63简要概述,当用final修饰符修饰类、变量和方法时,被修饰者有哪些特性

答案:final关键字可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下特性: 1、final修饰的类不能被继承。

2、final修饰的方法不能被子类重写。

3、final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。 64请简述Java中继承的概念以及使用继承的好处

答案:概念:在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。 好处:继承性主要描述的是类与类之间的关系,通过继承,可以无需重新编写原有类的情况下,对原有类的功能进行使用和扩展。

65请简要说明单例设计模式的实现步骤。

答案:1) 使用private关键字私有化构造方法;2) 在类的内部创建一个该类的实例对象,并使用私有的静态变量引用该对象;3) 为了让类的外部能够获得类的实例对象,需要定义一个公有的静态方法,用于返回该类实例。

66请问将一个类设计成单例设计模式(饿汉式),需要哪些步骤?

答案:1.私有构造函数2.创建私有的静态的本类对象3.对外提供公有的静态的返回值类型为本类的方法

1下列关于ServerSocket类的说法,错误的是?( )

A.ServerSocket类是被final关键字修饰的类,因此没有子类B.ServerSocket类用于表示服务器端C.ServerSocket类中的accept()方法会阻塞D.创建ServerSocket对象时可以指定需绑定到的端口 答案:A

解析:ServerSocket类是一个普通方法,没有被final关键字所修饰,它有一个直接已知子类是SSLServerSocket

2以下哪个类用于实现TCP通信的客户端程序?()

A.ServerSocket B.Socket C.Client D.Server 答案:B 3以下哪个方法是DatagramSocket类用于发送数据的方法?() A.receive() B.accept() C.set() D.send() 答案:D

4下列方法中,java.net.ServerSocket类用于接收客户端请求的方法是( ) A.get() B.accept() C.receive() D.connect() 答案:B 5下列关于UDP协议的说法,错误的是( )

A.UDP是无连接通信协议B.UDP协议消耗资源小,通信效率高

C.使用UDP协议时可能会丢失数据D.在传输重要数据时建议使用UDP协议

答案:D解析:正是由于UDP的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。

6以下对File类的public boolea isFile()方法的描述,哪个是正确的?

A.判断该File对象所对应的是否是文件B.判断该File对象所对应的是否是目录 C.返回文件的最后修改时间D.在当前目录下生成指定的目录 答案:A

7下列关于InetAddress类的getHostName()方法的返回值的说法中,错误的是( ) A.如果创建的InetAddress对象是用主机名创建的,则将该主机名返回

B.如果不是使用主机名创建的InetAddress对象,则将根据IP地址反向查找对应的主机名,找到则返回主机名

C.该方法用于返回某个IP 地址的主机名

D.如果不是使用主机名创建的InetAddress对象,则将根据IP地址反向查找对应的主机名,找不到则返回null

答案:D解析:如果不是使用主机名创建的InetAddress对象,则将根据IP地址反向查找对应的主机名,找不到则返回IP地址,而不是null

8InetAddress类中能获取IP地址及主机名的方法是( )

A.getHostName() B.getLocalHost() C.getHostAddress() D.getAddress () 答案:B解析:getHostName()只能获取主机名,getHostAddress()只能获取IP地址,getAddress()获取IP地址的字节数组,getLocalHost()获取到InetAddress对象,里面包含IP地址及主机名,因此答案B正确

9要产生[20,999]之间的随机整数可以使用以下哪个表达式? A.(int)(20+Math.random()*97) B.20+(int)(Math.random()*980)

C.(int)Math.random()*999 D.20+(int)Math.random()*980 答案:B 10以下Math类的方法中,-4.4通过哪个方法运算后,结果为-5.0? A.round() B.min() C.floor() D.ceil() 答案:C 11阅读下面的程序: public class test {

public static void main(String args[]) { int i;

float f = 2.3f;

double d = 2.7;

i = ((int)Math.ceil(f)) * ((int)Math.round(d)); System.out.println(i); }

} 程序执行后,运行结果为以下哪个选项? A.9 B.5 C.6 D.6.1 答案:A 12先阅读下面的程序片段: String str1=new String(\ String str2=new String(\

StringBuffer str3=new StringBuffer(\

对于上述定义的变量,以下表达式的值为true的是哪个?

A.str1==str2; B.str1.equals(str2); C.str1==str3; D.以上都不对 答案:B 13以下选项中,哪个流中使用了缓冲区技术?

A.BuffereOutputStream B.FileInputStream C.DataOutputStream D.FileReader 答案:A 14以下选项中,哪个是FileOutputStream的父类?

A.File B.FileOutput C.OutputStream D.InputStream 答案:C 15在以下哪种情况下,线程进入就绪状态?

A.线程调用了sleep()方法时 B.线程调用了join()方法

C.线程调用了yield()方法时 D.线程调用了notify()方法 答案:D 16线程调用sleep()方法后,该线程将进入以下哪种状态?

A.就绪状态 B.运行状态 C.阻塞状态 D.死亡状态 答案:C 17处理ActionEvent事件的监听器对象需要实现哪个接口( )

A.ActionListener B.KeyListener C.KeyEvent D.KeyAdapter 答案:A 18JTextField的构造方法中,方法JTextField(String text,int column)的作用是()

A.创建一个空的文本框,初始字符串为nullB.创建一个具有指定列数的文本框,初始字符串为nullC.创建一个显示指定初始字符串的文本框D.创建一个具有指定列数、并显示指定初始字符串的文本框 答案:D

19MouseEvent类中定义了很多常量来标识鼠标动作,其中表示鼠标中键点击事件的常量是()A.BUTTON3 B.BUTTON2 C.BUTTON1 答案:B

20若想实现JRadioButton按钮之间的互斥,需要使用( )类 A.ButtonGroup B.JComboBox C.AbstractButton 答案:A

21JMenu中用于返回指定索引处的菜单项,第一个菜单项的索引为0的方法是() A.int getItemCount() B.void JMenuItem insert(JMenuItem menuItem,int pos) C.void addSeparator() D.JMenuItem getItem(int pos) 答案:D 22JScrollPane提供的方法中,用于指定水平滚动条策略,即水平滚动条何时显示在滚动面板上的方法是()

A.void setHorizontalBarPolicy(int policy) B.void setVerticalBarPolicy(int policy) C.void setViewportView(Component view) 答案:A

23在CardLayout布局管理中,用于显示parent容器的前一张卡片的方法是( ) A.void previous(Container parent) B.void show(Container parent,String name) C.void next(Container parent) D.void first(Container parent) 答案:A解析:在CardLayout布局管理中,用于显示parent容器的前一张卡片的方法是 void previous(Container parent)

24下列选项中,关于 GridLayout(网格布局管理器)的说法错误的是( )

A.GridLayout布局管理器可以设置组件的大小

B.放置在GridLayout布局管理器中的组件将自动占据网格的整个区域

C.GridLayout布局管理器中,组件的相对位置不随区域的缩放而改变,但组件的大小会随之改变,组件始终占据网格的整个区域

D.GridLayout布局管理器缺点是总是忽略组件的最佳大小,所有组件的宽高都相同

答案:A解析:GridLayout布局管理器不可以设置组件的大小,组件会自动占据网格的整个区域

25GridLayout 的三个构造方法中,能够指定容器的行数和列数以及组件之间的水平、垂直间距的是( )

A.GridLayout() B.GridLayout(int rows,int cols) C.GridLayout(int rows,int cols,int hgap,int vgap)

答案:C解析:GridLayout 的三个构造方法中,能够指定容器的行数和列数以及组件之间的水平、垂直间距的是 GridLayout(int rows,int cols,int hgap,int vgap) 26在GridBagConstraints类的常用属性中,用于设置组件在容器中的水平方向和垂直方向的权重的是( )

A.fill B.gridwidth和gridheight C.gridx和 gridy D.weightx和weighty 答案:D解析:weightx和weighty用于设置组件在容器中的水平方向和垂直方向的权重。 27下列是事件监听机制的四个步骤,请对下列步骤进行排序,使事件源实现了事件的监听机制( )

① 定义一个类实现事件监听器的接口 ② 为事件源注册事件监听器对象

③ 事件监听器调用相应的方法来处理相应的事件 ④ 创建一个事件源

A.①④②③ B.①③④② C.④①②③ D.④②①③

答案:A解析:首先需要定义一个类实现事件监听器的接口,例如Window类型的窗口需要实现WindowListener。接着通过addWindowListener()方法为事件源注册事件监听器对象,当事件源上发生事件时,便会触发事件监听器对象,由事件监听器调用相应的方法来处理相应的事件

28下列选项中,关于流式布局管理器(FlowLayout)的说法错误的是( ) A.在流式布局下,当到达容器的边界时,会自动将组件放到下一行的开始位置 B.FlowLayout布局管理器的特点就是可以将所有组件像流水一样依次进行排列

C.流式布局管理器是最简单的布局管理器 D.流式布局管理器将容器划分为五个区域 答案:D解析:流式布局管理器不可以给容器划分区域 29标准输入流对应的类型是()

A.InputStreamReader B.InputStream C.DataInputStream D.FileInputStream 答案:B解析:标准输入流对应的类型是InputStream,字节输入流 30标准输出流对应的类型是()

A.ObjectOutputStream B.FilterOutputStream C.PrintStream D.FileOutputStream 答案:C 解析:out为PrintStream类型,它是标准输出流,默认将数据输出到命令行窗口 31下列选项中,关于ByteArrayOutputStream类的描述正确的是?( ) A.ByteArrayOutputStream流中缓冲区的大小不能被定义

B.ByteArrayOutputStream流关闭后仍可被调用,并且不会产生任何IOException C.ByteArrayOutputStream流关闭后不能被使用,否则抛出IOException D.ByteArrayOutputStream流必须与ByteArrayInputStream流配对使用