收藏 分销(赏)

Java复习参考题.doc

上传人:仙人****88 文档编号:11958755 上传时间:2025-08-22 格式:DOC 页数:14 大小:311.54KB 下载积分:10 金币
下载 相关 举报
Java复习参考题.doc_第1页
第1页 / 共14页
Java复习参考题.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
说明:这是互联网1班的机密文档,不要随意外传,这里面的内容可能有些错误的,欢迎各位对这个文档进行修改,编程题有更好的方法的,也可以进行修改的了。最后成为完美的。这份文档仅供学习参考,不要只记答案,把原理搞明白啊。 一些解释和填代码为蓝色或红色字体,希望好好看看,如果有修改的,在群里说或者自己发个修正版文档。 题型及分数: 单项选择题 (每小题2分,共30分) 程序填空(每题5分,共20分) 阅读程序(每小题10分,共20分) 编程题(每小题10分,共30分) 一、 选择题 1、JAVA中提供了多种布局对象类。其中使用卡片式布局的是( D  )。 A.FlowLayout (流式布局) B.BoederLayout (围界布局 顶层容器默的) C.BoxLayout (盒子布局 是swing的) D.CardLayout(卡片布局) 补充:GridLayout(网格布局) 2、Swing与AWT的区别不包括 ( D )。 A.Swing是由纯Java实现的轻量级构件 B.Swing没有本地代码 C.Swing不依赖操作系统的支持 D.Swing支持图形用户界面 (都是支持的) 3、下列哪个选项是创建一个标识有"关闭"按钮的语句?( C ) A.JTextField b = new JtextField("关闭"); (文本框) B.JTextArea b = new JTextArea("关闭"); (文本域) C.JButton b = new Jbutton("关闭"); (按钮) D.JCheckbox b = new Jcheckbox("关闭"); (复选框) 补充:JPasswordField(口令输入域)、JLabel(标签) 、JComboBox(组合框) JList(列表框) 、JTable(表格) 、JMenu(菜单)、JDialog(对话框) JOptionPane(标准对话框)、JFileChooser(文件对话框) 4、鼠标事件的监听器接口MouseListener能实现的事件不包括( D )。 A.按下 B.释放 C.点击 D.拖动 补充:还有的是进入和离开事件 窗口事件包括:关闭窗体、窗体失去焦点、获得焦点、最小化等 键盘事件包括:按下键盘按键、放开键盘按键、敲击键盘按键 5、每个使用Swing组件的程序必须至少有一个( B  )。 A. 按钮 B. 顶层容器 C. 标签 D. 菜单 6、在Java中,而无需在程序中用import导入的包是( D  )。 A.java.applet B.java.awt C.java.util D.Java.lang (默认的) 7、类Panel默认的布局管理器是(  C )。 A.GridLayout    B.BorderLayout  (顶层容器默认的) C.FlowLayout   (Panel面板默认的) D.CardLayout 8、java中用于创建文件对象的类是( A  )。 A.File (文件) B. Object (对象) C. Thread (线程) D. Frame (框架) 9、下列描述中,正确的是(  C )。 A.在Serializable接口中定义了抽象方法 B.在Serializable接口中定义了常量 C.在Serializable接口中没有定义抽象方法,也没有定义常量 D.在Serializable接口中定义了成员方法 10、在读文件a.dat 时,能使用该文件名作为参数进行实例化的类是( D )。 A.BufferedReader BufferedReader(Reader in) B.DataInputStream DataInputStream(InputStream in) C.DataOutputStream DataOutputStream(OutputStream out) D.FileInputStream FileInputStream(File file) 11、凡是从中央处理器流向外部设备的数据流称为(  D )。 A.文件流 B.字符流 C.输入流 D.输出流 12、当线程被创建后,调用start()方法之前,其所处的状态是( C )。 A.阻塞状态 B.运行状态 (run) C.就绪状态 D.新建状态(new) 13、下面哪个关键字可以对对象加互斥锁。( A ) A.synchronized B.transient C.serialize D.static 14、为了得到当前正在运行的线程,可使用下列哪个方法?( B )。 A.getName() (获得名字) B.Thread.CurrentThread(). B.sleep() (睡眠) D.run() (运行) 15、ServerSocket的监听方法accept()的返回值类型是( C ) A.void B.Object C.Socket D.DatagramSocket 16、当使用客户端套接字Socket创建对象时,需要指定( A ) A.服务器主机名称和端口 B.服务器端口和文件 C.服务器名称和文件 D.服务器地址和文件 17、若要取得数据包的中源地址,可使用下列哪个方法?( A ) A.getAddress() B.getPort() C.getName() (源文件名) D.getData() (日期) 18、程序与数据库连接后,需要查看某个表中的数据,使用下列哪个语句?( A ) A.executeQuery();(记录查询)B.executeUpdate(); (记录操作) C.executeEdit(); D.executeSelect(); 二、程序填空 1.下面程序实现如下界面:   import java.awt.*; class Qualification extends Frame {     Checkbox t1=new Checkbox("Visual Basic");     Checkbox t2=new Checkbox("Visual C++");     Checkbox t3=new Checkbox("Java");     CheckboxGroup cg = new CheckboxGroup(); //复选框的组     Checkbox r1=new Checkbox("专科",cg,false);     Checkbox r2=new Checkbox("本科",cg,false);     Checkbox r3=new Checkbox("硕士",cg,false);     Checkbox r4=new Checkbox("博士",cg,false);     Label lb1=new Label("您的学历为:" );     Label lb2=new Label("您精通的语言为:" ); public Qualification(String s ) { super(s); setLayout(new GridLayout(10, 1)); //设置为网格布局10行一列     add(lb1); add(r1);add(r2);add(r3);add(r4); add(lb2); add(t1);add(t2);add(t3);    }      public static void main(String args[]) {       Qualification q=new  Qualification("学识!");      //new 一个新对象q 标题是“学识!”    q.setSize(400,250);         q.show( );     }  } 补充:这个程序主要是图形界面的基础,知道一些布局,知道一些组件使用方法,这些就差不多了。这个程序有点问题。程序网上地址: 2.下面程序从mytest.txt文件中读取字符,将读到的文字列在TextArea里面。 import java.awt.*; import java.io.*; public class BufferedReaderTest extends Frame {   public static void main(String args[]) {   String str;   BufferedReaderTest test=new BufferedReaderTest();   TextArea ta=new TextArea();   try {   //建立一个BufferedReader流读取文件            BufferedReader breader=new BufferedReader(new FileReader(mytext.txt)); //对象要是文件            while(true) {                     str=breader.readLine();     //读取一行文字                      if(str==null)     //读到文件结尾                           break;                      ta.append(str+"\n");     //将读到的文字列在TextArea里面                 }   }   catch(IOException e) {     //捕获是否为文件未找到异常      }   test.add(ta,BorderLayout.CENTER);   test.setSize(500,200);   test.setVisible(true);   } } //这是一道IO流的题目,要注意一些流的基本语法,而且要记住捕获的是IO异常 3.下面程序实现了文件拷贝功能,从file1.txt 把文字复制到file2.txt。   import java.io.*; public class filestream {  public static void main(String args[]){ try{               File inFile=new File(file1.txt); //源文件             File outFile=new File(file2.txt);//新文件       FileInputStream fis=new  FileInputStream(inFile);      FileOutputStream fos=new FileOutputStream(outFile);             int c;              while((c=fis.read())!=-1)  fos.write(c); //新文件时写的,源文件是读的             fis.close(); fos.close();   }        catch(FileNotFoundException e) {            System.out.println("FileStreamsTest: "+e); }        catch(IOException e) {             System.err.println("FileStreamsTest: "+e);}} } 注意:文件读写流要注意,源文件是用来读(read)的,新文件用来写(write)的,不要弄错的了。 4.下面程序使用Swing设计一个窗口,窗口标题是“HelloSwing”,窗口包含一个标签“你好,Swing”。   import javax.swing.*;        public class HelloSwing {  public static void main(String[] args) {    JFrame frame = new JFrame(“HelloSwing”); //这个是窗体    JLabel label = new JLabel(“你好,Swing”); //这个是标签   frame.getContentPane().add(label);             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    frame.setSize(300,200); //设置窗体大小    frame.setVisible(true);  } } 三、读程序写结果 1、import java.io.*;   public class CharInput   {      public static void main(String args[]) throws java.io.IOException   {      String s;      inputStreamReader ir;      BufferedReader in;      ir=new inputStreamReader(System.io);      in=new BufferedReader ir);      while ((s=in. readLine())!=null)      {        System.out.println(“Read;”+s);      }   } } 输出结果为:Read:+(s的内容,就是键盘输入的) 2、import java.io.*;   import java.util.Date;   public class UnSerializeDate   { UnSerializeDate()  {    Date d=null;    try    {      FileInputStream f=new         FileInputStream (“date.ser”);      ObjectInputStream s=new          ObjectInputStream(f);      d=(Date) s.readObject();      f.close();     }    catch(Exception e)    {      e.printStackTrace();     }     System.out.println(“Unserialized Date object from date.set”);      System.out.println(“Date:”+d);     }     public static void main(String args[])     {       new UnSerializeDate();      }      } 结果:会把date.ser文件里的内容读出来 补充:这个程序如何传参的: 这个程序中main方法中没有传参数。 而FileInputStream f = new FileInputStream ("date.ser");在构造的时候,其中参数"date.ser"是与这个程序在同一个目录下的一个文件的名字。这样就可以通过 f 来读这个文件中的内容。 而ObjectInputStream s = new ObjectInputStream (f); 这个是对象的反序列化,就是可以把一“序列化”到文件中的对象读出来。 四、程序设计 1、编写一个Java程序实现多线程,在线程中输出线程的名字,隔300毫秒输出一次,共输出20次。 源代码: public class si1 extends Thread{ public static void main(String[] args) { Thread[] si = new Thread[20]; //线程创建 for(int i = 0; i <20; i++) { //为了次数的限制 si[i] = new Thread(); si[i].start(); //线程就绪 System.out.println(si[i].getName()); System.out.println("线程睡眠300毫秒"); try { Thread.sleep(300); //线程睡眠 } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } } } 2. 编写程序,在屏幕上显示带标题的窗口,并添加一个按钮。当用户单击按钮时,结束程序。 源代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class si2 { private JFrame loginFrame = null; private JPanel loginPanel = null; private JPanel buttonPanel = null; private JButton submit = null; private void init() { loginFrame = new JFrame("退出"); loginPanel = new JPanel(); buttonPanel = new JPanel(); submit = new JButton("退出"); loginFrame.setLayout(new GridLayout(3,1)); loginFrame.add(buttonPanel); buttonPanel.add(submit); submit.addActionListener(new ButtonListener()); loginFrame.pack(); loginFrame.setLocation(400, 300); loginFrame.setSize(500,300); loginFrame.setVisible(true); loginFrame.setAlwaysOnTop(true); } private class ButtonListener implements ActionListener { //监听按钮的 public void actionPerformed(ActionEvent event) { String command = event.getActionCommand(); if("退出".equals(command)) { System.exit(0); } } } public static void main(String[] args) { new si2().init(); } } 3. 编写程序实现窗口,包含一个标签、一个文本框和一个按钮,当用户单击按钮时,程序把文本框中的内容复制到标签中。 源代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class si3 { private JFrame loginFrame = null; private JPanel loginPanel = null; private JPanel wenziPanel = null; private JPanel biaoPanel = null; private JPanel buttonPanel = null; private JTextField wenziField = null; private JLabel wenziLabel = null; private JButton submit = null; private void init() { loginFrame = new JFrame("复制界面"); loginPanel = new JPanel(); wenziPanel = new JPanel(); biaoPanel = new JPanel(); buttonPanel = new JPanel(); wenziField = new JTextField(15); wenziLabel = new JLabel("准备复制"); submit = new JButton("复制"); loginFrame.setLayout(new GridLayout(3,1)); loginFrame.add(wenziPanel); loginFrame.add(biaoPanel); loginFrame.add(buttonPanel); biaoPanel.add(wenziLabel); wenziPanel.add(wenziField); buttonPanel.add(submit); submit.addActionListener(new ButtonListener()); loginFrame.pack(); loginFrame.setLocation(400, 300); loginFrame.setSize(500,300); loginFrame.setVisible(true); loginFrame.setAlwaysOnTop(true); } private class ButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { String command = event.getActionCommand(); String str= wenziField.getText(); if("复制".equals(command)) wenziLabel.setText(str); } } public static void main(String[] arg) { new si3().init(); } } 4. 使用Socket技术,编写服务器端和客户端程序,实现服务器端和客户端的通信。服务器端接受客户端发送来的信息并回显,直到客户端发送结束标记END;客户端向服务器发送信息,并接受服务器端返回来的消息,并且回显。 源代码: 客户端: import java.io.*; import .*; import java.util.*; public class SocketClientTest { public static void main(String[] args) { try { Socket clientSocket = new Socket("localhost", 1688); InputStream inData = clientSocket.getInputStream(); OutputStream outData = clientSocket.getOutputStream(); PrintWriter toServer = new PrintWriter(outData, true); Scanner sc = new Scanner(System.in); Scanner data = new Scanner(inData); String heading = data.nextLine(); System.out.println(heading); while (sc.hasNextLine()) { String line = sc.nextLine(); toServer.println(line); String fromServer = data.nextLine(); System.out.println(fromServer); if (fromServer.equals("Bye!")) { System.out.println("Stop..."); break; } } clientSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } 服务器: import java.io.*; import .*; import java.util.*; public class SocketServerTest { public static void main(String[] args) { System.out.println("欢迎来,服务器已启动了啊!....."); try { ServerSocket server = new ServerSocket(1688); Socket fromClient = server.accept(); System.out.println("Connected to the client...."); InputStream inData = fromClient.getInputStream(); OutputStream outData = fromClient.getOutputStream(); PrintWriter toClient = new PrintWriter(outData, true); toClient.println("服务器:Begin。。。"); Scanner data = new Scanner(inData); while (data.hasNextLine()) { String line = data.nextLine(); if (line.equalsIgnoreCase("END")) { server.close(); toClient.println("Bye!"); break; } toClient.println("服务器为您服务!"); } } catch (IOException e) { e.printStackTrace(); } } } 运行结果: 启动服务器: 启动客户端: 对话:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服