试题如下:
题一:
提供两个jar包(plugin1.jar,plugin2.jar),里面各有一个类,每个类中有某个方法function(int param);
提供一个配置文件plugin.xml,格式大致如下:
<plugin name="plugin1">
<author>
<name>xxxx</name>
<eamail>xxxx</eamail>
<tel>xxxx</tel>
</author>
<package>com.huawei.xxxxx</package>
<date>2009-5-11</date>
<version>1.0</version>
</plugin>
<plugin name="plugin2">
<author>
<name>xxxx</name>
<eamail>xxxx</eamail>
<tel>xxxx</tel>
</author>
<package>com.huawei.xxxxx</package>
<date>2009-5-11</date>
<version>1.0</version>
</plugin>
要求:实现一个类pluginLoader.java,实现如下功能:
1、控制台用命令加载插件,如:add E:/plugin1.jar,可以提示加载成功、重复加载、加载失败等。
2、控制台用命令卸载插件,如:del plugin1,可以提示卸载成功、不存在、卸载失败等。
3、控制台用命令列出已加载插件,如:list
4、控制台用命令显示插件详细信息,如:tail plugin1,可以显示该插件作者信息、包路径、时间和版本。
5、控制台用命令执行插件中的方法,如:call 100,要求自己实现插件中该方法,打印出传入的int参数。
6、控制台用命令退出,如:exit,结束进程。
题二:
提供配置文件nodes.txt,描述出了节点个数和每个节点能够处理的号码:
nodes=3
node1=10086,10087,10088
node1=10086,10088,10089
node1=10086,10089,10090
每个节点的处理能力是100,每个呼叫处理5ms。
提供呼叫文件callNo.txt,描述呼叫进来的号码:
10086,10087,10088……
要求实现逻辑:
读取callNo.txt中号码进行呼叫,要求nodes.txt中每个节点处理自己能处理的号码,并实现负载均衡。最后打印出每个节点所处理过的号码。
题目三:
当前应用程序从xml文件中读取球员信息并保存在List中,启动一个线程来处理这些球员信息。处理的过程为:
1、
在List中按照球员的成绩、姓名、年龄进行升序排列。
2、
把排好序的球员一次输出到一个队列中,对于重复的球员信息(姓名+年龄唯一)只能输出一次,队列的长度不能超过5.
3、
有两个俱乐部(A和B)依次从这个队列中获取球员信息,如:A选择第一个球员后,B再选择一个,依次类推,直到球员被选完。
4、
输出xml文件中球员信息
5、
当所有线程都处理结束的时候,输出两个俱乐部所选择的球员信息
备注:输出的球员信息格式为:姓名(年龄):成绩|姓名(年龄):成绩|……
请按照上面要求调试程序。
文件格式如下:
...
<root>
<member>
<name>Appl2</name>
<age>20</age>
<grade>70</grade>
</member>
</root>
命令输入接口:
java MemberMain 文件名
“MemberMain”参数是你将要实现的主程序类名,该类有main方法public static void main(String[] args),是程序的入口;
“文件名”参数就是包含结点字符串的文件,例如input.xml,文件位于与运行程序相同目录下,无需考虑文件路径的问题。
控制台输出:
1、
输出球员信息,输出格式为:姓名(年龄):成绩|姓名(年龄):成绩
2、
输出俱乐部A选择的球员信息,输出格式为:姓名(年龄):成绩|姓名(年龄):成绩,依次按照成绩、姓名、年龄升序排列。
3、
输出俱乐部B选择的球员信息,,输出格式为:姓名(年龄):成绩|姓名(年龄):成绩,依次按照成绩、姓名、年龄升序排列。
上面输出的结果为:
Jack1(18):70|Appl2(20):70|Appl2(20):70|Appl2(20):72|Adpl2(20):73|ccpl2(20):75|bppl2(20):75
Appl2(20):70|Adpl2(20):73|ccpl2(20):75
Jack1(18):70|bppl2(20):75