Java2-实用教程习题8-16WORD.doc

上传人:doc321 文档编号:13767959 上传时间:2022-01-23 格式:DOC 页数:20 大小:114.50KB
返回 下载 相关 举报
Java2-实用教程习题8-16WORD.doc_第1页
第1页 / 共20页
Java2-实用教程习题8-16WORD.doc_第2页
第2页 / 共20页
Java2-实用教程习题8-16WORD.doc_第3页
第3页 / 共20页
Java2-实用教程习题8-16WORD.doc_第4页
第4页 / 共20页
Java2-实用教程习题8-16WORD.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《Java2-实用教程习题8-16WORD.doc》由会员分享,可在线阅读,更多相关《Java2-实用教程习题8-16WORD.doc(20页珍藏版)》请在三一文库上搜索。

1、文档可能无法思考全面,请浏览后下载! 习题81.问答题(1)”hello”是正确的字符串常量吗?(2)“你好KU”.length()和“ntt”.length()的值分别是多少?“Hello”.equals(“hello”)和”java”.equals(“java”)的值分别是是多少?“Bird”.compareTo(“Bird fly”)的值是正数还是负数?“I love this game”.contains(“love”)的值是true吗?“RedBird”.indexOf(“Bird”)的值是多少?“RedBird”.indexOf(“Cat”)的值是多少?执行Integer.pars

2、eInt(“12.9”);会发生异常吗?2 选择题1. 下列哪个叙述是正确的?( )A. String类是final类,不可以有子类B. String类在java.util包中C. “abc”=”abc”的值是falseD. “abc”.equals(”Abc”)的值是true2. 下列哪个表达式是正确的(无编译错误)?A. int m=Float.parseFloat(“567”);B. int m=Short.parseShort(“567”);C. byte m=Integer.parseInt(“2”);D. float m=Float.parseDouble(“2.9”);3. 对于

3、如下代码,下列哪个叙述是正确的?public class E public static void main(String args) String strOne=bird;String strTwo=strOne;strOne=fly;System.out.println(strTwo);/【代码】A. 程序编译出现错误B. 程序标注的【代码】的输出结果是birdC. 程序标注的【代码】的输出结果是flyD. 程序标注的【代码】的输出结果是null4. 对于如下代码,下列哪个叙述是正确的?public class E public static void main(String args)

4、String s1=args1;String s2=args2;String s3=args3;System.out.println(s3);20 / 20A. 程序出现编译错误B. 无编译错误,在命令行执行程序”java E I love this game”,程序输出thisC. 无编译错误,在命令行执行程序”java E let us go ”,程序无运行异常D. 无编译错误,在命令行执行程序”java E 0 1 2 3 4 5 6 7 8 9”,程序输出35. 下列哪个叙述是错误的?A.”9dog”.matches(“ddog”)的值是trueB.”12hello567”.repla

5、ceAll(”123456789+”,”)返回的字符串是helloC.new Date(1000)对象含有的时间是公元后1000小时的时间D.“hellon”是正确的字符串常量3.阅读程序1.请说出E类中标注的【代码】的输出结果。public class E public static void main(String args) String str=new String(苹果);modify(str);System.out.println(str);/【代码】public static void modify(String s) s=s+好吃;结果:苹果2.请说出E类中标注的【代码】的输出

6、结果。import java.util.StringTokenizer;class GetTokenString s;public String getToken(int index,String str) StringTokenizer fenxi=new StringTokenizer(str);int number=fenxi.countTokens();s=new Stringnumber+1;int k=1;while(fenxi.hasMoreTokens()String temp=fenxi.nextToken();sk=temp;k+;if (index=number) ret

7、urn sindex;elsereturn null;public class E public static void main(String args) String str=We Love This Game;GetToken token=new GetToken();String s1=token.getToken(2, str),s2=token.getToken(4, str);System.out.println(s1+:+s2);/【代码】结果:Love:Game3.请说出E类中标注的【代码1】和【代码2】的输出结果。public class E public static v

8、oid main(String args) byte d=abc我们喜欢篮球.getBytes();System.out.println(d.length);/【代码1】String s=new String(d, 0, 7);System.out.println(s);/【代码2】结果:15abc我们4.请说出E类中标注的【代码】的输出结果。class MyStringpublic String getString(String s) StringBuffer stringBuffer=new StringBuffer();for (int i = 0; i s.length(); i+)

9、if(i%2=0)char c=s.charAt(i);stringBuffer.append(c);return new String(stringBuffer);public class E public static void main(String args) String s=1234567890;MyString mString=new MyString();System.out.println(mString.getString(s);/【代码】结果:135795.请说出E类中标注的【代码】的输出结果。public class E public static void main(

10、String args) String regex=djavaw1,;String str1=88javaookk;String str2=9javaHello;if (str1.matches(regex) System.out.println(str1);if (str2.matches(regex) System.out.println(str2);/【代码】结果:9javaHello(6)上机实习下列程序,学习怎样在一个月内(一周内、一年内)前后滚动日期,例如,假设是3月(有31天)10号,如果在月内滚动,那么向后滚动10天就是3月20日,向后滚动25天,就是3月4号(因为只在该月内滚

11、动)。如果在年内滚动,那么向后滚动25天,就是4月4号。import java.util.*;public class RollDayInMonthpublic static void main(String args)Calendar calendar=Calendar.getInstance();calendar.setTime(new Date();String s=String.format(%tF(%tA),calendar);System.out.println(s);int n=25;System.out.println(向后滚动(在月内)+n+天);calendar.roll(

12、calendar.DAY_OF_MONTH,n);s=String.format(%tF(%ta),calendar);System.out.println(s);System.out.println(再向后滚动(在年内)+n+天);calendar.roll(calendar.DAY_OF_YEAR,n);s=String.format(%tF(%ta),calendar);System.out.println(s);结果:2016-12-14(星期三)向后滚动(在月内)25天2016-12-08(星期四)再向后滚动(在年内)25天2016-01-02(星期六)(7)上机执行下列程序(学习R

13、untime类),注意观察程序的输出结果。public class Test public static void main(String args) Runtime runtime=Runtime.getRuntime();long free=runtime.freeMemory();System.out.println(Java虚拟机可用空闲内存+free+bytes);long total=runtime.totalMemory();System.out.println(Java虚拟机占用总内存+total+bytes);long n1=System.currentTimeMillis(

14、);for(int i=1;i=100;i+)int j=2;for(;ji/2 ) System.out.print( +i);long n2=System.currentTimeMillis();System.out.printf(n循环用时:+(n2-n1)+毫秒n);free=runtime.freeMemory();System.out.println(Java虚拟机可用空闲内存+free+bytes);total=runtime.totalMemory();System.out.println(Java虚拟机占用总内存+total+bytes);结果:Java虚拟机可用空闲内存15

15、165544bytesJava虚拟机占用总内存16252928bytes 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97循环用时:0毫秒Java虚拟机可用空闲内存14803416bytesJava虚拟机占用总内存16252928bytes 4编程题 (1)字符串调用public String toUpperCaseO方法返回一个字符串,该字符串把当前字符串中的小写字母变成大写字母;字符串调用public String toLowerCaseO方法返回一个字符串,该字符串把当前字符串中的大写字母变成

16、小写字母。String类的public Stringconcat(String str)方法返回一个字符串,该字符串是把调用该方法的字符串与参数指定的字符串连接。编写一个程序,练习使用这3个方法。 (2)String类的public char charAt(int index)方法可以得到当前字符串index位置上的一个字符。编写程序使用该方法得到一个字符串中的第一个和最后一个字符。 (3)计算某年某月某日和某年某月某日之间的天数间隔。要求年、月、日使用main方法的参数传递到程序中(参看例子4)。 (4)编程练习Math类的常用方法。 (5)编写程序剔除一个字符串中的全部非数字字符,例如,将

17、形如“abl23you”的非数字字符全部剔除,得到字符串“123”(参看例子10)。 (6)使用Scanner类的实例解析字符串”数学87分,物理76分,英语96分”中的考试成绩,并计算出总成绩以及平均分数(参看例子14)。编程题:(5)编写程序剔除一个字符串中的全部非数字字符,例如,将形如“ab123you”的非数字字符全部剔除,得到字符串“123”(参考例子8_10).(6)使用Scanner类的实例解析字符串“数学87分,物理76分,英语96分”中的考试成绩,并计算出总成绩以及平均分数(参考例子8_14)习 题 91问答题(1)JFrame类的对象的默认布局是什么布局?(2)一个容器对象

18、是否可以使用add方法添加一个JFrame窗口?(3)JTextField可以触发什么事件?(4)JTextArea中的文档对象可以触发什么类型的事件?(5)MouseListener接口中有几个方法?(6)处理鼠标拖动触发的MouseEvent事件需使用哪个接口?2选择题(1)下列哪个叙述是不正确的? A一个应用程序中最多只能有一个窗口。 BJFrame创建的窗口默认是不可见的。 C不可以向JFrame窗口中添加JFrame窗口。 D窗口可以调用setTitle(String s)方法设置窗口的标题。(2)下列哪个叙述是不正确的? AJButton对象可以使用addActionListene

19、r(ActionListener l)方法将没有实现ActionListener接口的类的实例注册为自己的监视器 B对于有监视器的JTextField文本框,如果该文本框处于活动状态(有输入焦点)时,用户即使不输入文本,只要按回车(Enter)键也可以触发ActionEvent事件 C监视KeyEvent事件的监视器必须实现KeyListener接口D监视WindowEvent事件的监视器必须实现WindowListener接口 (3)下列哪个叙述是不正确的? A使用FlowLayout布局的容器最多可以添加5个组件 B使用BorderLayout布局的容器被划分成5个区域 CJPanel的默

20、认布局是FlowLayout布局 DJDialog的默认布局是BorderLayout布局 3编程题 (1)编写应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。窗口中添加两个文本区,当我们在一个文本区中输入若干个数时,另一个文本区同时对你输入的数进行求和运算并求出平均值,也就是说随着你输入的变化,另一个文本区不断地更新求和及平均值。 (2)编写一个应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。设计四个按钮,分别命名为“加”、“差”、“积、”、“除”,另外,窗口中还有三个文本框。单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显

21、示结果。要求处理NumberFormatException异常。 (3)参照例子15编写一个体现MVC结构的GUI程序。首先编写一个封装梯形类,然后再编写一个窗口。要求窗口使用三个文本框和一个文本区为梯形对象中的数据提供视图,其中三个文本框用来显示和更新梯形对象的上底、下底和高,文本区对象用来显示梯形的面积。窗口中有一个按钮,用户单击该按钮后,程序用3个文本框中的数据分别作为梯形对象的上底、下底和高,并将计算出的梯形的面积显示在文本区中。习 题 10 1问答题 (1)如果准备按字节读取一个文件的内容,应当使用FilelnputStream流还是FileReader流? (2)Filelnput

22、Stream流的read方法和FileReader流的read方法有何不同? (3)BufferedReader流能直接指向一个文件吗? (4)使用ObjectlnputStream和ObjectOutputStream类有哪些注意事项? (5)怎样使用输入、输出流克隆对象? 2选择题 (1)下列哪个叙述是正确的? A创建File对象可能发生异常。 BBufferedRead流可以指向FileInputStream流。 CBufferedWrite流可以指向FileWrite流。 DRandomAccessFile流一旦指向文件,就会刷新该文件。 (2)为了向文件hello.txt尾加数据,下

23、列哪个是正确创建指向hello.txt的流?Atry OutputStream out=new FileOutputStream (“helloTxt”); catch(IOException e)Btry OutputStream out=new FileOutputStream (”hellotxt”,true); ) catch(IOException e)(Ctry OutputStream out=new FileOutputstream(”hellotxt”,false); catch(IOException e)Dtry OutputStream out=new OutputSt

24、ream (”heliotxt”,true);) catch(IOException e) 3阅读程序(1) 文件E.java的长度是51个字节,请说出E类中标注的【代码l】和【代码2】的输出结果。import java.io.*;public class Epublic static void main(String args)File f=new File(E.java);try RandomAccessFile in=new RandomAccessFile(f,rw);System.out.println(f.length(); /【代码1】 FileOutputStream out=

25、new FileOutputStream(f);System.out.println(f.length(); /【代码2】catch(IOException e) System.out.println(File read Error+e);(2) 请说出E类中标注的【代码1】【代码4】的输出结果。import java.io.*;public class Epublic static void main(String args)int n=-1;File f=new File(hello.txt);byte a=abcd.getBytes();tryFileOutputStream out=n

26、ew FileOutputStream(f);out.write(a);out.close();FileInputStream in=new FileInputStream(f);bytetom=new byte3;int m=in.read(tom,0,3);System.out.println(m);/【代码l】String s=new String(tom,0,3);System.out.println(s);/【代码2】m=in.read(tom,0,3);System.out.println(m);/【代码3】s=new String(tom,0,3);System.out.prin

27、tln(s);/【代码4】catch(IOException e) 结果:3abc1dbc(3)了解打印流。我们已经学习了数据流,其特点是用Java的数据类型读写文件,但使用数据流写成的文件用其他文件阅读器无法进行阅读(看上去是乱码)。PrintStream类提供了一个过滤输出流,该输出流能以文本格式显示Java的数据类型。上机执行下列程序。import java.io.*;public class Epublic static void main(String args)tryFile file=new File(P.txt);FileOutputStream out=new FileOut

28、putStream(file);PrintStream ps=new PrintStream(out);ps.print(12345.6789);ps.println(how are you);ps.println(true);ps.close();catch(IOException e)4编写程序 (1)使用RandomAccessFile流将一个文本文件倒置读出。 (2)使用Java的输入、输出流将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中。 (3)参考例子16,解析一个文件中的价格数据,并计算平均价格,该文件的内容如下。 商品列表: 电视机,2567元/台

29、 洗衣机,3562元/台 冰箱,6573元/台习 题 11 1问答题 (1)设置数据源的主要步骤有哪些? (2)如果采用JDBCODBC方式连接数据库,程序代码中是否必须要使用数据库的名字才能和数据库建立连接。 (3)预处理语句的好处是什么? (4)什么叫事务,事务处理步骤是怎样的? 2编程题 (1)参照例子2,编写一个应用程序来查询Access数据库,用户可以从键盘输入数据源名、表名。 (2)参照例子4,按商品名称进行模糊查询(用户从键盘输入商品名称)。(3)参照例子5,按生产日期排序goods表的记录。习 题 12 1问答题 (1)线程有几种状态? (2)引起线程中断的常见原因是什么? (

30、3)一个线程执行完run方法后,进入了什么状态?该线程还能再调用start方法吗? (4)线程在什么状态时调用isAlive0方法返回的值是false? (5)建立线程有几种方法? (6)怎样设置线程的优先级? (7)在多线程中,为什么要引入同步机制? (8)在什么方法中wait0方法、notify0及notifyAll0方法可以被使用? (9)将例子6中SellTicket类中的循环条件while(fiveAmount3)改写成if(fiveAmount3)是否合理? (10)线程调用interrupt0的作用是什么? 2选择题 (1)下列哪个叙述是错误的? A线程新建后,不调用start方

31、法也有机会获得CPU资源。 B如果两个线程需要调用同一个同步方法,那么一个线程调用该同步方法时,另一个线程必须等待。 C目标对象中的run方法可能不启动多次。 D默认情况下,所有线程的优先级都是5级。 (2)对于下列程序,哪个叙述是正确的?public class Epublic static void main(String args)Target target=new Target();Thread thread=new Thread(target);thread.start();class Target implements Runnablepublic void run()System

32、.out.println(0k); AJVM认为这个应用程序共有两个线程。 BJVM认为这个应用程序只有一个主线程。 CJVM认为这个应用程序只有一个thread线程。 Dthread的优先级是10级。(3)对于下列程序,哪个叙述是正确的?public class Epublic static void main(String args)Target target=new Target();Thread thread=new Thread(target);target.run();class Target implements Runnablepublic void run()System.o

33、ut.println(0k); AJVM认为这个应用程序共有两个线程。 BJVM认为这个应用程序只有一个主线程。 CJVM认为这个应用程序只有一个thread线程。 D程序有编译错误,无法运行。 3阅读程序 (1)上机运行下列程序,注意程序的运行效果(程序有两个线程:主线程和thread线程)。public class E public static void main(String args)Target target=new Target();Thread thread=new Thread(target);thread.start();for(int i=0;i=10;i+) Syste

34、m.out.println(yes);tryThread.sleep(1000);catch(InterruptedException exp)class Target implements Runnablepublic void run()for(int i=0;i=10;i+) System.out.println(ok);tryThread.sleep(1000);catch(InterruptedException exp) 结果:yesokyesokyesokyesokyesokyesokyesokokyesokyesyesokokyes2)上机运行下列程序,注意程序的运行效果(注意

35、该程序中只有一个主线程,thread线程并没有启动)。public class Epublic static void main(String args)Target target=new Target();Thread thread=new Thread(target);target.run();for(int i=0;i=10;i+)System.out.println(yes);tryThread.sleep(1000);catch(InterruptedException exp)class Target implements Runnablepublic void run()for(

36、int i=0;i=10;i+)System.out.println(ok);tryThread.sleep(1000);catch(InterruptedException exp) (结果:okokokokokokokokokokokyesyesyesyesyesyesyesyesyesyesyes3)上机运行下列程序,注意程序的运行效果(注意程序的输出结果)。public class Epublic static void main(String args)Target target=new Target();Thread threadl=new Thread(target);Threa

37、d thread2=new Thread(target);threadl.start();tryThread.sleep(1000);catch(Exception exp)thread2.start();class Target implements Runnableint i=0;public void run()i+;System.out.println(i=+i);结果:i=1i=2(3) 上机运行下列程序,注意程序的运行效果(注意和上面习题(3)的不同之处)。public class E public static void main(String args)Target targe

38、tl=new Target();Target target2=new Target();Thread threadl=new Thread(targetl);/与thread2的目标对象不同Thread thread2=new Thread(target2);/与threadl的目标对象不同threadl.start();tryThread.sleep(1000);catch(Exception exp)thread2.start();class Target implements Runnableint i=0;public void run()i+;System.out.println(i

39、=+i);结果:i=1i=1(4) 上机运行下列程序,注意程序的运行效果(计时器启动成功)。import javax.swing.*;import java.util.Date;public class Epublic static void main(String args)javax.swing.Timer time=new javax.swing.Timer(500, new A();time.setInitialDelay(0);time.start();class A extends JLabel implements java.awt.event.ActionListenerpub

40、lic void actionPerformed(java.awt.event.ActionEvent e)System.out.println(new Date();结果:Wed Dec 14 19:47:44 CST 2016Wed Dec 14 19:47:44 CST 2016Wed Dec 14 19:47:45 CST 2016Wed Dec 14 19:47:45 CST 2016Wed Dec 14 19:47:46 CST 2016Wed Dec 14 19:47:46 CST 2016Wed Dec 14 19:47:47 CST 2016Wed Dec 14 19:47:

41、47 CST 2016Wed Dec 14 19:47:48 CST 2016Wed Dec 14 19:47:48 CST 2016Wed Dec 14 19:47:49 CST 2016(5) 上机运行下列程序,注意程序的运行效果(计时器启动失败)。import javax.swing.*;import java.util.Date;public class Epublic static void main(String args)javax.swing.Timer time=new javax.swing.Timer(500, new A();time.setInitialDelay(0);time.start();class A implements java.awt.event.ActionListenerpublic void actionPerformed(java.awt.event.ActionEvent e)System.out.println(new Date();结果:无结果(6) 在下列E类中【代码】输出结果是什么?import java.awt.*;import jav

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1