收藏 分销(赏)

《Java基础入门》-课后习题答案.pdf

上传人:人****来 文档编号:4313914 上传时间:2024-09-05 格式:PDF 页数:24 大小:298.71KB
下载 相关 举报
《Java基础入门》-课后习题答案.pdf_第1页
第1页 / 共24页
《Java基础入门》-课后习题答案.pdf_第2页
第2页 / 共24页
《Java基础入门》-课后习题答案.pdf_第3页
第3页 / 共24页
《Java基础入门》-课后习题答案.pdf_第4页
第4页 / 共24页
《Java基础入门》-课后习题答案.pdf_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、Java 基础入门基础入门课后习题答案课后习题答案第第 1 章章 Java 开发入门开发入门一、填空题一、填空题1、Java EE、Java SE、Java ME2、JRE3、javac4、bin5、path、classpath二、选择题二、选择题1、ABCD2、C3、D4、B5、B三、简答题三、简答题1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。2、JRE(Java Runtime Environment,Java 运行时环境),它相当于操作系统部分,提供了 Java 程序运行时所需要的基本条件和许多 Java 基础类,例如,IO 类、GUI 控件类、网络类等。JRE

2、 是提供给普通用户使用的,如果你只想运行别人开发好的 Java 程序,那么,你的计算机上必须且只需安装 JRE。JDK(Java Development Kit,Java 开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给 Java 开发人员使用的。初学者学习和使用 Java 语言时,首先必须下载和安装 JDK。JDK 中已经包含了 JRE 部分,初学者安装 JDK 后不必再去下载和安装 JRE 了。四、编程题四、编程题public class HelloWorld public static void main(String args)System.

3、out.println(这是第一个 Java 程序!);第第 2 章章 Java 编程基础编程基础一、填空题一、填空题1、class2、true 和 false3、单行注释、多行注释、文档注释4、基本数据类型、引用数据类型5、1、2、4、86、&|7、08、59、3410、56 二、判断题二、判断题1、错2、对3、错4、对5、错三、选择题三、选择题1、AD2、AD3、C4、ABCD 5、C6、A7、AC8、A9、B10、A 四、程序分析题四、程序分析题1、编译不通过。int 值 4 和 b 相加时,由于变量 b 的类型为 byte,取值范围没有 int 类型大,存不下int 类型的值,因此编译

4、不通过。2、编译不通过。这是因为 y 是在最里层的代码块中定义的一个变量,只有在那个代码块中才可使用,在使用 y=x;语句时已经超过了 y 变量的作用域,所以编译无法通过。3、打印结果为:3。4、打印结果为:9 8 7五、简答题五、简答题1、Java 语言的八种基本数据类型有:byte 字节型,占一个字节。short 短整型,占两个字节。int 整型,占 4 个字节。long 长整型,占 8 个字节。float 单精度浮点型,占 4 个字节。double 双精度浮点型,占 8 个字节。char 字符型,占两个字节。boolean 型,表示逻辑值,有 true 和 false 两个值,分别占一个

5、字节。2、如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&”进行连接,当“&”左边的表达式为 false,则不会执行其右边的表达式。例如定义 int x=2,y=0;boolean b=x 0 表达是会发生被 0 除异常,因为 x/y 的表达式执行了。而 boolean b=x 0 是不会出现这种异常的,因为 x y 为 false,表达式 x/y 不会执行。3、方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM 会根据实际参数的不同绑定到不同的方法。六、编程题六、编程题1、参考答

6、案public class Test01 public static void main(String args)int sum=0;for(int i=1;i 0)y=x+3;else if(x=0)y=0;else y=x*x-1;return y;3、参考答案public class Test03 public static void main(String args)int arr=25,24,12,76,101,96,28;for(int i=0;i arr.length-1;i+)/定义内层循环for(int j=0;j arrj+1)/比较相邻元素/下面的三行代码用于交换两个元素

7、int temp=arrj;arrj=arrj+1;arrj+1=temp;for(int i=0;i 10)throw new NoThisSongException(您播放的歌曲不存在);System.out.println(正在播放歌曲);public class Test03 public static void main(String args)Player player=new Player();try player.play(13);catch(NoThisSongException e)System.out.println(异常信息为:+e.getMessage();第第 5

8、章章 多线程多线程一、填空题一、填空题1、线程、通信2、Thread、Runnable3、就绪4、synchronized、对象、this5、进程6、新建状态(New)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、死亡状态(Terminated)7、10、18、开启一个新线程、run()方法9、wait()、notify()、notifyAll()10、setDaemon(true)、start()二、判断题二、判断题1、错 2、对 3、对 4、错 5、错三、选择题三、选择题1、B 2、AC 3、ABC 4、BC 5、ABD 6、ABC 7、C 8、D

9、 9、AB 10、ABCD四、程序分析题四、程序分析题1、程序不能编译通过,因为 RunHandler 类没有实现 Runnable 接口,因此 RunHandler 的实例对象不能作为参数传递给 Thread 的构造方法。2、程序不能编译通过,因为 Thread 的子类 A 重写的 run()方法的访问级别不能低于父类 run()方法的。访问级别3、程序不能编译通过,因为同步方法中调用 wait()方法的对象必须为同步锁对象。4、t.start();五、简答题五、简答题1、一种是继承 java.lang 包下的 Thread 类,覆写 Thread 类的 run()方法,在 run()方法中

10、实现运行在线程上的代码。new Thread()public void run().start();另一种就是实现 java.lang.Runnable 接口,同样是在 run()方法中实现运行在线程上的代码。new Thread(new Runnable()public void run().start()2、调用 sleep()方法,正在执行的线程主动让出 CPU 去执行其他线程,在 sleep()方法指定的时间过后,CPU 才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep()方法并不会释放锁,即使当前线程使用 sleep()方法让出了 CPU,但其它被同步锁挡住了的线

11、程也无法得到执行。wait()在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行。当其它线程调用了 notify()方法后,调用 wait()方法的线程就会解除 wait 状态,当再次获得同步锁后,程序可以继续向下执行。六、编程题六、编程题1、参考答案public class MyThread extends Threadpublic MyThread(String name)super(name);public void run()System.out.println(this.getName();public static vo

12、id main(String args)new MyThread(Thread1).start();new MyThread(Thread2).start();2、参考答案public class MyRunnable implements Runnable public void run()for(int i=0;i 50;i+)System.out.println(new);public static void main(String args)new Thread(new MyRunnable().start();for(int i=0;i 100;i+)System.out.print

13、ln(main);3、参考答案public class Test01 public static void main(String args)Teacher t=new Teacher();new Thread(t,陈老师).start();new Thread(t,高老师).start();new Thread(t,李老师).start();class Teacher implements Runnable private int notes=80;public void run()while(true)dispatchNotes();/调用售票方法if(notes 0)try Thread

14、.sleep(10);/经过的线程休眠 10 毫秒 catch(InterruptedException e)e.printStackTrace();System.out.println(Thread.currentThread().getName()+-发出的笔记+notes-);4、参考答案public class Accumulator extends Thread private int stratNum;public static int sum;public Accumulator(int startNum)this.stratNum=startNum;public static

15、synchronized void add(int num)sum+=num;public void run()int sum=0;for(int i=0;i 10;i+)sum+=stratNum+i;add(sum);public static void main(String args)throws Exception Thread threadList=new Thread10;for(int i=0;i 10;i+)threadListi=new Accumulator(10*i+1);threadListi.start();for(int i=0;i=0;i-)if(chi=A&c

16、hi=a&chi=z)buffer.append(String.valueOf(chi).toUpperCase();System.out.println(buffer.toString();2、参考答案import java.text.DateFormat;import java.util.Calendar;import java.util.Date;public class Test02 public static void main(String args)Calendar calendar=Calendar.getInstance();calendar.add(Calendar.DAT

17、E,100);Date date=calendar.getTime();DateFormat format=DateFormat.getDateInstance(DateFormat.FULL);String string=format.format(date);System.out.println(string);3、参考答案import java.util.Random;public class Test03 public static void main(String args)Random rand=new Random();int num=new int5;for(int i=0;i

18、 num.length;i+)numi=20+rand.nextInt(31);System.out.println(numi);第第 7 章章 集合类集合类一、填空题一、填空题1、集合2、Comparator3、有序、可重复,无序、不可重复4、hashNext()、next()5、Collection、Map6、键、值7、ListIterator8、ArrayList、LinkedList,HashSet、TreeSet,HashMap、TreeMap9、put()、get()10、Collections、Arrays二、判断题二、判断题1、错 2、对 3、对 4、错 5、对三、选择题三、选

19、择题1、BC 2、A 3、D 4、ABD 5、C 6、AB 7、D 8、AB 9、ABC 10、B四、程序分析题四、程序分析题1、程序可以编译通过,输出结果是“a、b、c”,因为 TreeSet 集合不允许存放重复元素,第 2 次增加的元素 c 会覆盖之前存入的元素 c,所以输出结果是“a、b、c”,而不是“a、b、c、c”。2、程序不可以编译通过,这是由于向 ArrayList 集合中存入元素时,集合并不能记住元素的类型,因此在取出元素时,只能使用 Object 类型,而不能使用 String 类型。3、程序可以编译通过,但是什么也没有打印。使用 ListIterator 进行从后向前的遍历

20、集合,可以使用以下两种方法,一是使用 listIterator(int index)方法将索引 index 的值设置为集合元素的数目,也就是 ListIterator it=list.listIterator(3);,二是将程序先从前向后遍历,然后再从后向前遍历。4、程序编译不通过,由于 Map 集合在遍历的过程中不能使用集合对象本身删除元素,这会导致并发修改异常,若想删除集合中的元素,可以使用 Iterator 的 remove()方法。五、简答题五、简答题1、为了使程序能方便的存储和操作数目不固定的一组数据,JDK 提供了一套类库,这些类都位于 java.util 包中,统称为集合。集合框

21、架中包含 3 个接口,分别是 List、Set、Map。2、List 的特点是元素有序、元素可重复。List 接口的主要实现类有 ArrayList 和 LinkedList。Set 的特点是元素无序、元素不可重复。Set 接口的主要实现类有 HashSet 和 TreeSet。Map 的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map 接口的主要实现类有HashMap 和 TreeMap。3、Collection 是一个单例集合接口。它提供了对集合对象进行基本操作的通用方法。Collections 是一个工具类。它包含各种有关集合操作的方法。六、编程题六、

22、编程题1、参考答案import java.util.*;public class Test01 public static void main(String args)ArrayList list=new ArrayList();for(int i=0;i 10;i+)list.add(A+i);Iterator it=list.iterator();while(it.hasNext()Object obj=it.next();System.out.println(obj);2、参考答案import java.util.*;public class Test02 public static v

23、oid main(String args)HashSet hashSet=new HashSet();Person p1=new Person(Jack,25);Person p2=new Person(Rose,23);Person p3=new Person(Jack,27);hashSet.add(p1);hashSet.add(p2);hashSet.add(p3);for(Object obj:hashSet)Person p=(Person)obj;System.out.println(p.name+:+p.age);class PersonString name;int age;

24、public Person(String name,int age)super();this.name=name;this.age=age;public int hashCode()return name.hashCode();public boolean equals(Object obj)if(this=obj)return true;if(obj=null)return false;Person other=(Person)obj;return other.name.equals(this.name);3、参考答案import java.util.*;public class Test0

25、3 public static void main(String args)TreeMap map=new TreeMap(new MyComparator();map.put(1,Lucy);map.put(2,Lucy);map.put(3,John);map.put(4,Smith);map.put(5,Amanda);for(Object key:map.keySet()System.out.println(key+:+map.get(key);class MyComparator implements Comparator public int compare(Object obj1

26、,Object obj2)String ele1=(String)obj1;String ele2=(String)obj2;return pareTo(ele1);第第 8 章章 IO(输入输出)(输入输出)一、填空题一、填空题1、字节流、字符流2、File、java.io3、SequenceInputStream4、RandomAccessFile5、管道流6、LineNumberReader、BufferedReader、setLineNumber(int)、getLineNumber()7、字节流、字符流8、PrintStream、setOut(PrintStream out)9、Un

27、icode10、newLine()二、判断题二、判断题1、错 2、对 3、对 4、对 5、错 三、选择题三、选择题1、AB 2、C 3、C 4、ABCD 5、AB 6、ACD 7、A 8、A 9、D 10、A四、程序填空题四、程序填空题 1、InputStreamReader、br.readLine()、运行结果为 22、FileInputStream(file1)、FileOutputStream、fis.available()五、问答题五、问答题1、Java 程序通过流来完成输入和输出,流是输入或输出信息的抽象。流通过 Java 的输入/输出系统与外设连接进行数据通信。流是抽象的对象,具体

28、实现代码在 java.io 包中。2、字节流的两个基类是 InputStream 和 OutputStream,字符流的两个基类是 Reader 和 Writer,它们都是 Object 类的直接子类,字节流是处理以 8 位字节为基本单位的字节流类;Reader 和 Writer 类是专门处理 16 位字节的字符流类。3、管道流分为管道输入流(PipedInputStream)和管道输出流(PipedOutputStream),通常由一个PipedInputStream 实例对象和一个 PipedOutputStream 实例对象相互连接而实现管道通信,PipedOutputStream 向管

29、道写入数据,PipedInputStream 从管道中读取 PipedOutputStream 写入的数据,管道流主要用来完成线程之间的通信。六、编程题六、编程题 1、参考答案import java.io.*;public class Test01 public static void main(String args)throws Exception/字节流拷贝FileInputStream in=new FileInputStream(E:/src.txt);FileOutputStream out=new FileOutputStream(E:/des1.txt);byte buf=ne

30、w byte1024;int len;while(len=in.read(buf)!=-1)out.write(buf,0,len);in.close();out.close();/字符流拷贝BufferedReader bf=new BufferedReader(new FileReader(E:/src.txt);BufferedWriter bw=new BufferedWriter(new FileWriter(E:/des2.txt);String str;while(str=bf.readLine()!=null)bw.write(str);bw.newLine();bf.clos

31、e();bw.close();2、参考答案import java.io.*;public class Test02 public static void main(String args)throws Exception BufferedReader br=new BufferedReader(new InputStreamReader(System.in);String password=;boolean b=false;for(int i=0;i 5;i+)System.out.println(请输入密码:);password=br.readLine();if(password.equal

32、s(123456)System.out.println(恭喜你进入游戏);b=true;break;if(!b)System.out.println(密码错误,游戏结束);System.exit(0);第第 9 章章 GUI(图形用户界面)(图形用户界面)一、填空题一、填空题1、GUI、java.awt、javax.swing2、适配器3、Graphics4、事件监听器5、JComponent 6、窗体事件、键盘事件、鼠标事件、动作事件7、WindowListener、windowClosing(WindowEvent e)8、模态对话框、非模态对话框 9、setLayout(null)10、

33、JMenuBar、JMenu、JMenuItem二、判断题二、判断题1、对 2、错 3、对 4、错 5、错 三、选择题三、选择题1、D 2、D 3、ABD 4、A 5、D 6、ABCD 7、ABD 8、ABC 9、D 10、C四、程序分析题四、程序分析题1、参考答案extends Stdno=new JTextField();Name=new JTexxtField();2、参考答案card.next(cp);cp.add(jbt);五、简答题五、简答题1、参考答案通过实现 XxxListener 接口或者继承 XxxAdapter 类实现一个事件监听器类,并对处理监听动作的方法进行重写创建事

34、件源对象和事件监听器对象调用事件源的 addXxxLisntener()方法,为事件源注册事件监听器对象2、参考答案AWT 是 Abstract Window ToolKit(抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口。AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,当我们利用 AWT 来构件图形用户界面的时候,我们实际上是在利用操作系统所提供的图形库。由于不同操作系统的图形库所提供的功能是不一样的,在一个平台上存在的功能在另外一个平台上则可能不存在。为了实现 Java 语言所宣称的一次编译,到处运行的概念,AWT 不得不通过牺牲功能来实现其

35、平台无关性,也就是说,AWT 所提供的图形功能是各种通用型操作系统所提供的图形功能的交集。由于 AWT 是依靠本地方法来实现其功能的,我们通常把 AWT 控件称为重量级控件。Swing 是在 AWT 的基础上构建的一套新的图形界面系统,它提供了 AWT 所能够提供的所有功能,并且用纯粹的 Java 代码对 AWT 的功能进行了大幅度的扩充。由于在 Swing 中没有使用本地方法来实现图形功能,我们通常把 Swing 控件称为轻量级控件。AWT 和 Swing 之间的基本区别:AWT 是基于本地方法的 C/C+程序,其运行速度比较快;Swing 是基于 AWT 的 Java 程序,其运行速度比较

36、慢。对于一个嵌入式应用来说,目标平台的硬件资源往往非常有限,而应用程序的运行速度又是项目中至关重要的因素。在这种矛盾的情况下,简单而高效的 AWT 当然成了嵌入式 Java 的第一选择。而在普通的基于 PC 或者是工作站的标准 Java应用中,硬件资源对应用程序所造成的限制往往不是项目中的关键因素,所以在标准版的 Java 中则提倡使用 Swing,也就是通过牺牲速度来实现应用程序的功能。六、编程题六、编程题1、参考答案import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyMouseHandl

37、er extends JFrame public MyMouseHandler()final JLabel label=new JLabel(此处显示鼠标右键点击的坐标);label.setOpaque(true);label.setBackground(Color.PINK);this.add(label,BorderLayout.NORTH);this.setSize(300,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.addMouseListener(new MouseAdapter()public void

38、 mouseClicked(MouseEvent e)if(e.getButton()=e.BUTTON1)int x=e.getX();int y=e.getY();String banner=鼠标当前点击位置的坐标是+x+,+y;label.setText(banner););this.setVisible(true);public static void main(String args)new MyMouseHandler();2、参考答案import java.awt.*;import java.util.*;import javax.swing.*;import java.awt.

39、event.*;public class Information extends JFrame/窗口 NORTH 部的 JPanel 面板 private JPanel panel=new JPanel();/爱好标签private JLabel lb1=new JLabel(爱好);/三个表示爱好的 JCheckBox 复选框private JCheckBox cb1=new JCheckBox(羽毛球);private JCheckBox cb2=new JCheckBox(乒乓球);private JCheckBox cb3=new JCheckBox(唱歌);/性别标签private

40、JLabel lb2=new JLabel(性别);/表示性别的 JRadioButton 单选框private JRadioButton rb1=new JRadioButton(男);private JRadioButton rb2=new JRadioButton(女);/ButtonGroup 添加 JRadioButton,实现单选功能private ButtonGroup bg=new ButtonGroup();/文本域组件private JTextArea area=new JTextArea();/窗口 CENTER 部的 JScrollPane 面板,其中放置 area 文

41、本域 private JScrollPane pane=new JScrollPane(area);/Set 集合存放选中的兴趣private Set hobbies=new HashSet();/gender 选中的性别private String gender=;/JCheckBox 复选框的事件监听器private ActionListener listener1=new ActionListener()public void actionPerformed(ActionEvent e)JCheckBox cb=(JCheckBox)e.getSource();/选中的复选框把文本添加到

42、 Set 集合中if(cb.isSelected()hobbies.add(cb.getText();/反之从集合中移除 else hobbies.remove(cb.getText();print();/JRadioButton 单选框的事件监听器private ActionListener listener2=new ActionListener()public void actionPerformed(ActionEvent e)JRadioButton jb=(JRadioButton)e.getSource();gender=jb.getText();print();/打印方法pri

43、vate void print()/清空文本域area.setText();/如果 Set 集合中有元素,打印兴趣if(hobbies.size()0)area.append(你的兴趣爱好有:);Iterator it=hobbies.iterator();while(it.hasNext()area.append(it.next()+);/如果 gender 不为空字符串,打印性别if(!.equals(gender)area.append(你的性别为:+gender);public Information()/添加标签、单选和复选按钮panel.add(lb1);panel.add(cb1

44、);panel.add(cb2);panel.add(cb3);panel.add(lb2);panel.add(rb1);panel.add(rb2);bg.add(rb1);bg.add(rb2);/为单选和复选按钮添加事件监听器cb1.addActionListener(listener1);cb2.addActionListener(listener1);cb3.addActionListener(listener1);rb1.addActionListener(listener2);rb2.addActionListener(listener2);/将 JPanel 面板和 JScr

45、ollPane 面板添加到 JFrame 容器中 Container container=this.getContentPane();container.add(panel,BorderLayout.NORTH);container.add(pane,BorderLayout.CENTER);this.pack();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);public static void main(String args)new Information();3、参考答案import

46、javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyMenu extends JFrame implements ActionListener JLabel label=new JLabel(请选择菜单,JLabel.CENTER);JMenuItem aaMenuItem,baMenuItem;MyMenu()JMenuBar menuBar=new JMenuBar();JMenu aMenu=new JMenu(菜单 A);JMenu bMenu=new JMenu(菜单 B);JMenuItem

47、aaMenuItem=new JMenuItem(菜单项 AA);JMenuItem abMenuItem=new JMenuItem(菜单项 AB);JMenuItem baMenuItem=new JMenuItem(菜单项 BA);menuBar.add(aMenu);menuBar.add(bMenu);aMenu.add(aaMenuItem);aMenu.addSeparator();aMenu.add(abMenuItem);bMenu.add(baMenuItem);aaMenuItem.addActionListener(this);abMenuItem.addActionL

48、istener(this);baMenuItem.addActionListener(this);setJMenuBar(menuBar);getContentPane().add(label,BorderLayout.CENTER);public void actionPerformed(ActionEvent e)JMenuItem source=(JMenuItem)(e.getSource();label.setText(选择了菜单:+source.getText();label.setHorizontalAlignment(JLabel.CENTER);public static v

49、oid main(String args)JFrame frame=new MyMenu();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,200);frame.setVisible(true);第第 10 章章 网络编程网络编程一、填空题一、填空题1、面向连接、客户端、服务器端 2、2、0-655353、链路层、网络层、运输层、应用层4、InetAddress5、DatagramPacket、DatagramSocket二、判断题二、判断题1、错 2、对 3、对 4、错 5、对 三、选择题三、选择

50、题1、C 2.A 3、ABD 4、B 5.、A 6、D 7、B 8、C四、简答题四、简答题1、在 Internet 中传输数据都需要遵守一定的规则,这种规则通常被称作网络通信协议。网络通信协议对数据传输格式、传输速率、传输步骤等作了统一规定,通信双方必须共同遵守这个规定才能完成数据的交互。到目前为止,网络通信协议已经有很多种,其中 TCP/IP 协议在世界范围内应用最为广泛。2、UDP 协议是无连接通信协议,所谓的无连接就是指数据的发送端和接收端不建立逻辑连接。由于UDP 协议消耗资源小,通信效率高,通常都会用于音频、视频和普通数据的传输。UDP 协议在传输数据时不能保证数据的完整性,因此在传

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服