Java2 实用教程习题8-16

更新时间:2023-11-28 07:37:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

习题8 1.问答题

(1)”\\hello”是正确的字符串常量吗? (2)“你好KU”.length()和“\\n\\t\\t”.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.parseInt(“12.9”);会发生异常吗? 2 选择题

1. 下列哪个叙述是正确的?( )

A. String类是final类,不可以有子类 B. String类在java.util包中 C. “abc”==”abc”的值是false

D. “abc”.equals(”Abc”)的值是true

2. 下列哪个表达式是正确的(无编译错误)? 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. 对于如下代码,下列哪个叙述是正确的?

public class E {

public static void main(String[] args) { String strOne=\; String strTwo=strOne; strOne=\; System.out.println(strTwo);//【代码】 } }

A. 程序编译出现错误

B. 程序标注的【代码】的输出结果是bird C. 程序标注的【代码】的输出结果是fly D. 程序标注的【代码】的输出结果是null 4. 对于如下代码,下列哪个叙述是正确的?

public class E {

public static void main(String[] args) { String s1=args[1]; String s2=args[2]; String s3=args[3]; System.out.println(s3); } }

A. 程序出现编译错误

B. 无编译错误,在命令行执行程序”java E I love this game”,程序输出this

C. 无编译错误,在命令行执行程序”java E let us go ”,程序无运行异常 D. 无编译错误,在命令行执行程序”java E 0 1 2 3 4 5 6 7 8 9”,程序输出3 5. 下列哪个叙述是错误的?

A. ”9dog”.matches(“\\\\ddog”)的值是true

B. ”12hello567”.replaceAll(”[123456789]+”,”@”)返回的字符串是@hello@ C. new Date(1000)对象含有的时间是公元后1000小时的时间 D. “\\\\hello\\n”是正确的字符串常量

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类中标注的【代码】的输出结果。 import java.util.StringTokenizer;

class GetToken{ String s[]; public String getToken(int index,String str) { StringTokenizer fenxi=new StringTokenizer(str); int number=fenxi.countTokens(); s=new String[number+1]; int k=1; while(fenxi.hasMoreTokens()){ String temp=fenxi.nextToken(); s[k]=temp; k++; } if (index<=number) { return s[index]; } else return null; } }

public class E { public static void main(String[] args) { String str=\; GetToken token=new GetToken(); String s1=token.getToken(2, str), s2=token.getToken(4, str); System.out.println(s1+\+s2);//【代码】 } }

结果:Love:Game

3.请说出E类中标注的【代码1】和【代码2】的输出结果。 public class E { public static void main(String[] args) { byte d[]=\我们喜欢篮球\.getBytes(); System.out.println(d.length);//【代码1】 String s=new String(d, 0, 7); System.out.println(s);//【代码2】 } }

结果: 15

abc我们

4.请说出E类中标注的【代码】的输出结果。 class MyString{ public String getString(String s) { StringBuffer stringBuffer=new StringBuffer(); for (int i = 0; i < s.length(); i++) { 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=\; MyString mString=new MyString(); System.out.println(mString.getString(s));//【代码】 } }

结果:

13579

5.请说出E类中标注的【代码】的输出结果。 public class E { public static void main(String[] args) { String regex=\; String str1=\; String str2=\; 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号(因为只在该月内滚动)。如果在年内滚动,那么向后滚动25天,就是4月4号。

import java.util.*;

public class RollDayInMonth{ public static void main(String args[]){ Calendar calendar=Calendar.getInstance(); calendar.setTime(new Date()); String s=String.format(\,calendar); System.out.println(s); int n=25; System.out.println(\向后滚动(在月内)\+n+\天\); calendar.roll(calendar.DAY_OF_MONTH,n); s=String.format(\,calendar); System.out.println(s); System.out.println(\再向后滚动(在年内)\+n+\天\); calendar.roll(calendar.DAY_OF_YEAR,n); s=String.format(\,calendar); System.out.println(s); }

}

结果:

2016-12-14(星期三) 向后滚动(在月内)25天 2016-12-08(星期四)

再向后滚动(在年内)25天

2016-01-02(星期六)

(7)上机执行下列程序(学习Runtime类),注意观察程序的输出结果。

public class Test { public static void main(String[] args) { Runtime runtime=Runtime.getRuntime(); long free=runtime.freeMemory(); System.out.println(\虚拟机可用空闲内存\+free+\); long total=runtime.totalMemory(); System.out.println(\虚拟机占用总内存\+total+\); long n1=System.currentTimeMillis(); for(int i=1;i<=100;i++){ int j=2; for(;j<=i/2;j++){ if(i%j==0)break; } if(j>i/2 ) System.out.print(\+i); } long n2=System.currentTimeMillis(); System.out.printf(\循环用时:\+(n2-n1)+\毫秒\\n\); free=runtime.freeMemory(); System.out.println(\虚拟机可用空闲内存\+free+\); total=runtime.totalMemory(); System.out.println(\虚拟机占用总内存\+total+\); } }

结果:Java虚拟机可用空闲内存15165544bytes Java虚拟机占用总内存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虚拟机可用空闲内存14803416bytes Java虚拟机占用总内存16252928bytes

4.编程题

(1)字符串调用public String toUpperCaseO方法返回一个字符串,该字符串把当前字符串中的小写字母变成大写字母;字符串调用public String toLowerCaseO方法返回一个字符串,该字符串把当前字符串中的大写字母变成小写字母。String类的public Stringconcat(String str)方法返回一个字符串,该字符串是把调用该方法的字符串与参数指定的字符串连接。编写一个程序,练习使用这3个方法。

(2)String类的public char charAt(int index)方法可以得到当前字符串index位置上的一个字符。编写程序使用该方法得到一个字符串中的第一个和最后一个字符。

(3)计算某年某月某日和某年某月某日之间的天数间隔。要求年、月、日使用main方法的参数传递到程序中(参看例子4)。

(4)编程练习Math类的常用方法。

A.JVM认为这个应用程序共有两个线程。 B.JVM认为这个应用程序只有一个主线程。 C.JVM认为这个应用程序只有一个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++) { System.out.println(\); try{ Thread.sleep(1000); } catch(InterruptedException exp){} } } }

class Target implements Runnable{ public void run(){ for(int i=0;i<=10;i++) { System.out.println(\); try{ Thread.sleep(1000); } catch(InterruptedException exp){} } }

}

结果:yes ok yes ok yes ok yes ok yes ok yes

ok yes ok ok yes ok yes yes ok ok yes 2)上机运行下列程序,注意程序的运行效果(注意该程序中只有一个主线程,thread线程并没有启动)。

public class E{ public 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(\); try{Thread.sleep(1000); } catch(InterruptedException exp){} } } }

class Target implements Runnable{ public void run(){ for(int i=0;i<=10;i++){ System.out.println(\); try{ Thread.sleep(1000); } catch(InterruptedException exp){} } } }

(结果:ok

ok ok ok ok ok ok

ok ok ok ok yes yes yes yes yes yes yes yes yes yes yes

3)上机运行下列程序,注意程序的运行效果(注意程序的输出结果)。

public class E{ public static void main(String args[]){ Target target=new Target(); Thread threadl=new Thread(target); Thread thread2=new Thread(target); threadl.start(); try{Thread.sleep(1000); } catch(Exception exp){} thread2.start(); } }

class Target implements Runnable{ int i=0; public void run(){ i++; System.out.println(\+i); } }

结果: i=1 i=2

(3) 上机运行下列程序,注意程序的运行效果(注意和上面习题(3)的不同之处)。

public class E { public static void main(String args[]){ Target targetl=new Target(); Target target2=new Target(); Thread threadl=new Thread(targetl);//与thread2的目标对象不同 Thread thread2=new Thread(target2);//与threadl的目标对象不同 threadl.start(); try{Thread.sleep(1000); } catch(Exception exp){} thread2.start(); } }

class Target implements Runnable{ int i=0; public void run(){ i++; System.out.println(\+i); } }

结果:

i=1 i=1

(4) 上机运行下列程序,注意程序的运行效果(计时器启动成功)。

import javax.swing.*; import java.util.Date; public class E{ public 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.ActionListener{ public void actionPerformed(java.awt.event.ActionEvent e){ System.out.println(new Date()); } }

结果:

Wed Dec 14 19:47:44 CST 2016 Wed Dec 14 19:47:44 CST 2016 Wed Dec 14 19:47:45 CST 2016 Wed Dec 14 19:47:45 CST 2016 Wed Dec 14 19:47:46 CST 2016 Wed Dec 14 19:47:46 CST 2016 Wed Dec 14 19:47:47 CST 2016 Wed Dec 14 19:47:47 CST 2016 Wed Dec 14 19:47:48 CST 2016 Wed Dec 14 19:47:48 CST 2016 Wed Dec 14 19:47:49 CST 2016

(5) 上机运行下列程序,注意程序的运行效果(计时器启动失败)。

import javax.swing.*; import java.util.Date; public class E{ public 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.ActionListener{ public void actionPerformed(java.awt.event.ActionEvent e){ System.out.println(new Date()); } }

结果:无结果

(6) 在下列E类中【代码】输出结果是什么?

import java.awt.*;

本文来源:https://www.bwwdw.com/article/y34t.html

Top