JAVA网站制作之Java言语程序计划测验试题(A)仓酷云
用winrar打包j2ee的程序和用IDE打包应用程序是一样的。按照你的想法,你是不是也希望服务器都整合由一家公司提供呢?申明:(1)本次测验为开卷测验,同意先生照顾条记本电脑及其他材料,同意上彀,但不同意以各类手腕互相剽窃。
(2)测验工夫为2小时。
(3)判别题谜底间接写在试卷上。简答题和编程题写在试卷后所附的答题纸上,标明题号。
(4)请求代码誊写标准,并增加响应的正文。
(5)部分标题没有尺度谜底,只需言之成理,都可给分,这类标题如发明有剽窃怀疑的,该题判为0分。
试题计划:金旭亮
会商:请在本文跟贴。
及时相同:经由过程新浪微博http://weibo.com/jinxuliang
*******************************************************************************
1、判别题(准确的形貌打勾,毛病的打叉,每题1分,共10分)
1.Java的跨平台特征是指它的源代码能够在多个平台运转。(错)
2.Web客户真个编程言语JavaScript源自Java,其功效是JavaSE的子集。(错)
3.列举(enum)属于原始数据范例(primitivetype)。(错)
4.在程序代码中写的正文太多,会使编译后的程序尺寸变年夜。(错)
5.在开辟中利用泛型代替非泛型的数据范例(好比用ArrayList<String>代替ArrayList),程序的运转时功能会变得更好。(错)
6.Android使用中各Activity之间次要经由过程Intent互相传送信息。(对)
7.我们在程序中常常利用“System.out.println()”来输入信息,语句中的System是包名,out是类名,println是办法名。(错)
8.JDK中供应的java、javac、jar等开辟工具也是用Java编写的。(对)
9.能够把任何一种数据范例的变量赋给Object范例的变量。(对)
10.高优先级的线程比低优先级的线程运转得更快。(错)
2、简答题(请将谜底写到答题纸上,说明题号。共20分)
11.(本题3分)我们都晓得盘算机只能在必定的精度局限内处置浮点数运算,但是,以下两句Java代码输入的了局天差地别:
System.out.println(100.1*2);//输入:200.2
System.out.println(100.1*3);//输入:300.29999999999995
云云奇异的征象是如何发生的?请实验注释之。
要点:乘以2的整数次幂时,盘算机只需举行复杂的移位操纵便可
12.(本题3分)以下代码编译失利,为何?
classMyGenericClass<T,V>{
Tobj1=null;
Vobj2=null;
voidsetValue(Tobj){
}
voidsetValue(Vobj){
}
}
要点:Java编译器的“擦除”道理
13.(本题3分)某同砚开辟一个Android使用,他想在界面上用一个TextView控件显现以后的工夫():
以下是他所编写的代码:
publicclassMainActivityextendsActivity{
privateTextViewtimerTextView=null;
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timerTextView=(TextView)findViewById(R.id.tvTimer);
Timertimer=newTimer();
timer.scheduleAtFixedRate(newTimerTask(){
publicvoidrun(){
//在TextView控件上显现以后工夫
DatenowDate=newDate();
timerTextView.setText(nowDate.toLocaleString());
}
},0,1000);//每隔一秒种更新显现文本
}
}
但是程序运转时,Android呈报以下毛病():
请注释缘故原由,并修正代码打消此BUG。
要点:跨线程更新UI控件。有多种办法办理这一成绩,以下仅列出一种。
参考代码:
publicclassMainActivityextendsActivity{
privateTextViewtimerTextView=null;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timerTextView=(TextView)findViewById(R.id.tvTimer);
finalRunnablerunnable=newRunnable(){
publicvoidrun(){
DatenowDate=newDate();
timerTextView.setText(nowDate.toLocaleString());
}
};
Timertimer=newTimer();
timer.scheduleAtFixedRate(newTimerTask(){
publicvoidrun(){
runOnUiThread(runnable);
}
},0,1000);
}
}
14.(本题3分)下图是Android手机中的QQ界面载图():
怎样组合现有的Android控件计划出以上界面?扼要叙说一下你的手艺完成计划。
要点:
只需讲出你盘算用哪一个结构控件便可。
15.(本题4分)以下有两段功效类似的代码,一个利用int,另外一个利用Integer:
代码段一
代码段二
publicstaticintsumViaInteger(
Integerfrom,Integerto){
Integerresult=0;
for(inti=from;i<=to;i++){
result+=i;
}
returnresult;
}
publicstaticintsumViaInt(intfrom,intto){
intresult=0;
for(inti=from;i<=to;i++){
result+=i;
}
returnresult;
}
以下代码测试这两个办法的实行工夫:
publicstaticvoidmain(String[]args){
for(inti=0;i<3;i++){
longstart=System.nanoTime();
sumViaInteger(1,100);
longend=System.nanoTime();
System.out.println(i+"sumViaInteger(1,100)所花工夫:"
+(end-start));
start=System.nanoTime();
sumViaInt(1,100);
end=System.nanoTime();
System.out.println(i+"sumViaInt(1,100)所花工夫:"+(end-start));
}
}
以下是程序某次运转的输入了局:
0sumViaInteger(1,100)所花工夫:457051
0sumViaInt(1,100)所花工夫:3499
-------------------
1sumViaInteger(1,100)所花工夫:19948
1sumViaInt(1,100)所花工夫:1400
-------------------
2sumViaInteger(1,100)所花工夫:19598
2sumViaInt(1,100)所花工夫:1400
-------------------
细心察看以上输入了局,你发明了甚么?得出了甚么结论?请对呈现此运转了局的大概缘故原由举行剖析。
要点:
(1)Integer比int慢很多,由于有很多装箱拆箱操纵
(2)第二次运转比第一次快。缘故原由:JVM缓存了前次编译的了局,无需再次编译
16.(本题4分)用户在利用软件体系时,大概会由于各类缘故原由输出毛病的数据。好比教员利用某教务办理体系在线录退学生测验成就,因为忽略,本应输出“90”,实践输出了“190”,很分明这是一个不法的分数,不该该被保留到数据库中;另有别的的大概,好比用户输出的是不克不及转换为int数值的字符串,好比“z90”,这将招致JVM在实验转换“z90”字符串为int数值时抛出NumberFormatException非常。
假如由你来计划这个教务办理体系,你盘算怎样办理下面提出的这些与非常处置战略亲切相干的实践成绩?简述你的体系计划与手艺完成思绪。
要点:
关头看可否计划出公道的非常捕捉计划,出格看看有无先生谈到多层架构体系中的非常捕捉战略。
3、编程题(共30分)
17.(本题5分)计划一个办法,它吸收一个整数数组,外界只需挪用一次此办法,就可以失掉此数组中元素的最年夜值、最小值战争均值。
复杂:有多种编程技能,好比前往一个数组,前往一个对象,间接设置类中的字段等等
18.(本题5分)给定一个数组,将其转换为一个环型链表。好比某数组中包涵,则转换为的环型链表如所示:
19.(本题6分)如今必要盘算1+2+3+....+30000的和。请接纳多线程完成此盘算事情,请求以下:
主线程启动三个线程,分离给它们分拨以下义务:
线程1:盘算1+2+3+...+10000
线程2:盘算10001+10002+...+20000
线程3:盘算20001+20002+...+30000
等三个线程都完成事情以后,主线程汇总三个事情线程的盘算了局,失掉终极谜底:
1+2+3+....+30000=450015000
要点:看看先生怎样处置线程同步。
20.(本题14分)文件体系及对象汇合编程题:
(1)编写一个办法找出指定文件夹(包含其子文件夹)中一切年夜于指定容量的文件(好比能够找出c:windows下一切年夜于10M的文件):
publicstaticArrayList<File>getFiles(Stringdirectory,intfileSize)
(2)编写一个办法对上述办法找到的文件汇合举行升序或降序分列:
publicstaticvoidsortFile(List<File>files,booleandesc);
升序仍是降序由参数desc决意。
(3)编写一个办法(名字、参数、前往值范例自定),对后面getFiles()办法找到的文件汇合依照文件扩大名举行分组,好比
txt文件组:
1.txt、readme.txt
exe文件组:
notepad.exe、calc.exe
无扩大名的文件组:
2、test
要点:
你精通任何一门语言就最强大。现在来看,java的市场比C#大,C#容易入手,比较简单,java比较难 是一种为 Internet发展的计算机语言 是一种语言,用以产生「小应用程序(Applet(s)) Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 是一种使用者不需花费很多时间学习的语言 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
页:
[1]