Java2 实用教程习题8-16
更新时间:2023-11-28 07:37:01 阅读量: 教育文库 文档下载
- java是什么意思推荐度:
- 相关推荐
习题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.*;
正在阅读:
Java2 实用教程习题8-1611-28
边坡稳定性的工程地质评价11-04
Flexi BSC 日常维护10-29
王闯:买卖合同纠纷审判实务若干问题06-09
人教新课标小学数学四年级上册特级教案全集05-29
门户扩展-技术方案(初稿)11-23
燃机控制系统讲义04-25
夸夸我的同学作文600字07-06
南京财经大学计量经济学考试参考 - 图文11-06
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 习题
- 实用
- 教程
- Java2
- 16
- 古代汉语-中南大学网络教育学院网上作业模拟练习题
- 2016年安全生产月知识竞赛试题库16
- 2013年高考作文题目大猜想
- 教育系统网络与信息安全工作应急预案
- 16秋浙大《电子技术基础》在线作业
- 自动控制原理实验报告
- 电镀锡工艺描述
- 第七章 线性变换
- 08级第四次作业讲评
- 重大版五年级下册Unit1 教案
- 2017尔雅设计与人文:当代公共艺术考试答案
- 2012-2016年中国血液透析机行业市场分析预测报告 - 图文
- 第一章 导热理论和导热微分方程
- word 2003部分课堂练习 错题集(finish)
- 特殊工种考试题
- 非常好的C语言章节习题集带答案
- 2019年高考物理一轮复习第五章机械能及其守恒定律第1讲功和功率学案
- 2015浙江省直属事业单位考试考试重点和考试技巧
- 统计学2012课后练习
- 武大版分析化学上册答案 第6章 络合滴定法2