如何java 捕捉错误与HTTPS的提琴手,在java问题,怎么解决

java 面试必问题 你在项目中碰到过什么问题
你是怎么解决的
大家一起来谈谈在项目里遇到的问题吧
[问题点数:40分,结帖人hadoop333]
java 面试必问题 你在项目中碰到过什么问题
你是怎么解决的
大家一起来谈谈在项目里遇到的问题吧
[问题点数:40分,结帖人hadoop333]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2011年4月 Java大版内专家分月排行榜第二2010年8月 Java大版内专家分月排行榜第二2010年5月 Java大版内专家分月排行榜第二2008年2月 Java大版内专家分月排行榜第二2007年7月 Java大版内专家分月排行榜第二
2011年2月 Java大版内专家分月排行榜第三2010年9月 Java大版内专家分月排行榜第三2008年9月 Java大版内专家分月排行榜第三2008年1月 Java大版内专家分月排行榜第三2007年11月 Java大版内专家分月排行榜第三2007年9月 Java大版内专家分月排行榜第三
2014年7月 Java大版内专家分月排行榜第二
2015年1月 Java大版内专家分月排行榜第三2014年8月 Java大版内专家分月排行榜第三
匿名用户不能发表回复!|在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
我们的服务器是nginx+php,实现了https协议,但我主要是负责seo这款!我用java-openStream模拟抓取网页代码,发现一个问题:都是可以正常捉去代码,而放到自己的网站却出现:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
知户和segmentfault社区:
请问应怎么设置?因为对https不熟悉,对https-seo也是第一次接触。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你的http服务器需要配置对应的证书...
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。如何优雅的处理异常(java)? - 知乎846被浏览<strong class="NumberBoard-itemValue" title="4分享邀请回答java.io package包中定义了Exception类的子类IOException,更加特化确的是 FileNotFoundException,EOFException和ObjectStreamException这些IOException的子 类。每一种都描述了一类特定的I/O错误:分别是文件丢失,异常文件结尾和错误的序列化对象流.异常越具体,我们的程序就能更好地回答”什么出了错”这个 问题。捕 获异常时尽量明确也很重要。例如:JCheckbook可以通过重新询问用户文件名来处理FileNotFoundException,对于 EOFException,它可以根据异常抛出前读取的信息继续运行。如果抛出的是ObjectStreamException,则程序应该提示用户文件 已损坏,应当使用备份文件或者其他文件。Java让明确捕获异常变得容易,因为我们可以对同一try块定义多个catch块,从而对每种异常分别进行恰当的处理。File prefsFile = new File(prefsFilename);
readPreferences(prefsFile);
catch (FileNotFoundException e){
// alert the user that the specified file
// does not exist
catch (EOFException e){
// alert the user that the end of the file
// was reached
catch (ObjectStreamException e){
// alert the user that the file is corrupted
catch (IOException e){
// alert the user that some other I/O
// error occurred
JCheckbook 通过使用多个catch块来给用户提供捕获到异常的明确信息。举例来说:如果捕获了FileNotFoundException,它可以提示用户指定另一 个文件,某些情况下多个catch块带来的额外编码工作量可能是非必要的负担,但在这个例子中,额外的代码的确帮助程序提供了对用户更友好的响应。除前三个catch块处理的异常之外,最后一个catch块在IOException抛出时给用户提供了更泛化的错误信息.这样一来,程序就可以尽可能提供具体的信息,但也有能力处理未预料到的其他异常。有 时开发人员会捕获范化异常,并显示异常类名称或者打印堆栈信息以求"具体"。千万别这么干!用户看到java.io.EOFException或者堆栈信息 只会头疼而不是获得帮助。应当捕获具体的异常并且用"人话"给用户提示确切的信息。不过,异常堆栈倒是可以在你的日志文件里打印。记住,异常和堆栈信息是用来帮助开发人 员而不是用户的。最后,应该注意到JCheckbook并没有在readPreferences()中捕获异常,而是将捕获和处理异常留到用户界面层来做,这样就能用对话框或其他方式来通知用户。这被称为"延迟捕获",下文就会谈到。提早抛出异常堆栈信息提供了导致异常出现的方法调用链的精确顺序,包括每个方法调用的类名,方法名,代码文件名甚至行数,以此来精确定位异常出现的现场。java.lang.NullPointerException
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.&init&(FileInputStream.java:103)
at jcheckbook.JCheckbook.readPreferences(JCheckbook.java:225)
at jcheckbook.JCheckbook.startup(JCheckbook.java:116)
at jcheckbook.JCheckbook.&init&(JCheckbook.java:27)
at jcheckbook.JCheckbook.main(JCheckbook.java:318)
以 上展示了FileInputStream类的open()方法抛出NullPointerException的情况。不过注意 FileInputStream.close()是标准Java类库的一部分,很可能导致这个异常的问题原因在于我们的代码本身而不是Java API。所以问题很可能出现在前面的其中一个方法,幸好它也在堆栈信息中打印出来了。不幸的是,NullPointerException是Java中信息量最少的(却也是最常遭遇且让人崩溃的)异常。它压根不提我们最关心的事情:到底哪里是null。所以我们不得不回退几步去找哪里出了错。通过逐步回退跟踪堆栈信息并检查代码,我们可以确定错误原因是向readPreferences()传入了一个空文件名参数。既然readPreferences()知道它不能处理空文件名,所以马上检查该条件:public void readPreferences(String filename)
throws IllegalArgumentException{
if (filename == null){
throw new IllegalArgumentException("filename is null");
//...perform other operations...
InputStream in = new FileInputStream(filename);
//...read the preferences file...
通过提早抛出异常(又称"迅速失败"),异常得以清晰又准确。堆栈信息立即反映出什么出了错(提供了非法参数值),为什么出错(文件名不能为空值),以及哪里出的错(readPreferences()的前部分)。这样我们的堆栈信息就能如实提供:java.lang.IllegalArgumentException: filename is null
at jcheckbook.JCheckbook.readPreferences(JCheckbook.java:207)
at jcheckbook.JCheckbook.startup(JCheckbook.java:116)
at jcheckbook.JCheckbook.&init&(JCheckbook.java:27)
at jcheckbook.JCheckbook.main(JCheckbook.java:318)
另外,其中包含的异常信息("文件名为空")通过明确回答什么为空这一问题使得异常提供的信息更加丰富,而这一答案是我们之前代码中抛出的NullPointerException所无法提供的。通过在检测到错误时立刻抛出异常来实现迅速失败,可以有效避免不必要的对象构造或资源占用,比如文件或网络连接。同样,打开这些资源所带来的清理操作也可以省却。延迟捕获菜鸟和高手都可能犯的一个错是,在程序有能力处理异常之前就捕获它。Java编译器通过要求检查出的异常必须被捕获或抛出而间接助长了这种行为。自然而然的做法就是立即将代码用try块包装起来,并使用catch捕获异常,以免编译器报错。问 题在于,捕获之后该拿异常怎么办?最不该做的就是什么都不做。空的catch块等于把整个异常丢进黑洞,能够说明何时何处为何出错的所有信息都会永远丢失。把异常写到日志中还稍微好点,至少还有记录可查。但我们总不能指望用户去阅读或者理解日志文件和异常信息。让readPreferences()显示错误信息对话框也不合适,因为虽然JCheckbook目前是桌面应用程序,但我们还计划将它变成基于HTML的Web应用。那样的话,显示错误对话框显然不是个选择。同时,不管HTML还是C/S版本,配置信息都是在服务器上读取的,而错误信息需要显示给Web浏览器或者客户端程序。 readPreferences()应当在设计时将这些未来需求也考虑在内。适当分离用户界面代码和程序逻辑可以提高我们代码的可重用性。在有条件处理异常之前过早捕获它,通常会导致更严重的错误和其他异常。例如,如果上文的readPreferences()方法在调用FileInputStream构造方法时立即捕获和记录可能抛出的FileNotFoundException,代码会变成下面这样:public void readPreferences(String filename){
InputStream in = null;
// DO NOT DO THIS!!!
in = new FileInputStream(filename);
catch (FileNotFoundException e){
logger.log(e);
in.read(...);
上 面的代码在完全没有能力从FileNotFoundException中恢复过来的情况下就捕获了它。如果文件无法找到,下面的方法显然无法读取它。如果 readPreferences()被要求读取不存在的文件时会发生什么情况?当然,FileNotFoundException会被记录下来,如果我们 当时去看日志文件的话,就会知道。然而当程序尝试从文件中读取数据时会发生什么?既然文件不存在,变量in就是空的,一个 NullPointerException就会被抛出。调试程序时,本能告诉我们要看日志最后面的信息。那将会是NullPointerException,非常让人讨厌的是这个异常非常不具体。错误信息不仅误导我们什么出了错(真正的错误是FileNotFoundException而不是NullPointerException),还误导了错误的出处。真正 的问题出在抛出NullPointerException处的数行之外,这之间有可能存在好几次方法的调用和类的销毁。我们的注意力被这条小鱼从真正的错误处吸引了过来,一直到我们往回看日志才能发现问题的源头。既然readPreferences() 真正应该做的事情不是捕获这些异常,那应该是什么?看起来有点有悖常理,通常最合适的做法其实是什么都不做,不要马上捕获异常。把责任交给 readPreferences()的调用者,让它来研究处理配置文件缺失的恰当方法,它有可能会提示用户指定其他文件,或者使用默认值,实在不行的话也 许警告用户并退出程序。把异常处理的责任往调用链的上游传递的办法,就是在方法的throws子句声明异常。在声明可能抛出的异常时,注意越具体越好。这用于标识出调用你方法的程序需要知晓并且准备处理的异常类型。例如,“延迟捕获”版本的readPreferences()可能是这样的:public void readPreferences(String filename)
throws IllegalArgumentException,
FileNotFoundException, IOException{
if (filename == null){
throw new IllegalArgumentException("filename is null");
InputStream in = new FileInputStream(filename);
技 术上来说,我们唯一需要声明的异常是IOException,但我们明确声明了方法可能抛出FileNotFoundException。 IllegalArgumentException不是必须声明的,因为它是非检查性异常(即RuntimeException的子类)。然而声明它是为 了文档化我们的代码(这些异常也应该在方法的JavaDocs中标注出来)。当 然,最终你的程序需要捕获异常,否则会意外终止。但这里的技巧是在合适的层面捕获异常,以便你的程序要么可以从异常中有意义地恢复并继续下去,而不导致更 深入的错误;要么能够为用户提供明确的信息,包括引导他们从错误中恢复过来。如果你的方法无法胜任,那么就不要处理异常,把它留到后面捕获和在恰当的层面处理。结论经验丰富的开发人员都知道,调试程序的最大难点不在于修复缺陷,而在于从海量的代码中找出缺陷的藏身之处。只要遵循本文的三个原则,就能让你的异常协助你跟踪和消灭缺陷,使你的程序更加健壮,对用户更加友好。英文原文:,编译: - 1728 条评论分享收藏感谢收起218 条评论分享收藏感谢收起当前位置: >>
javaSE技能手册(整理完成)
1JavaSE 技能手册 2JavaSE 初级―第一单元:JAVA 语言概述,简单的 JAVA 程序解析 1:java 语言的特点是什么?2:举例写出在 java 发展史上对 java 有深刻影响的公司名称?3:使用 java 实现输出 hello world! !4:使用 java 实现输出如下图形。i5:问题:System.out.println()和 System.out.print()有什么区别呢? 以下代码的运行效果是什么? System.out.println(&我的爱好:&); 3System.out.println(&打网球&); System.out.print(&我的爱好:&); System.out.print(&打网球&);JavaSE 初级―第二单元:Java 开发工具介绍 eclipse 平台使用 1:列举你所知道的开发 java 程序的工具? c c++ jdk2:实现两个整数的加减乘除以及取余算法3:写出常用的 10 个 eclipse 快捷键。 Ctrl+c ctrl+alt+/ Ctrl+v Ctrl+s t 4:简述使用 eclipse 创建一个类的过程,以及一个工程里面的基本结构。 先创建工程,再建包,再建类。JavaSE 初级―第三单元:变量、常量和基本数据类型 1:列举 java 里面的 8 中基本数据类型? Byte short int long char float double boolean 2:每种基本数据类型都定义一个常量。 (八种)3:每种基本数据类型都定义一个变量。4:写出基本数据类型自动转化的流程图。 Byte &short & char & int &long &float &double 45:实现两个字符型数据的加减乘除运算。6:计算下列表达式的结果: 10/3=3 ; 10/5=2 ; 10%2=0 ; 10.5%3=1.5;JavaSE 初级―第四单元:运算符,表达式及空语句 1:为抵抗洪水,战士连续作战 89 小时,编程计算共多少天零多少小时? 2: 小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。它需要一个程序将 华氏温度(80 度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。 提示:摄氏度与芈氏度的转换公式为:摄氏度 = 5/9.0*(华氏度-32) 3:根据你的理解,说明一下“==”和“=”的区别。 4:根据运算符的功能,我们把运算符分成哪几类? 5:写出程序的输出结果: public static void main(String args[]){ int a=5+4; int b=a*2; int c=b/4; int d=b-c; int e=-d; int f=e%4; double g=18.4; double h=g%4; int i=3;int j=i++; int k=++i; System.out.println(&a=&+a); System.out.println(&b=&+b); System.out.println(&c=&+c); System.out.println(&d=&+d); System.out.println(&e=&+e); System.out.println(&f=&+f); System.out.println(&g=&+g); System.out.println(&h=&+h); System.out.println(&i=&+i); System.out.println(&j=&+j); System.out.println(&k=&+k); } 7:写出程序的输出结果:public static void main(String[] args){ int n=3, m=4; System.out.println(); System.out.println(&n&m is &+(n&m)); System.out.println(&n=m is &+((++n)==m)); System.out.println(&n&m is &+((++n)&m)); System.out.println(&n is &+n);} 8:写出程序的输出结果:public static void main(String[] args){ 5int x=1,y=12; x+=2; y-=3; System.out.println(); System.out.println(&x= &+x+& y= &+y); y/=x; System.out.println(&x= &+x+& y= &+y); y++; y%=x; System.out.println(&x= &+x+& y= &+y); } JavaSE 初级―第五单元:程序结构设计顺序结构,选择结构 1:写一个方法,此方法实现判断一个整数,属于哪个范围:大于 0;小于 0;等于 0 2:写一个方法,此方法实现判断一个整数是偶数还是奇数。 3:写一个方法,此方法实现对三个整数进行排序,输出时按照从小到大的顺序输出。 4:写一个方法,此方法实现判断这个数是否是水仙花数。 3 3 3 水仙花数的条件:三位数为 abc,则满足:a +b +c =abc 5:写一个方法,此方法实现判断某一年份是否是闰年。 6:写一个方法,此方法实现判断一个 4 位整数,统计出此整数里面包含多少个偶数, 多少个奇数 7: 开发一款软件,根据公式(身高-108)*2=体重,可以有 10 斤左右的浮动。来观察 测试者体重是否合适。 8: 判断此考试成绩为什么等级。 90-100 之间为优秀,80-89 之间为优良,70-79 之间为良好, 60-69 之间为及格,60 分以下为不及格。 9: 写一个方法,此方法实现格式化时间,此方法有三个整形参数,输出类似 09:03:12 的时间格式,中间需要判断输入的数字是否符合实际情况,比如小时数就不能大于 24, 如果大于 24 就提示输入错误。 10: 有 3 个整数,给出提示信息: 能否创建三角形; 如果能构建三角形,提示是直角三角形还是等边三角形等腰三角形还是普通三角形; 最后输出三角形面积; 11:随机输入一个字母,如果是大写字母就转化为小写字母输出;如果是小写字母就转 化为大写字母输出。 12:学习成绩&=90 分的同学用 A 表示,60-89 分之间的用 B 表示,60 分以下 的用 C 表示 13:使用条件结构实现:岳灵珊同学参加到 java 的学习,他父亲岳不群和母亲宁中则 承诺: 编写程序达成小明的心愿。如果岳灵珊的考试成绩==1OO 分,父亲给她买辆车 如果岳灵珊的考试成绩&=90 分,母亲(宁中则)给她买台笔记本电脑 如果岳灵珊的考试成绩&=60 分,母亲给她买部手机 如果岳灵珊的考试成绩&60 分,没有礼物 614:使用条件结构实现,如果用户名等于字符‘青’ ,密码等于数字‘123’ ,就输出“欢 迎你,青” ,否则就输出“对不起,你不是青” 。 提示:先声明两个变量,一个是 char 型的,用来存放用户名,一个是 int 型的,用来存 放密码。 2 15:求 ax +bx+c=0 方程的根。 a,b,c 分别为函数的参数, 2 2 2 如果:b -4ac&0,则有两个解;b -4ac=0,则有一个解;b -4ac&0,则无解; 2 已知:x1=(-b+sqrt(b -4ac))/2a 2 X2=(-b-sqrt(b -4ac))/2aJavaSE 初级―第六单元:循环结构 1:求 10 以内的偶数的和。 2:求 100 以内的所有素数 3:随机产生一个 1-100 之间的整数,看能几次猜中。要求:猜的次数不能超过 7 次,每次 猜完之后都要提示“大了”或者“小了”。 4:写一个方法,此方法实现判断某年某月某日是这一年的第几天?(年月日通过方法的参 数提供) 5:写一个方法,此方法实现输出 100-999 之间的水仙花数。 6:输出小写的 a-z 以及大写的在 Z―A 7:求出 1-3+5-7+9-?..101 的和 8:求出 1-1/2+1/3-1/4?..1/100 的和 9:输出 20-80 之间能被 3 整除的整数,每 5 个一行 10:打印出
年中所有的闰年,并以每行四个数的形式输出 11:定义两个整数 a、b,a、b 的取值范围在 0-9 之间,给出所有符合 a+b=12 的组合。 12:A、B、C、D 分别为 0――9 之间的整数,求出满足 AB+CD=DA 条件的数。 例如:90+09=99 13:随机生成一个五位以内的数,然后输出该数共有多少位,每位分别是什么 14:输出九九乘法表 715:使用 java 实现输出如下图形。JavaSE 初级―第七单元:循环结构 1:实现双色球的彩票功能。规则:从 36 个红球中随机选择不重复的 6 个数,从 15 个篮 球中随机选择 1 个组成一注彩票。可以选择买多注。 2:输出 1-100 之间的不能被 5 整除的数,每 5 个一行。 3:输出斐波那契额数列数列的前 20 项 4:输出一个整数的二进制数、八进制数、十六进制数。 5:随机产生一个字母,如果是大写字母则输出“yes” ,否则输出“no” 6:随机产生一个字符,判断:如果为大写字母则输出“大写字母” ;如果为小写字母则 输出“小写字母” ;否则怎输出“其他字符” ; 7:判断一个月份属于一年中的那个季节。 (春夏秋冬) 8:年月日分别为自定义函数的参数,判断是否为正确的日期,并求出该日期的下一天的 年份月份和日期。 9:求 100 到 1000 之间的所有能被 5 和 6 整除的整数,每行显示 5 个 10:求和:1/3+3/5+5/7+7/9+???..+97/99 11:在控制台上打印出今年的日历。 12:输出 100 以内的所有素数,每行显示 5 个;并求和。 13:山上有一口缸可以装 50 升水,现在有 15 升水。老和尚叫小和尚下山挑水,每次可以 挑 5 升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。 提示: (1) 用整型变量 water 表示水缸里的水“int water = 15;” 。 8(2) 用整型变量 l 表示小和尚下山挑水的次数“int l = 0;” 。 (3) 分析循环条件(水少于 50 升) ,循环操作(水增加 5 升,挑水次数增加 1) 。 (4) 套用 while 循环(或 do-while 循环)写出代码。 14:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒, 试问李白壶中原有多少斗酒?(使用 for 循环结构编程实现) 提示:采用逆向思维分析问题。 15:打印心形JavaSE 初级―第八单元: 方法的结构以及调用 1:开发一个标题为“FlipFlop”的游戏应用程序。它从 1 计数到 100,遇到 3 的倍数就替 换为单词“Flip” ,5 的倍数就替换为单词“Flop” ,既为 3 的倍数又为 5 的倍数则替换为单 词“FlipFlop” 。 2:生成 13 位条形码 Ean-13 码规则:第十三位数字是前十二位数字经过计算得到的校验码。 例如: 计算其校验码的过程为: @前十二位的奇数位和 6+0+2+4+6+8=26 @前十二位的偶数位和 9+1+3+5+7+9=34 @将奇数和与偶数和的三倍相加 26+34*3=128 @取结果的个位数:128 的个位数为 8 @用 10 减去这个个位数 10-8=2 所以校验码为 2 (注:如果取结果的个位数为 0,那么校验码不是为 10(10-0=10) ,而是 0) 实现方法 ean13()计算验证码,输入 12 位条码,返回带验证码的条码。 9例:输入: 输出:2 3:求两个整数的最大公约数和最小公倍数 4:从键盘上输入一个 3*4 的整型数组,求出其中的最大值和最小值,并显示出 5:用数组求出斐波那契数列的前 20 项值 6:有 10 个数字要求分别用选择法和冒泡法从大到小输出 7:给 100 元整钱,现在有 10 元,5 元,1 元的零钱,求出一共有多少种组合,找出最佳组 合(钱张数最少) 8:输出 n 行 n 列的空心菱形及(要求使用嵌套循环) ,当 n=5 时,运行结果显示如下(20 分) :* * * * * * * * * * * *9:设计 Java 程序,假设有 50 瓶饮料,喝完 3 个空瓶可以换一瓶饮料,依次类推,请问总 共喝了多少瓶饮料?10: 定义一个判断闰年的方法, 在 main 方法中调用该方法判断输入的一个年份是否是闰年。 JavaSE 初级―第九单元: 案例分析-ATM 取款机功能分析菜单设计 JavaSE 初级―第十单元 面向对象的基本概念 1:写一个人的类 属性:名字,性别,年龄 方法: (1)自我介绍的方法(2)吃饭的方法 创建一个对象“张三” 2:写一个汽车类: 属性:品牌;车长;颜色;价格; 方法:跑的方法 创建五个对象: “捷达” , “宝马” , “劳斯莱斯” , “科鲁兹” , “迈锐宝” 3:写一个课程类: 属性:课程名;学时;任课老师; 创建五个对象: “c 语言” , “java 编程” , “php 网络编程” , “c++” , “数据结构” 4: 0――――――&X | | | P(X,Y) | | Y 定义一个类,用于描述坐标点 (1) 具有计算当前点到原点距离的功能 10(2) 求到任意一点(m,n)的距离 (3) 具有坐标点显示功能,显示格式(x,y) 3:定义一个圆类型 提供显示圆周长功能的方法 提供显示圆面积的方法 4:编程创建一个 Box 类,在其中定义三个变量表示一个立方体的长、宽和高,定义一个方 法求立方体的体积。创建一个对象,求给定尺寸的立方体的体积。 5:设计一个 Dog 类,有名字、颜色和年龄属性,定义构造方法初始化这些属性,定义输出 方法 show()显示其信息。 6:定义一个计算机类: 属性:品牌;价格;颜色; 方法: (1)编程的功能 (2)上网的功能 实例化两个对象: “lenovo” ; “hasee” 8:编写一个类 Student,代表学员,要求: (1)具有属性:学号、姓名、年龄、性别、专业。 (2)具有方法:自我介绍,负责输出该学员的姓名、年龄、性别以及专业。 JavaSE 初级―第十一单元:数组 1:对 10 个整数进行按照从小到大的顺序排序2:求一个 3*3 矩阵对角线元素之和 &提示&程序分析:利用双重 for 循环控制输入二维数组,再将 a[i][i]累加后输出。3:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 &提示&程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况, 插入后此元素之后的数, 依次后移一个位置。4:将一个数组逆序输出。 &提示&程序分析:用第一个与最后一个交换。5:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。6:有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数7:定义一个 4 行 4 列的二维数组,逐个从键盘输入值,然后将第 1 行和第 4 行的数据进行 11交换,将第 2 行和第 3 行的数据进行交换8:定义一个 3 行 4 列的二维数组,逐个从键盘输入值,编写程序将四周的数据清 09:定义一个 3 行 4 列的二维数组,逐个从键盘输入值,将左下三角的值清 010:定义一个 4 行 4 列的二维数组,逐个从键盘输入值,将对角线的值清 011: 定义一个 N*N 二维数组, 从键盘上输入值, 找出每行中最大值组成一个一维数组并输出;12:有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中JavaSE 初级―第十二单元 构造方法 1:写一个人的类 属性:名字,性别,年龄;提供无参的构造方法和一个有参的构造方法 方法: (1)自我介绍的方法(2)吃饭的方法 创建一个对象“张三” 2:写一个汽车类: 属性:品牌;车长;颜色;价格; 创建五个对象: “捷达” , “宝马” , “劳斯莱斯” , “科鲁兹” , “迈锐宝” 提供无参的构造方法和一个有参的构造方法 3:写一个课程类: 属性:课程名;学时;任课老师; 创建五个对象: “c 语言” , “java 编程” , “php 网络编程” , “c++” , “数据结构” 提供无参的构造方法和一个有参的构造方法 4: 0――――――&X | | | P(X,Y) | | 12Y 定义一个类,用于描述坐标点 (1) 具有计算当前点到原点距离的功能 (2) 求到任意一点(m,n)的距离 (3) 求到任意一点(Point p)的距离 (4)具有坐标点显示功能,显示格式(x,y) (5)提供无参的构造方法和一个有参的构造方法 5:定义一个圆类型 提供显示圆周长功能的方法 提供显示圆面积的方法 提供无参的构造方法和一个有参的构造方法 6:编程创建一个 Box 类,在其中定义三个变量表示一个立方体的长、宽和高,定义一个方 法求立方体的体积。创建一个对象,求给定尺寸的立方体的体积。 提供无参的构造方法和一个有参的构造方法 7:设计一个 Dog 类,有名字、颜色和年龄属性,定义构造方法初始化这些属性,定义输出 方法 show()显示其信息。 提供无参的构造方法和一个有参的构造方法JavaSE 初级―第十四单元 JAVA 特性之封装 1:要求设计一个学生类。 1:属性有:姓名、java 成绩、android 成绩、mysql 成绩 2:所有属性要求使用 private 修饰。 3:为每个属性设置 setter 和 getter 方法 4:添加有为全部属性赋值的构造方法 5:有输出一个完整学生信息的方法 6:要求可以求学生的总分、平均分、最高分、最低分。 2: 编写一个 Java 应用程序,设计一个汽车类 Vehicle,包含的属性有车轮个数 wheels 和 车重 weight。 小车类 Car 是 Vehicle 的子类, 其中包含的属性有载人数 loader。 卡车类 Truck 是 Car 类的子类,其中包含的属性有载重量 payload。每个类都有构造方法进行属性初识化 和输出相关数据的方法; 使用 Test 类中的 main 方法定义各类初始化数据后台打印相关数据 3:请通过代码封装,实现如下需求: 编写一个类 Book,代表教材: 1)具有属性:名称(title)、页数(pageNum),其中页数不能少于 200 页,否则输 出错误信息,并赋予默认值 200 2)每个属性要求使用 private 修饰,并且为各属性设置赋值和取值方法 3)具有方法:detail,用来在控制台输出每本教材的名称和页数 4)编写测试类 BookTest 进行测试:为 Book 对象的属性赋予初始值,并调用 Book 对 象的 detail 方法,看看输出是否正确 134:通过继承实现员工工资核算打印功能。有员工类,普通员工类和部门经理类,普通员工 工资=单日工资*天数*等级(1) ;部门经理工资=1000+单日工资*天数*等级(1.2) 。 a) 员工属性(单日工资,工作天数,工资等级静态常量),员工方法(打印 工资) b) 普遍员工及部门经理都是员工子类,需要重写打印工资方法。 定义并初始化普通员工对象,调用打印工资方法输入工资,定义并初始化部门经理对象,调 用打印工资方法输入工资 5:编写一个类 Book2,代表教材: 具有属性:名称(title) 、页数(pageNum) ,其中页数不能少于 200 页,否则输出错误 信息,并赋予默认值 200 具有方法:Sdetail,用来在控制台输出每本教材的名称和页数 具有带参数的构造方法: 用来完成对象的初始化工作, 并在构造方法中完成对页数的最 小值限制 编写测试类 Book2Test 进行测试: 初始化一个 Book2 对象, 并调用该 Book2 对象的 detail 方法,看看输出是否正确 6: 编写一个类 Book3,代表教材: 具有属性:名称(title) 、页数(pageNum) 、类型(type) 具有方法:detail,用来在控制台输出每本教材的名称、页数、类型 具有两个带参构造方法:第一个构造方法中,设置教材类型为“计算机” (固定) ,其余 属性的值由参数给定;第二个构造方法中,所有属性的值都由参数给定 编写测试类 Book3Test 进行测试: 分别以两种方式完成对两个 Book3 对象的初始化工作, 并分别调用它们的 detail 方法, 看看输出是否正确 7:根据上图写出“司机”类。 (主要体现方法的重载) 148:编写一个类 Student,代表学员,要求: (1)具有属性:姓名、年龄、性别、专业。 (2)具有方法:自我介绍,负责输出该学员的姓名、年龄、性别以及专业。 (3)具有两个带参构造方法:第一个构造方法中,设置学员的性别为男、专业为 3g,其余 属性的值由参数给定;第二个构造方法中,所有属性的值都由参数给定 编写测试类 StudentTest 进行测试, 分别以两种方式完成对两个 Student 对象的初始化工作, 并分别调用它们的自我介绍方法,看看输出是否正确。JavaSE 初级―第十五单元 JAVA 的特性之继承 (一) 1:宠物类叫 Pet(父类); 属性有 name 和 age; 行为有吃 eat(); 喝 drink(); 叫声 shout(); 子类 Cat 和 Dog Cat 继承 Pet 类所有并且增加一个自己的特有方法 climbTree() 爬树并且叫声是喵喵 Dog 继承 Pet 类所有并且增加一个自己的特有方法 police() 警戒并且叫声是汪汪 2:父类:家用电器,属性有电流、电压;行为有开 open(),关 close() 子类:电视除以上还有方法:display(); 洗衣机还有方法:wash(); 电灯的特有方法如 light(); 3:已有 Bird 类的定义如下: public class Bird { protected staticintreferenceCount=0; public Bird(){referenceCount++;} protected void fly(){ } static intgetReCount(){return referenceC} } 有类 Nightingale 的定义如下,请写出它的输出结果。 class Nightingale extends Bird { Nightingale( ) { referenceCount++;} 15public static void main( String args[ ]){ System.out.println(&Before:&+referenceCount); Nightingale florence=new Nightingale( ); System.out.println(&After:&+referenceCount); florence.fly( ); } } 分析以上程序的输出结果是什么?为什么? 4:定义一个图形类和(子类)圆形类、矩形类 图像类:有求周长和求面积和显示图形信息的功能。 圆形类:包含圆心和半径,重写求周长和求面积的方法 矩形类:包含长和宽,重写求周长和求面积的方法 5:写出 this 和 super 的用法。6:写出 static 和 final 的用法7:编写老师类 (1)要求有属性“姓名 name” , “年龄 age” , “职称 post” , “基本工资 salary” (10 分) (2) 设置 4 个静态常量: “部门 department” 值为 “baway” “工资级别 levela ,levelb,levelc” , 初始值分别为 1.1,1.2,1.3。 (10 分) (3)编写业务方法, introduce() ,实现输出一个教师的信息。 (10 分) (4) :编写教师类的三个子类:教授类、 副教授类、 讲师类。 工资级别分别为: 教授为 1.3、 副教授为 1.2、讲师类 1.1。在三个子类里面都重写父类的 introduce()方法。 (5)定义并初始化一个老师对象,调用业务方法,实现对象基本信息的后台打印。 (10 分) 8:通过继承实现员工工资核算打印功能。 父类:员工类 子类:部门经理类、普通员工类 部门经理工资=1000+单日工资*天数*等级(1.2) 。 普通员工工资=单日工资*天数*等级(1.0) ; (1) 员工属性:姓名,单日工资,工作天数(10 分) 16(2) 员工方法(打印工资) (10 分) (3)普遍员工及部门经理都是员工子类,需要重写打印工资方法。 (20 分) (4)定义并初始化普通员工对象,调用打印工资方法输入工资,定义并初始化部门经理对 象,调用打印工资方法输入工资(10 分) 9:设计父类―员工类。子类:工人类,农民类,教师类,科学家类,服务生类。 (10 分) (1) 其中工人,农民,服务生只有基本工资。 (10 分) (2) 教师除基本工资外,还有课酬(元/天)。 (10 分) (3) 科学家除基本工资外,还有年终奖。 (10 分) (4) 编写一个测试类,将各种类型的员工的全年工资打印出来。 (10 分) 10: 定义一个图形类 Picture,再定义 Picture 的两个子类:圆形类 Circle、矩形类 Rect。 (10 分) 要求: 图像类:有求周长和求面积和显示图形信息的功能。 (10 分) 圆形类:包含圆心和半径,重写求周长和求面积的方法。 (15 分) 矩形类:包含长和宽,重写求周长和求面积的方法。 (15 分)JavaSE 初级―第十六单元 JAVA 的特性之继承 (二)--Object 类 1:为什么要重写 toString()方法?2:为什么要重写 equals()方法?3:定义平面内点的类 Point,属性有横坐标和纵坐标。 (1) 每个属性都使用 private 修饰,为每个属性设置 setter 和 getter 方法。 (2) 设置无参的构造方法 (3) 设置有参的构造方法 Point(int x,int y) (4) 设置有参的构造方法 Point(Point p) (5) 重写 toString()方法,用于输出坐标点的信息 (6) 重写 euqals()方法,用于对两个坐标点进行比较 4:定义一个 person 类, 属性如下: (1) 身份证号, 性别, 姓名, 年龄, 户籍, 出生日期 (Data 类型, 需要引用 java.uitl.Data) 功能: (2)自我介绍:介绍格式: (toString) 身份证号+姓名+户籍 (3)提供对象比较 equals 方法,只要身份证号+姓名相同就认为对象相等 175:写出重载与重写的区别。6:请写出 java 基本数据类型及对应的封装类型,并说明封装类的作用。7:写出“==”和 equals 的区别。8:创建一个汽车类(Car) (1) 为其定义两个属性:颜色和型号。每个属性都使用 private 进行封装,为每个属性 设置 set、get 方法。 (10 分) (2) 为该类创建两个构造方法。第一个为无参的构造方法。第二个为带参构造方法(10 分) (3) 重写 toString 方法,通过 toString 输出汽车信息。 (10 分) (4) 重写 equals 方法,如果汽车的颜色和型号相同就认为是同一辆车。 (10 分) (5) 实例化两个对象, 输出两个对象的信息, 比较两个对象是否是同一个对象。 (10 分) 9:编写一个 Java 应用程序,设计一个汽车类 Vehicle,包含的属性有车轮个数 wheels 和 车重 weight。 小车类 Car 是 Vehicle 的子类, 其中包含的属性有载人数 loader。 卡车类 Truck 是 Car 类的子类,其中包含的属性有载重量 payload。 (20 分) (1) 每个类都有构造方法进行属性初识化(10 分) (2) 每个类都输出相关数据的 toString 方法(10 分) (3) 使用 Test 类中的 main 方法定义各类初始化数据后台打印相关数据(10 分) 10: (1)编写一个人类 Person,其中包含姓名、性别和年龄的属性,包含构造方法以及显 示姓名、性别和年龄的方法。 (10 分) (2)再编写一个学生类 Student,它继承 Person 类,其中包含学号属性,包含构造方法以 及显示学号的方法。 (10 分) (3) 在 Student 类里面重写 equals 方法, 只要是学号和姓名一致就认为是同一个学生。 (20 分) (4)最后编写一个测试类,此类里面包含 main()方法,在 main()方法中定义两个学生 s1 和 s2 并给他们赋值,最后显示他们的学号、姓名、性别以及年龄,以及判断两个学生是否 是同一个学生。 (10 分)JavaSE 初级―第十七单元 String 类、StringBuffer 类、Math 类、Date 类 181:完成 MathLib 类,可以做加,减,乘,除等功能,其中加法不但可以做数字的加法,还 可以做字符串的相加。 2:任意给定的一串字母,统计字符串里面的大写字母和小写字母的个数。 3:根据传入得路径,获取文件名。 例如:D:\myfile\hello.java 取出 hello.java 4:根据传入得路径,获取文件的类型名。 例如:D:\myfile\hello.java 取出.java 5:String 类和 StringBuffer 类的区别 6:求两个日期之间相隔的天数 写一个方法(例如:fun3(&&,&&) ),求输入的字符串
之间相隔的天数 7:编写 java 程序,输入形式为: First Middle Last 的人名,以 Last,First .M 的形式 打印出来。其中.M 是中间单词的首字母。例如输入“Willian Jefferson Clinton” ,输出 形式为:Clinton, Willian .J 8:编写 java 程序,随便输入两个单词,两个单词之间以空格隔开,输出时每个单词的首字 母变为大写。如输入: “hello java” ,输出为“Hello Java” 9:求出“hijavahehejavahejava”字符串里面包含几个“java 字符串。 ” 10:输出字符串&ddejidsEFALDFfnef2357 3ed&里的大写字母数,小写英文字母数,非英文 字母数 11:输入一句 5 个字的话,然后将它逆序输出。例如: 原数组:我爱你中国 逆序输出:国中你爱我 提示:先声明一个字符串数组,每个汉字作为字符串数组的一个元素,然后再从数组末尾开 始循环输出。 12:利用随机数生成一个整数数组,数组中有 10 个元素,每个元素的值都在 0-9 之间,打 印该数组。 提示:使用 Math.random()方法可以生成一个随机小数 x(O&x&1) ,然后将生成的数扩大 10 倍后再求整,循环多次就可以生成一个整数数组。JavaSE 初级―第十八单元 JAVA 内存存储方式 1:java 对内存的划分分为几类?2:堆和栈的区别?3:写出 8 中基本数据类型的包装类。 19JavaSE 中级―第一单元:抽象类 1:抽象类和抽象方法之间的关系 定义抽象类和抽象方法的关键字是() 。抽象类中() (可以/不可以)有抽象方法, () (可以/不可以)有普通方法() (可以/不可以)有属性;一个类中定义了抽象方法,那这 个类() (必须/不必须)用 abstract 修饰,即抽象类。 2:定义一个抽象类 Person,有 name,age,sex 三个属性,创建构造函数,给这三个属性 赋值, 重写打印描述信息方法, 打印三个属性值; 这个类中有两个抽象方法 work 和 hello; 定义两个子类 Teacher, Student; 教师的 work 实现是: 教书育人, hello 实现是: “同学好” ; 学生的 work 实现是:认真学习,hello 实现是“老师好” 。 3:定义 Shape 抽象类,包含私有属性 color,创建构造器为 color 赋值;包含计算周长 的方法 celPerimeter();定义子类 Triangle, 包含三边; 定义子类 Circle, 包含半径 radius; 子类分别实现父类的计算周长功能。 4:定义员工类 Employee,包含姓名、工号和工资,包含计算奖金方法 bonus,普通员工 和经理都是员工,计算奖金的方法为工资*奖金系数,普通员工的奖金系数为 1.5(常量) , 经理为 2(常量) ,分别实现 bonus 方法,创建对象测试。 5:定义一个交通工具类,并定义抽象方法,说明交通工具可以移动。继承交通工具而产 生汽车、飞机、轮船类,并实现其移动方法。 6:按要求实现下列问题: 1)封装一个西游记人物类 Person:包含私有属性:姓名(name) 、身高(height) 、 武器(weapon) 、种族(race) ,并提供访问器(get 方法)和修改器(set 方法) 2) 在测试类中实例化三个对象: tangseng (唐僧) 、 sunwukong (孙悟空) 、 baigujing (白骨精),分别设置他们的种族为:人族、仙族、妖族 3) 在打印对象时,按照例如:“姓名:孙悟空;种族:仙族”的格式在控制台输出 信息。 4) 提供一个技能方法 void skill(),这个方法根据当前对象 name 属性判断技能,如 果是孙悟空,就打印“七十二变”,如果是唐僧,就打印“紧箍咒”,如果是白 骨精,就打印“九阴白骨爪”,在测试类中调用这个方法。 5) 重写 equals 方法进行判断,如果种族属性是人族或者仙族,则返回 true,如果是 妖族,则返回 false,在测试类中对孙悟空和唐僧进行比较,打印结果,对唐僧和 白骨金进行比较,并打印结果。 7:按要求实现下列问题: 实现一个名为 Person 的类和它的子类 Employee,Employee 有两个子类 Faculty 和 Staff。 具体要求如下: 1) Person 类中的属性有:姓名 name(String 类型),地址 address(String 类 型), 电话号码 telphone(String 类型)和电子邮件地址 email(String 类型); 2) Employee 类中的属性有:办公室 office(String 类型),工资 wage(double 20类型),受雇日期 hiredate(String 类型); 3) Faculty 类中的属性有:学位 degree(String 类型),级别 level(String 类型); 4) Staff 类中的属性有:职务称号 duty(String 类型)。 5) 现有对象 Person p1 =new Faculty()和 Person p2 =new Staff (),请分别为 p1 的属性赋值“本科”和 Staff 类的 duty 赋值“职员”JavaSE 中级―第二单元:接口 1:叙述接口的特点和作用2:选择题 1)下面关于接口的说法中不正确的是() 。 A.接口中所有的方法都是抽象的 B.接口中所有的方法都是 public 访问权限 C.子接口继承父接口所用的关键字是 implements D.接口是 Java 中的特殊类,包含常量和抽象方法 2)Java 语言接口间的继承关系是() 。 A.单继承 B.多重继承 C.不能继承 D.不一定 3)一个类实现接口的情况是() 。 A.一次可以实现多个接口 B.一次只能实现一个接口 C.不能实现接口 D.不一定 3:填空题 1)是声明接口的关键字, 可以把它看成一个特殊类。 接口中的数据成员默认的修饰符是, 接口中的成员方法默认的修饰符是。 2)如果实现某接口的类不是 abstract 的抽象类, 则在类的定义部分必须该接口的所有抽 象方法;如果实现某接口的类是 abstract 的抽象类,则它可以该接口所有的方法。但是对 于这个抽象类任何一个非抽象的子类而言,它们父类所实现的接口中的所有抽象方法以及 自身所实现接口中的抽象方法都必须有实在的。 4:编一个程序,包含以下文件。 (1)Shape.java 文件,在该文件中定义接口类 Shape,该接口在 shape 包中。 属性:PI。 接口:求面积的方法 area()。 (2)Circle.java 文件,在该文件中定义圆类 Circle,该类在 circle 包中,实现 Shape 接口类。 属性:圆半径 radius。 方法:构造方法;实现求面积方法 area();求周长方法 perimeter()。 21(3)Cylinder.java 文件,在该文件中定义圆柱体类 Cylinder,该类在 cylinder 包中, 继承圆类。 属性:圆柱体高度 height。 方法:构造方法;求表面积方法 area();求体积方法 volume()。 (4)X5_3_6.java 文件,在该文件中定义主类 X5_3_6,该类在默认包中,其中包含主 方法 main(),在主方法中创建两个圆类对象 cir1 和 cir2,具体尺寸自己确定,并显示圆的 面积和周长;再创建两个圆柱体类的对象 cy1 和 cy2,具体尺寸自己确定,然后分别显示圆 柱体 cy1 和 cy2 的底圆的面积和周长以及它们各自的体积和表面积。 【编程分析】本题主要考察接口、包、继承、封装等问题。 5:鸭嘴兽属于脊椎动物中的哺乳动物,太阳花属于植物中的种子植物,而鸭嘴兽和太阳花 都属于生物。 完成如下要求(共 50 分,每小题 10 分): 1)设计一系列的接口来表示这些规范:生物?动物?脊椎动物?哺乳动物;生物?植 物?种子植物,并且按照箭头要求来继承; 2)生物都有呼吸方式,只有一个方法声明:void respirations();设计两个类,分别 是鸭嘴兽和太阳花,分别实现生物接口的 respirations 方法,执行方法可以分别输出: “鸭 嘴兽是动物,需要呼吸氧气” , “太阳花是植物,可以吸收二氧化碳,呼出氧气” ; 3)动物接口拥有方法声明:void run(),鸭嘴兽类可以实现方法,输出信息: “鸭嘴兽 只有两只脚,它可以用两只脚奔跑” 4)植物接口都有繁殖方法声明 void reproduction(),太阳花在实现 reproduction 方法时输出信息“太阳花可以用种子繁殖,也可以用枝条繁殖” 5) 声明一个 Test 类作为测试,执行上述声明的所有方法; 6:请使用接口编码实现如下需求: 乐器(Instrument)分为:钢琴(Piano)、小提琴(Violin) 各种乐器的弹奏( play )方法各不相同。 编写一个测试类 InstrumentTest,要求: 编写方法 testPlay,对各种乐器进行弹奏测试。要依据乐器的不同,进行相应的弹奏。 在 main 方法中创建不同的乐器对象,通过 testPlay 的弹奏测试方法进行测试。 7:按要求实现下列问题: 1) 动物类 Animal 包含了抽象方法 abstract void shout(); 2) Cat 类继承了 Animal,并实现方法 shout,打印“猫会喵喵叫” 3) Dog 类继承了 Animal,并实现方法 shout,打印“狗会汪汪叫” 4) 在测试类中实例化对象 Animal a1 =new Cat(),并调用 a1 的 shout 方法 5) 在测试类中实例化对象 Animal a2 =new Dog(),并调用 a2 的 shout 方法 22JavaSE 中级―第三单元:简单工厂模式 1:接口和抽象类的异同点 2:叙述工厂模式的设计理念 3:有一个交通工具接口类 Vehicles,有 work 接口,有 Horse 类和 Boat 类分别实现 Vehicles, 创建交通工具工厂类, 有两个方法分别获得交通工具 Horse 和 Boat; 有 Person 类,有 name 和 Vehicles 属性,在构造器中赋值,实例化“唐僧” ,一般情况下用 Horse 作为交通工具,遇到大河时用 Boat 作为交通工具。 4:有一个农场公司,专门向市场销售各类水果,主要包括下列水果:葡萄 Grape,草 莓 Stuawberry,苹果 Apple;有一个 Fruit 接口,包含 grow 生长,harvest 收获和 plant 方法, 葡萄、 草莓和苹果都实现了这个接口; 有一个农场园丁类 FruitGardener, 具有采摘水果的方法 getFruit(String fruitName);这时有人来果园玩,和园丁说介绍 一下你的各种水果(创建一个 People 类进行测试, 分别通过农场园丁类得到各种水果)。5:有一个显示器接口 Graphoscope,具有 display 方法,有两个类:台式显示器和液晶显示 器都实现显示器接口,有一个显示器生产厂家能够生产这两种显示器;有 Computer 类,具 有 Graphoscope 属性,生产两台电脑,分别配置台式显示器和液晶显示器。JavaSE 中级―第四单元:内部类 1:填空题 1)内部类(可以/不可以)了解外部类 2)静态内部类用修饰。 3)外部类(可以/不可以)通过类名访问静态内部类里的静态成员(变量和方法) 4)外部类(可以/不可以)通过类名访问非静态内部类里的成员(变量和方法) 5)非静态内部类可以访问外部类的成员,也能访问外部类的成员 6)静态内部类可以访问外部类的成员,不能访问外部类的成员 7)非静态内部类(可以/不可以)用 static 修饰她的成员(变量和方法) 2:纠错体 已知有下面类的说明: PublicclassFirst { P Staticintb = 5; PublicclassContents{ P S Publicvoidf(){ System.out.println(a); System.out.println(b); } 23} StaticclassTitles{ P S Publicvoidshow(){ System.out.println(a); System.out.println(b); } } PublicvoidgetInnerClassDate(){ System.out.println(c);// System.out.println(d);// System.out.println(e);// System.out.println(f);// } Publicstaticvoidmain(String[] args) { } } 1)这个类定义有问题吗?如果有请找出。 2)在 main 方法中如何获得两个内部类的实例对象?并且访问内部类的方法,请写出代码 3:有一个 Car 类,有属性 temperature(温度),车内有 Air(空调),有吹风的功能 flow, Air 会监视车内的温度,如果温度超过 40 度则吹冷气。如果温度低于 0 度则吹暖气,如果 在这之间则关掉空调。实例化具有不同温度的 Car 对象,调用空调的 flow 方法,测试空调 吹的风是否正确 4:编一个类 A,在类中定义局部类 B,B 中有一个常量 name,有一个方法 show()打印常量 name。进行测试 5:设计公司类(Lenovo),有一个接口类 Works,里面有接口 work(),下面有 2 个部门(开 发部和销售部),使用内部类分别实现开发部和销售部的工作。 6:计算器具有 work 方法,功能是运算,时钟同样具有 work 方法,功能是计时,有一个手 机类 Cellphone,同时需要拥有运算和计时功能,通过内部类实现多继承效果。 7:有一个铃声接口类 Bell,有一个接口 sound,有一个手机类 Cellphone,具有闹钟功能 alarmclock, 参数是 Bell 类型, 测试手机类的闹钟功能, 通过匿名内部类作为参数, 打印: 懒猪起床了。 24JavaSE 中级―第五单元:枚举类 1:创建月份枚举类,枚举值包含十二个月份,月份要求用英文单词 2: 创建星期枚举类, 有 7 个枚举值, 包含计划属性 plan, 为此属性赋值 (不要使用构造器) 。 3:把第二题的赋值修改为通过构造器赋值。 4:创建一个 Color 枚举类, 1)有 RED,BLUE,BLACK,YELLOW,GREEN 这个五个枚举值; 2)Color 有三个属性 redValue,greenValue,blueValue, 3)创建构造方法,参数包括这三个属性, 4)每个枚举值都要给这三个属性赋值,三个属性对应的值分别是 red:255,0,0 blue:0,0,255 black:0,0,0 yellow:255,255,0 green:0,255,0 5)重写 toString 方法显示三属性的值 6)在 Color 中添加抽象方法 meaning,不同的枚举类的 meaning 代表的意思各不相同 5:有一个接口类 Works,有个反射颜色的接口 ReflectColor,用第 4 题的 Color 枚举类实 现这个接口类,每个枚举值反射自己颜色的光JavaSE 中级―第六单元:集合(一) 1:叙述集合的概念和作用 2: 定义一个 Collection 接口类型的变量, 引用一个 Set 集合的实现类, 实现添加单个元素, 添加另一个集合,删除元素,判断集合中是否包含一个元素,判断是否为空,清除集合,返 回集合里元素的个数等常用操作。 3:创建 Set 接口的实现类,添加 10 个以上的元素,通过 Iterator 遍历此集合元素。 4:创建 Set 接口的实现类,添加 10 个以上的元素,通过 foreach 遍历此集合元素。 5:创建 Set 接口的实现类,添加 10 个以上的元素,要求能够排序。 6:创建 Car 类,包含 name,price 属性,构造器等方法,创建测试类,在 main 方法中创建 Set 接口的实现类,添加 5 个以上的 Car 对象,遍历集合元素,验证重复元素是否过滤了; 如果没有过滤,实现过滤功能;把每个小车的 price 降 10000 元,再遍历,查看 price 是否 已改变 25JavaSE 中级―第七单元:集合(二) 1:定义一个 Collection 接口类型的变量, 引用一个 List 集合的实现类, 实现添加单个元素, 添加另一个集合,删除元素,判断集合中是否包含一个元素,判断是否为空,清除集合,返 回集合里元素的个数等常用操作。 2:创建 ArrayList 实例化对象,添加 10 个以上的元素,在 2 号位插入一个元素,获得 5 号 位元素,删除 6 号位元素,修改 7 号位的元素; 3:通过四种方法遍历 2 题中的集合 4:叙述 ArrayList 和 Vector 实现类的异同 5:创建 LinkedList 实例化对象,练习具有队列特点的方法 6:按要求实现下列问题: 1)封装一个新闻类,包含标题和内容属性,提供 get、set 方法,重写 toString 方法,打印 对象时只打印标题; (10 分) 2)只提供一个带参数的构造器,实例化对象时,只初始化标题;并且实例化两个对象: 新闻一:中国多地遭雾霾笼罩空气质量再成热议话题 新闻二:春节临近北京“卖房热” 3)将新闻对象添加到 ArrayList 集合中,并且使用 ListIterator 倒序遍历; 4)在遍历集合过程中, 对新闻标题进行处理, 超过 15 字的只保留前 14 个, 然后在后边加 “?” 5)在控制台打印遍历出经过处理的新闻标题;JavaSE 中级―第八单元:集合(三) 1:定义一个 Map 接口类型的变量,引用一个实现类,添加键值对,判断集合中是否包 含某一 key 值,通过某一 key 值得到 value 值,通过某一 key 删除键值对,把另一个 map 集合添加到此 map 集合,判断是否为空,清除集合,返回集合里元素的个数等常用操作。 2:叙述 HashMap 和 Hashtable 的异同 3:通过两种方法遍历 1 题中的 map 集合 4:使用 Map 接口的实现类完成员工工资(姓名--工资)的摸拟: 1)添加几条信息 2)列出所有的员工姓名 3 列出所有员工姓名及其工资 4)删除名叫“Tom”的员工信息 5)输出 Jack 的工资,并将其工资加 1000 元(通过取值实现) 6)将所有工资低于 1000 元的员工的工资上涨 20%(通过取值实现) 265:创建有序的 map 集合的实例化对象,添加元素,查看排序结果 6:叙述 HashSet 和 HashMap 的性能选择7:封装一个新闻类,包含标题、作者、新闻内容和发布时间,新闻标题如下: 新闻一:中国多地遭雾霾笼罩空气质量再成热议话题 新闻二:民进党台北举行“火大游行” 新闻三:春节临近北京“卖房热” 新闻四:春节临近北京“卖房热” 完成如下要求(共 50 分,每小题 10 分) : 1)完成对新闻类的设计,要求在初始化新闻类对象时 ,通过构造传参的形式对新闻标 题赋值,并要求实例化四个对象,标题内容如题。 2)要求打印新闻对象时,直接打印新闻标题; 3)要求使用 equals 方法比较新闻时,只要标题相同,就认为是同一新闻,请输出新闻 一与新闻二的比较结果,新闻三与新闻四的比较结果。 4)将新闻对象存入 HashSet 集合中,并且遍历集合,打印新闻类对象; 5)打印集合中新闻数量。 按要求完成下列任务: 8:使用 HashMap 类实例化一个 Map 类型的对象 m1,键(String 类型)和值(int 型)分 别用于存储员工的姓名和工资,存入数据如下: 张三――800 元;李四――1500 元;王五――3000 元; 1)将张三的工资更改为 2600 元 2)为所有员工工资加薪 100 元; 3)遍历集合中所有的员工 4)遍历集合中所有的工资JavaSE 中级―第九单元:集合(四) 1:创建一个 List 集合的对象,添加几个数字,反转对象中元素的顺序;根据元素的自 然顺序排序; 2:创建一个 List 集合的对象,添加几个字符串,反转对象中元素的顺序;根据元素的 自然顺序排序; 273:创建一个 List 集合的对象,添加几条数据,将 1 号位和 2 号位交换;获得最大值, 最小值, 4:分别创建 HashSet,ArrayList 和 HashMap 的实例化对象,通过这些实例化对象,分 别创建对应的同步对象 5:叙述主要集合实现类的遍历方法 6:按要求完成如下操作:每小题 10 分,共 50 分。 1) 生成 10 个随机数,值在 100 到 200 之间; 2) 将这十个数存入 HashSet 集合中(有可能集合的长度小于 10)。 3) 将这个 HashSet 集合转换成 ArrayList 集合 4) 重新为 ArrayList 集合排序,按照从小到大的顺序; 5) 使用 foreach 遍历集合; 7: 1 )封装一个汽车类,包含 String name、int speed 属性,在测试类中实例化三个 对象: c1, c2, c3, 分别设置 name 为: “奥拓” , “宝马” , “奔驰” , 速度分别设置为: 100,200,300 2 )使用 Map 集合对象 m1 将这三个汽车类对象保存成 key,然后将 int 型的汽车价钱 作为值保存在 m1 的 value 中,上述三款汽车分别对应的价钱是 , )遍历 m1 的键,打印 name 属性 4 )通过合适的方法,求出 m1 中“宝马”的价格,并打印结果; 5 )经过折旧,所有汽车都降价到原来的 80%,请打印降价后“宝马”的价格 8: 1 ) 要求集合对象 c1 中,只能添加字符串形式的单个元素,元素可以重复,在测试类 中为 c1 集合添加字符串“这是一个可以重复的集合”三遍,然后遍历打印结果。 2 )要求集合对象 c2 中只能添加整型数值,并且不可重复,按自然顺序排序。要求遍 历集合对象,打印添加进 1,2,3,4,5 五个数字的 c2 集合 3 )要求创建一个合适的 Map 集合对象 m1,它的键和值都只能是字符串,并且值可以 是 null,像 map 集合中添加三组字符串,其中一个只有键,值是空,遍历这个集合对象的 键,并打印键。 4)想办法将 m1 中所有值为 null 都替换成一个字符串”这里是空值” 5)遍历 m1 的所有值。 28JavaSE 中级―第十单元:泛型 1:开发一个泛型 Apple 类,要求有一个重量属性 weight 在测试类中实例化不同的泛型 对象,要求对象 a1 的这一属性是 String 类型,对象 a2 的这一属性是 Integer 型,a3 的这 一属性是 Double 型。分别为 a1,a2,a3 的重量属性赋值为:”500 克”,500,500.0,在 测试类中通过对象调用访问器得到属性值并输出。 另外思考, 为什么 a2 和 a3 的属性需要是 Integer 和 Double 而不是 int 和 double? 2:封装一个新闻类 News,包含新闻标题,新闻作者,新闻内容,新闻类型三个属性, 提供必要的访问器和修改器方法, 重写 toString 方法, 要求打印对象时输出格式为 “标题; 类型;作者” ,要求只要新闻标题相同就判断为同一条新闻。在测试类中创建一个只能容纳 该类对象的 ArrayList 集合,添加三条新闻。 遍历集合,打印新闻标题,将新闻标题截取字符串到 10 个汉字的长度。 3、按要求完成下列任务: 1)使用 HashMap 类实例化一个 Map 类型的对象 m1,键(String 类型)和值(int 型) 分别用于存储员工的姓名和工资,存入数据如下: 张三――800 元;李四――1500 元;王五――3000 元; 2) 将张三的工资更改为 2600 元 3) 为所有员工工资加薪 100 元; 4) 遍历集合中所有的员工 5) 遍历集合中所有的工资JavaSE 中级―第十一单元:异常处理(一) 1:请仔细阅读下列测试代码,请问如何处理才能使程序正常输出“这是个异常,不是错 误” ,并且不会报告任何错误或者异常信息? public class Test{ public static void main(String[] args) { int[] arr ={1,1,1,1}; for(int i = 0 ; i & 5;i++){ System.out.println(arr[i]); } System.out.println(&这是个异常,不是错误&); } } 292:请仔细阅读下列测试代码,请问如何处理才能使程序正常输出“请告诉我这个异常是 什么?” ,并且打印错误或者异常信息? public class Test { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add(&aaa&); al.add(&bbb&); al.add(&ccc&); al.add(&ddd&); al.add(5); for(Object o:al){ String s =(String)o; System.out.println(s); } System.out.println(&请告诉我这个异常是什么?&); } } 3:请问下面程序的执行结果是什么? public class Test { public static void main(String[] args) { String s=&这是个美丽的错误!&; for(int i = 0 ; i & 10;i++){ System.out.println(s.charAt(i)); } System.out.println(&请问这个程序会打印什么信息&); } } 4:请编写程序举例抛出一个空指针异常 5:请编写程序举例抛出一个类型转换异常 6:请编写程序举例抛出一个数组索引越界异常 7:请编写程序举例抛出一个索引越界异常 8:请编写程序举例抛出一个字符串索引越界异常 30JavaSE 中级―第十二单元:异常处理(二) 1:请编写程序举例说明,在数组索引越界异常中,如果只适用 try finally,捕获到的异常 不会被处理,程序仍然中断。 2:请创建一个遍历集合的方法, 3:public int m(){ try { return 1; }finally{ return 0; } } 当调用上述方法 m()时返回值是多少? 4:下面的代码合法吗? try { ... } finally { ... } 5:下面的代码可以捕获何种异常?使用这种异常处理器有什么问题? catch (Exception e) { ... } 6:下面的处理器可以捕获什么异常? } catch (Exception e) { ... } catch (ArithmeticException a) { ... } 这个异常处理器中有错误吗?此代码能否被编译?JavaSE 中级―第十三单元:Swing 和 AWT 编程 1:请编写程序使用 AWT 组件生成窗口,点击关闭按钮可以退出程序; 2:请编写程序窗口, 大小为 600*500, 底色为橘黄色, 设置布局为流式布局, 添加三个按钮, 分别设置为“红色” , “绿色” , “蓝色” ,要求完成任务,点击按钮时,背景色分别显示为按 钮文本描述的颜色。 3:请在同一截面显示 Swing 和 AWT 的按钮组件,尝试说明它们有什么不同。 4:使用 AWT 组件创建一个模拟 qq 登陆界面:需要使用两个文本框,一个登陆按钮,一个注 册按钮; 5:创建一个界面,大小为:800*600; 31分别有三个按钮,大小设置为两个 200*80,一个 200*200 要求:点击红色,测试区显示红色,点击蓝色,测试区显示蓝色; 效果如图:JavaSE 中级―第十四单元:AWT 常用组件 1:使用 Swing 组件创建一个界面,要求设置背景色为绿色,标题为“我的 swing 窗口”2:使用 swing 组件模拟计算器界面;3:使用 Swing 和 AWT 中的合适组件模拟简单的 qq 聊天窗口;4:请测试说明 JFrame 的默认布局是什么5:请测试说明 JPanel 的默认布局是什么 32JavaSE 中级―第十五单元:AWT 事件处理 1:按照要求完成下面操作: (共 50 分) 1)创建一个 JFrame 界面:并进行如下设置: (10 分) 大小为 600*450, 打开时默认距离显示器窗口左上角坐标为(200,100) 设置默认布局为 null 2)添加三个按钮;(10 分) 设置大小:120*60; 设置文本:“按钮 1”,“按钮 2”,“按钮 3” 设置位置为:相对于窗口位置左上角(0,0)(0,100)(0,200) 3)设置按钮 1 的 ActionListener 事件,要求点击按钮时,按钮文本变成“你点到我 了!”(10 分) 4)设置按钮二点击事件:点击后改变按钮背景色;(10 分) 5)设置按钮三键盘事件,敲击“A”时,按钮向右平移 100 个像素。 2:设置界面应用,要求如下(共 50 分) 1)使用 JFrame 对象,设置界面大小为:800*600, 使用 BorderLayout 布局进行设置; (10 分) 2)向窗口中添加五个按钮,分别标记文本:东、西、南、北、中; (10 分) 3)添加 ActionListener 事件监听,当点击“东”时,按钮东的背景变成绿色( 10 分) 4)当点击西时,按钮“中”的文本变为:你点击的是“西” (10 分) 5)设置鼠标滑过按钮“中”时,文字变为“鼠标路过” ,当鼠标划出按钮区域时,文本 变回“中” (10 分) 3:按要求完成下列操作:每一步 10 分,一共 50 分 1)创建一个 Frame 界面,设置大小 500*400,设置标题“我的窗口” 2)为界面设置背景色为绿色 3)添加一个按钮“确定” ,设置位置为窗口的左上角,大小为 200*80 4)设置鼠标事件,点击按钮时,背景色变为橘黄色 5)设置窗口关闭监听事件,在点击红色叉号时,窗口关闭,系统退出。 4:设置一个 JFrame 界面,完成如下要求: 1)使用 GridLayout 布局,组件水平间距为 20 像素,垂直间距为 10 像素; 2)设置窗口大小为 600*400,设置背景色为橘黄色; 3)添加 6 个按钮,按钮文本为“1”到“6” 4)添加 ActionListener 监听,点击按钮时,在控制台输出数字 5)添加键盘事件,按“Q” (请注意是大写)时,窗口退出。 5:创建一个 JFrame 界面。完成如下功能 1)设置大小为 600*400,设置布局为 null(10 分) 2)添加按钮,设置大小为 50*50,初始位置为(10 分) 3)添加监听事件,鼠标滑过按钮时,按钮移动位置; (10 分) 4)设置随机数 x,y,使按钮在窗口范围内随机移动(10 分) 5)设置鼠标事件,如果随机位置正好在鼠标下放,则将按钮背景色变为绿色。 ( 10 分) 33JavaSE 中级―第十六、十七单元:数据库复习和 JDBC 1:编写超市库存查询系统 创建数据库:创建库存表:tblStorage,表创建完成后插入 3 条数据 表名 主键 sid sname sprice scount sdate Int Varchar Float Int Date 50 4 否 否 是 是 否 tblStorage 作用 ID 主键,自增 商品名 单价 数量 生产日期 库存表1)创建 Storage 类,属性对应 tblStorage 表的字段,并封装其属性 2)编写数据访问类:StorageDao,编写方法 getCon()用来连接数据库 3)在 StorageDao 类中编写方法 getStores()要求按生产日期的方法,查询完成后在 控制台打印显示。 2:使用 JDBC 实现学生信息修改的功能 1) 创建数据库 school 2) 在数据库 school 下创建表 student(id,name,age),并插入 3 条数据。 3) 学生信息要求抽象出一个类 Student,并封装其属性 4) 完成修改某个学生信息功能 3:使用 JDBC 实现学生信息查询的功能 1)在 mysql 里面创建数据库 school; 2)在 school 库中创建数据表 student,此表的字段有 sid(学号)sname(姓名),sage (年龄)三个字段。 3)利用 jdbc 向 student 里面添加 5 条数据,然后在 eclipse 里面把此表的内容调出显 示在控制台上。 4:根据提供的程序 TestA,完善学生信息修改的功能。 1) 调试程序能连接到数据库 2) 完成修改功能 3) 完成查询功能 5:利用 JDBC 实现向数据库插入数据 1) 新建数据库 TEST1,新建表 score(id,coursename[课程名称],score[成绩]) 2) 创建 Score 类,属性根据数据表的属性定义,并封转其属性 3) 定义 getCon()方法得到 JDBC 的连接对象 4) 利用 JDBC 插入 10 条数据(自定) 6:Mysql 数据库操作 341) 创建数据库 school 库。 2) 创建 student 表,其中 Id 为主键并且自动增长 3) 创建 Score 表,Id 为主键并且自动增长,Stu_id 为外键,引用 student 表中的主 键(10 分) 4) 分别向两个表中插入以上数据 5) 查看成绩单中所有学生每门课程的总分,平均分; 7:Mysql 数据库1) 创建数据库 school 库,创建 student 表,其中 Id 为主键并且自动增长 2) 创建 Score 表,Id 为主键并且自动增长,Stu_id 为外键,引用 student 表中的主 键 3) 分别向两个表中插入以上数据 4) 查找课程为“javase 初级”的考生姓名、出生日期、及成绩; 358:数据库题1) 创建数据库 school 库,创建 student 表,其中 Id 为主键并且自动增长 2) 创建 Score 表,Id 为主键并且自动增长,Stu_id 为外键,引用 student 表中的主 键 3) 分别向两个表中插入以上数据 4) 查找 8 月份没有参加考试的学生姓名。 9:利用 JDBC 实现 ATM 机 表 account,主键 id 自增,账号 accountno,用户姓名 username,用户密码 userpass, 余额 money 1)采用合适的数据类型保存字段信息 2)在表中插入 5 条记录 3)存钱:在第一个账号存入 1000 4)取钱:从第三个账号中取 1000,如果余额不足,则不能取 5)查询:输入第四个记录对应的卡号和密码,查询其中的余额 6)修改密码:修改第五个记录的密码 7)转账:从第二个账号中取 2000,存入第三个账号 8)注意:要使用 JDBC,操作时要先验证卡号和密码是否和数据库中的一致。 36JavaSE 高级―第一单元:Java I/O---文件的操作 1:列出 d:\ch9 目录下 Java 源文件的名字及其大小,并删除其中的一个 Java 源文件? 2:用 Runtime 对象打开 Windows 平台上的绘图程序和记事本程序? 3:列出当前目录下全部 java 文件的名称 4:使用 File 类下的常用方法获取某些文件的信息。 5: 操作 D 盘下的 my.txt 文件 1) 判断 my.txt 文件是否存在 2) 若存在则删除;若不存在则创建 6:File 类的作用是什么?它是一种流吗? 7:使用 File 类删除某个文件夹(例如 D 盘下的 temp 文件夹)下的所有文件和文件夹: 1) 判断 temp 文件夹下的文件类型,如果是文件则直接删除 2) 如果是文件夹则获取该文件夹下的子文件和文件夹 3) 使用递归的方式删除所有 temp 文件夹下的文件和文件夹 8:利用 IO 操作文件 1)利用代码在 D 盘下创建 news 文件夹。 2)利用代码在 news 文件夹下创建 2 个.docx 文件,2 个.java 文件,2 个.txt 的文 件(在控制台打印 news 文件夹下的.java 文件 9:利用 IO 流操作文件 1)利用 Java 代码创建 D:\temp\temp1\temp2 共 3 个文件夹 2)在 temp 文件夹下创建一个 1.txt 文件内容为 hello, 创建一个 Hello.java 文件 3)内容为 public static void main(String[] args){},在 temp1 文件夹下创建同 样的两个文件 4)输出 temp 文件夹下包括其子文件夹下,所有的.java 文件 10:利用 IO 流操作文件。 1) 利用 java 代码在 D 盘下创建一个 mytemp 文件夹 2) 显示 D 盘下所有的.Java 文件,包括 D 盘的子文件夹下的.java 文件 3) 把上述显示的文件都复制到 mytemp 文件夹中 11:列出 D 盘下的所有文件,子目录中的文件,子目录的子目录都要列出,依次类推, 总之 D 盘下所有的文件都要输出(50 分) 1) 在列出的时候判断是否子文件夹(10 分) 2) 若不是子文件夹直接输出文件名(20 分) 3) 若是子文件夹使用递归的形式继续输出子目录中的文件(20 分) 37JavaSE 高级―第二单元:Java I/O 的分类以及使用(一) 1:先将“欢迎您来北京八维 3G 学院学习,高薪就业”写入到文件”hello.txt”中,再 读取该文件中的内容。2: 如果准备读取一个文件的内容, 应当使用 FileInputStream 流还是 FileOutputStream 流?3:编写一个应用程序,将用户从键盘输入的 10 个整数存入文件,再顺序读出。4:编写一个应用程序,要求将将一个 LinkedList&E&创建的对象写入到文件,再读出一 个 LinkedList&E&对象,并遍历 LinkedList&E&节点中的数据5:BufferedReader 流能直接指向一个文件对象吗?6: 列出 D 盘下的所有文件,子目录中的文件,子目录的子目录都要列出,依次类推,总 之 D 盘下所有的文件都要输出。 JavaSE 高级―第三单元:Java I/O 的分类以及使用(二) 1: 编写程序向文本文件中写入自己的信息, 格式为: 姓名: XXX 性别: X 年龄: XX 班级: XXX,将该信息读出后显示的屏幕上后把文件删除。 2:用缓冲字节流实现文件复制的功能 1) 首先判断 d 盘是否存在 a.txt 文件。 2) 若不存在则创建 a.txt 文件 然后把 a.txt 文件复制成 acopy.txt3:通过 Io 流实现 MP3 文件创建和复印功能 1) 判断 d:/歌曲.mp3 文件是否存在 2) 若不存在则创建 d:/歌曲.mp3 文件 创建完成后复制到 e:/歌曲.mp3 4:用(字节流)读取一张图片,读进来之后再输出到另一个文件中。 5: (字符流)读取一个文本文件,每行都追加一个“好” ,在文件结尾再追加“完毕” 。 6:使用 Java 的输入、 输出流将一个文本文件的内容按行读出, 每读出一行就顺序添加行 号,并写入到另一个文件中。 38JavaSE 高级―第四单元:Java I/O 的分类以及使用(三) 1:使用 RandomAccessFile 流将一个文本文件倒置读出。 2:使用 ObjectInputStream 类和 ObjectOutputStream 类有哪些注意事项?。 3:用缓冲字符流读入一个文件中的内容,并把内容输出到一个新的文件中。 4:在数据库中建表 student,字段(id,name,age)并插入几条数据,用 jdbc 读取所有 数据后输出到 D 盘的一个文本文件当中 5:使用输入流读取试题文件,每次显示试题文件中的一道题目。读取到字符“*”时暂 停读取,等待用户从键盘输入答案。用户做完全部题目后。程序给出用户的得分。 1) 试题内容如下: (1)北京奥运是什么时间开幕的? A. B.
******************** (2)下列哪个国家不属于亚洲? A.沙特 B.印度 C.巴西 D.越南 ******************** (3)下列哪个国家最爱足球? A.刚果 B.越南 C.老挝 D.巴西 ******************** (4)下列哪种动物属于猫科动物? A.鬣狗 B.犀牛 C.大象 D.狮子 ******************** 2)程序运行如下: (1)北京奥运是什么时间开幕的? A. B.
输入选择的答案(A、B、C、D) :A (2)下列哪个国家不属于亚洲? A.沙特 B.印度 C.巴西 D.越南 输入选择的答案(A、B、C、D) : 39JavaSE 高级―第五单元:多线程(一) 1:建立线程有几种方法? 2:定义两个线程(一个用继承 Thread 类,一个用实现 Runnable 接口) ,定义一个测试类 包括一个主函数调用两个子线程(具体实现自定) 3:模拟一个人生产 50 个玩具,每 200 毫秒生产一个,当生产到第 20 个时加入每秒吃 1 个馒头,共吃完 3 个后在接着生产的多线程。 4:编写龟兔赛跑多线程程序,设赛跑长度为 100 米,每跑完 10 米输出一次结果。5:改进上题的龟兔赛跑程序,通过改变优先级,并减掉休眠时间,使得乌龟以迅雷不及 掩耳的速度跑完 100 米。JavaSE 高级―第六单元:多线程(二) 1:在多线程中,为什么要引入同步机制? 2:启动两个线程对一个数字 i 操作 1) 其中 1 个线程每次对 i 加 1 2) 另 1 个线程每次对 i 减 1 各运行 20 次,结果 i 的值等于初始值。 3:wait()、notify()、notifyAll()的作用分别是什么? 4:实现一个由 A、B、C 三个窗口同时销售 100 张票的系统,要求打印出每个窗口打印的 售票情况,并且每个窗口不得连续售票。 5:模拟 3 个人排除买票,每人买 1 张票。售货员只有 1 张五元的钱,电影票 5 元一张, 王大拿拿一张二十元的人民币排在谢大脚前面买票, 谢大脚拿 1 张十元的人民币排在在赵四 的前面买票,赵四拿 1 张五元的人民币排在最后。即最终的卖票次序是:谢大脚、赵四、王 大拿 6:编写生产者消费者多线程程序,设有一个最大库存量为 4 的电视机仓库,生产 10 台电 视机,一边生产一边销售(消费) 。 7:多线程操作(50 分) 1)启动两个线程对一个数字 i 操作(10 分) 2)其中 1 个线程每次对 i 加 1(10 分) 3)另 1 个线程每次对 i 减一(10 分) 4)各运行 20 次,结果 i 的值等于初始值。 (20 分) 40JavaSE 高级―第七单元:生产者消费者模式 1:编写三个线程,这三个线程都对一个整数操作 1)第一个和第二线程对这个整数进行自增操作 2)第三个线程对这个整数进行自减操作 2:利用线程实现 ATM 功能,一共三个线程 1)第一个和第二个线程取钱 2)第三个存钱 3)察看各个线程中输出的余额值是否正确 3:编写四个线程 1)第一个和第二个线程往 ArrayList 中保存新对象 2)第三个和第四个线程从上面的 ArrayList 中获取对象, 并从 ArrayList 中删除此对象 3)察看各个线程输出的信息,是否存入了新对象,是否得到了对象 4:定义一个字符数组,利用四个线程操作这个字符数组 1)第一个和第二个线程往数组中添加字符 2)第三个和第四个线程从数组中读取字符 3)察看各个线程的输出 5:定义一个 String 数组,利用四个线程操作这个 String 数组 1)第一个和第二个线程往数组中添加 String 2)第三个和第四个线程从数组中读取 String 3)查看各个线程的输出JavaSE 高级―第八单元:网络编程(TCP) 1:编写一个服务器和一个客户端 1)服务器可以读取本地文件内容并能将内容发给请求的客户端 2)再编写一个可以发请求到服务器,并能从服务器段获取文件内容的客户端 2:编写一个简单的浏览器 1)将第一题的服务器做调整,如果客户端传输字符串: GET HTTP1.0 /index.jsp, 服务 器会将指定目录(路径)下的 index.jsp 文件传输到客户端 2)客户端可以发请求和把上面的文件保存到本机的制定目录下3:编写一个服务器和一个客户端 1)服务器上保存了几个用户名和对应的密码;且能验证客户端发送过来的用户名和密码, 是否和保存的某个用户名和对应的密码一致. 2)客户端能连接到服务器,并把用户在键盘上输入的用户名和密码,发送到服务器上 414: 编写一个 ATM 服务器和一个客户端,可以通过客户端输入帐号,密码,然后利用服务器 端验证,且能实现 ATM 存钱,取钱和修改密码的功能 5:将上面的题目结合 JDBC 实现模拟银行的功能。 6:网络编程 1) 用网络编程编写一个服务端 2) 编写一个客户端,客户端向服务端发送一条信息 3) 服务端在这条信息前面加上“服务端:”后再返给客户端输出。 7:网络聊天功能(50 分) 1) 用网络编程编写一个服务端(5 分) 2) 用网络编写一个客户端(5 分) 3) 客户端输入 client,服务端响应 I&#39;SERVER!(40 分) 8:实现服务器端和客户端的单线通话(50 分) 1) 实例化一个服务器端(10 分) 2) 实例化一个客户端(10 分) 3) 服务器端和客户端相连接(10 分) 4) 一旦服务器端接收到客户端的连接,服务器端就向客户端输出“welcom” (20 分) 9:TCP/IP 通信协议和 IO 1) 实例化一个服务端(10 分) 2) 实例化一个客户端,客户端可以向服务端发送一条信息(10 分) 3) 用 IO 向 D 盘下面创建 temp.txt 文件(10 分) 4) 服务端把接收到客户端的信息写到 temp.txt 文件中(20 分)JavaSE 高级―第九单元:网络编程(UDP) 1. 利用 UDP 编写一个程序,通过这个程序将一个字符串传给另外一台电脑中同样的程 序 2. 利用 UDP 编写一个程序,通过这个程序将一个字符串传给其他多台电脑中同样的程 序 3. 利用 UDP 编写一个程序,通过这个程序将键盘输入的一句话传给其他多台电脑中同 样的程序 4. 利用 UDP 实现一对多聊天,即在一台电脑上输入要说的话,可以在其它多台电脑上展 示出来 5. 利用 UDP 和 TCP 实现 a) 服务器利用 UDP 将自己的 IP 和端口号发送给客户端 b) 客户端依据服务器段返回的 IP 和端口号,利用 TCP 连接到服务器 42JavaSE 高级--第 11 单元 Annotation(注释) 1:自定义 annotation,里面包括 1 个 String 类型的属性,一个有默认值类型的属性,使用 自定义的 annotation 2:定义一个 Student 类,要求重写 toString()的方法,并且此方法要使用 Annotation 的三 个基本的注释,创建 Test 类,输出 Student 类的 toString 方法的所有注释 3:自定义一个 Annotation,定义 Teacher 类,定义 say()方法,使用 Annotation 的三个基 本的注释和自定义的 Annotation, 打印出 Teacher 类的 say()的自定义的注释, 并输出注释 的属性值 4:自定义一个 Annotation,要求只能在方法的声明上使用,定义完成后测试 Annotation 的 功能 5:定义一个 Annotation,要求在生成的文档中含有注释信息JavaSE 高级--第 12 单元 类加载和反射 1:利用反射和重载完成以下功能 1)创建 Student 类,类中有属性 name 和 age 并封装属性 2)重载 Student 的构造函数,一个是无参构造并,另一个是带两个参数的有参构造,要 求在构造函数打印提示信息 3)创建带 main 函数的 NewInstanceTest 类,利用 Class 类得到 Student 对象 4)通过上述获取的 Class 对象分别调用 Student 有参函数和无参函数 2:利用反射的知识完成下面的操作 1)创建 Mytxt 类,创建 myCreate()方法完成创建文件 D:\myhello.txt 文件的功能。创 建带 main 方法的 NewInstanceTest 类,通过 Class 类获取 Mytxt 对象,调用 myCreat() 3:利用 Annotation 和反射知识完成操作 1)自定义一个有效的 Annotation 注释名为 MyAnnotation,其中有属性 myname 创建 Student 类并重写 toString(),toString()要求使用三个基本的 Annotation 和自定义 的 MyAnnotation 注释 2)创建 TestGetAnno 类,打印出 Student 类的 toString 方法的所有注释 4:利用通过反射修改私有成员变量 1) 定义 PrivateTest 类,有私有 name 属性,并且属性值为 hellokitty,只提供 name 的 getName 的公有方法 2) 创建带有 main 方法 ReflectTest 的类,利用 Class 类得到私有的 name 属性 3) 修改私有的 name 属性值,并调用 getName()的方法打印 name 属性值 5:利用反射和 File 完成以下功能(50 分) 1) 利用 Class 类的 forName 方法得到 File 类(10 分) 2) 在控制台打印 File 类的所有构造函数(20 分) 3) 通过 newInstance 的方法创建 File 对象,并创建 D:\mynew.txt 文件(20 分) 43JavaSE 高级--第 13 单元 UML 1:根据以下描述,画出 UML 用例图 参与者:管理员、用户。 描述: 用角色信息维护(用例)和管理员维护(用例)都继承自用户资料维护(用例) ; 用角色信息维护(用例)包含用户资料修改(用例)和用户资料查询(用例)功能; 管理员维护(用例)包含用户资料注销(用例) 、用户信息修改(用例)和数据查询(用例) 功能; 导出资料(用例)是用户资料维护(用例)的扩展功能; 管理拥有用户资料维护(用例)权限;用户拥有角色信息维护(用例)权限; 答案:2:简要说明软件建模语言 UML 进行软件系统分析设计过程。 答:UML 是一种建模语言而不是方法,这是因为 UML 中没有过程的概念,而过程正是方法的 一个重要组成部分。UML 本身独立于过程,这意味着用户在使用 UML 进行建模时,可以选用 任何适合的过程。一般采用的建模过程有:瀑布开发模型、迭代递增开发模型。 基于 UML 的系统开发采取增量迭代开发模型, 步骤如下: A、需求:最初需求规格说明应当由代表系统最终用户的人员提供,内容包括系统基本功能 需求和对计算机系统的要求。 B、分析:分析的任务是找出系统的所有需求并加以描述,同时建立模型,以定义系统中的 关键领域类,应由系统用户和开发人员合作完成。分析的第一步是定义用例,以描述所开发 系统的外部功能需求。 用例分析包括阅读和分析需求说明, 此时需要与系统的潜在用户进行 讨论。 C、 设计: 设计阶段的任务是通过综合考虑所有的技术限制, 以扩展和细化分析阶段的模型。 设计阶段可以分为两个部分:结构设计是高层设计,其任务是定义包(子系统) ,包括包间 的依赖性和主要通信机制。 我们希望得到尽可能简单和清晰的结构, 各部分之间的依赖尽可 能的少,并尽可能的减少双向的依赖关系。 第二部分是详细设计,细化包的内容,使编程 人员得到所有类的一个足够清晰的描述。 D、实现:构造或实现阶段是对类进行编程的过程。可以选择某种面向对象的编程语言作为 实现系统的软件环境。在实现阶段中,可以选取各种图的说明来辅助编程,比如:类图,状 态图等。 44E、测试和配置:完成系统编码后,需要对系统进行测试,它通常包括:单元测试、集成测 试、系统测试和验收测试。在单元测试中使用类图和类的规格说明,对单独的类或一组类进 行测试;在集成测试中,使用组件图和合作图,对各组件的合作情况进行测试;在系统测试 中,使用用例图,以检验所开发的系统是否满足例图所描述的需求 3:在 java 项目开发过程中一般情况下: 模块业务执行 A

我要回帖

更多关于 java 捕捉所有异常 的文章

 

随机推荐