搜档网
当前位置:搜档网 › java开发实战经典答案

java开发实战经典答案

java开发实战经典答案
java开发实战经典答案

java开发实战经典答案

【篇一:java开发实战经典】

ass=txt>首先需要为读者说明的是,《java开发实战经典》,如图1所示,不只是一本纯粹讲解基础的书,里面更多的内容是为java ee的开发而服务的,所以读者在学习本书的时候应该重点培养的是思想,按照程序解释问题的思想。在本书的序言的视频之中已经为读者介绍了本书的整体结果,实际上每个读者必须首先搞清楚java se和java ee的关系,如图2所示。

从图2中可以清楚的发现,如果要想进行java ee的开发,java se 是其中必要的组成部分,这也就是为什么在学习java ee之前要读者一定要有扎实的java se基础了。

在本书的序章中也为读者讲解过,java se核心的部分就是以下四个:

1、面向对象:主要是要求读者建立好一个面向对象的概念,并可以灵活的运用这些概念进行程序的分析,可以说在整个java se部分核心就是面向对象的开发,里面涉及的概念较多,但是所有的概念最终都是为接口和抽象类服务的,而所有java开发中涉及到的各个设计模式,实际上也是针对于接口和抽象类的应用。

2、类集框架:大部分的读者都应该听过或学习过数据结构,虽然从大学就开始学习《数据结构与算法》,但是实际上来讲,学习完后真正可以进行数据结构编写的人并不多,而且大部分的数据结构都是以c语言为基础讲解的,而类集就相当于是java实现的数据结构,包括树、链表、队列等等,如果只是进行应用层次开发的读者没有必要深入了解其内部的操作,但是必须清楚的掌握其核心的接口和各个操作类。

3、io操作:对于大部分的自学者而言,io操作也许是最难过的一个坎了,如果没有很好的理解抽象类和接口的概念,那么要想充分的理解io操作是很难的,在整个io操作之中,完整的体现了java 语言多态性的设计思想,而且在学习io的时候必须始终把握住一个原则:“根据使用的子类不同,输入输出的位置也不同”。

4、java数据库操作(jdbc):jdbc首先并不能算是一门技术,更多的应该算是一种服务—— java提供的数据库访问服务,里面提供了大量的操作接口,各个数据库生产商根据这些接口实现自己的数据库操作,从面向对象的设计上来看,用户完全没有必要考虑其

接口是如何实现的,而更多的是关心如何使用这些接口。而且从现在的项目开发中,读者可以清楚的发现,大部分的开发都是基于数据库的开发。

虽然核心是以上四个,但是对于程序开发,每位读者应该建立起一些基本的程序思路,对于初学者来讲,应该将本书第一部分的知识打牢,基本的循环操作要明白,例如:打印正三角形、九九乘法表、冒泡算法等都是一些基本的要求。而且在学习程序的开发上没有任何的捷径,每一位普通人肯定都需要进行反复的代码熟练才能将代码运用明白,就好象练习武工一样,只有坚持练习,才能让自己的动作收发自如,灵活运用。我在讲课的时候跟学生讲过,我的脑子里不会记住任何的代码,包括讲课中我也没有任何的代码记住,只是我敲熟了,用的时候代码就自然尔然的写出来了,所以只有勤学苦练才能牢固的掌握编程语言,世界上或许有程序天才,但是我自己承认我和大部分人一样,都是普通人,都是每一步一个脚印走出来的。

《java开发实战经典》一书从酝酿到出版用了5年的时间,实际上这本书的前身是我在2005年的时候写完的,因为之前很多学生问我应该看那几本书,我就给学生推荐了四、五本书,因为每本书都有其各自的特点,后来我想能不能将这些书的特点完全融合在一起,写一本真正为初学者用的书?抱着这个想法我就尝试着开始写,不过第一本书在今天看来真的是有些儿戏了,后来经过重新改版扩充之后才形成了最终的这本《java开发实战经典》,而且我发现,在每一个初学者眼中总是把一门技术看的很神秘,当然,也有不少的书籍本身写的就很晦涩,让人一看就晕,从而增加了恐惧,为了将每一位读者的恐惧降到最少,在本书的每一段代码几乎都加上了注释,后来为了继续

保证每一位学员可以彻底的学会,彻底的从许多的“垃圾”书中脱离出来,我决定再单独录制一份完整的视频教学,每一章的每一节与书中的内容完全对应,我想这样应该可以让每一位读者以最轻松的方式学会,我不能说我录制的视频一定是最好的,书写的也是最棒的,但是我能对每一位读者承诺的是“我在用心做事,写最好的书籍”,我的目的是让每一位读者真正的明白java语言的最大特点就是简单,而不是晦涩难通的,也很想从这本书做起,让每一位在校的老师可以清楚的知道到底如何去教学生java基础这门课程,所以也为每一位老师准备了ppt、教学大纲,为的是可以为中国的软件业做

一份自己的微薄贡献,从多年的it行业的经验来讲,我给每一位读者的建议是:“如果要从事it行业,最好有一些编程经验”。

记得网络上的一位读者这么评价本书:“如果连这本书都无法学明白,那么你也就不要去搞程序了”,我很感谢这为读者对我这本书的肯定,所以我也会陆续推出后面的系列书籍。

在我们mldn软件实训中心,有不少咨询的学员都在问:“我只学过c语言,我能学会java吗?”在这里我跟这些学员说一下我的亲身经历,我本身最早的时候只会c语言,c语言只会到数组,甚至连函数都不会写,指针都不明白,但是就靠着自己的毅力把整个java完全自学过来了,那么既然大家都是普通人,我可以学会,你们为什么不能学会呢?遇到困难不要放弃,更不要对自己怀疑,只有抱着坚强的信念才可以把任何困难战胜。

学了这么多年程序,也搞了这么多年,从最早只会c、java到后来可以熟练掌握各个主流语言的开发,中间经历了很多的辛酸,这一每一步的成长自己都能看得到、感受的到,但是也终于发现,实际上所有的程序语言都是相通的,核心的内容就是关键字、基本控制、数组、方法(函数),根据不同的平台找不同的方法,所以不要被各个语言所迷惑,也不要觉得难,因为当你自己完全学会了一门语言之后,其他的就都学会了。

每一本书实际上都有其自己的主要学习路线,对于本书也一样,为了照顾到更多的读者,本书也增加了许多非重要的章节,下面按照重要顺序分别为读者列出:

1、重点掌握:充分的理解每一个知识点,代码编写熟练,如果为了参加我们mldn的学习而学习的话,此部分一定要在预习中作为重点。

|- 第1章 java概述及开发环境搭建:java的主要作用、特点、开发环境、classpath。|- 第2章简单java程序:public class和class的区别,程序的基本结构、关键字。|- 第3章 java基础程序设计:各种循环控制、运算符。

|- 第4章数组与方法:数组的定义、动态初始化、静态初始化、内存分配、方法定义格式、方法重载、两个新特性:foreach、可变参数。

|- 第5章面向对象(基础篇):类与对象、类的定义结构、构造方法、private、static、this、引用传递、内部类,在本章一定要掌握简单类的开发方法。

|- 第6章面向对象(高级篇):类的扩展、super、final、抽象类、接口、多态、实际分析。

|- 第7章异常的捕获及处理:异常的产生原因、标准异常的处理语句格式、throw、throws、assert

|- 第8章包及访问控制权限:包的作用、package、import、系统常见包、四种权限的关系

|- 第11章 jva常用类库:在学习本章的时候不要花太多的经历去记住类的使用方法,关键是要学会如何查询文档,java提供的系统类太多了,每个人是不可能全部记下来的,用到何种功能大概可以想起来,之后通过文档查询其具体用法就行了,没有一个人可以将所有的类库都背下来,

只需要将常用的灵活掌握即可。例如:stringbuffer、垃圾收集、date、simpledateformat、正则、比较器

|- 第12章 java io:面向对象的核心体现,file、outputstream、inputstream、wirter、reader、serializable

|- 第13章 java类集:作用及使用、collection、list、set、map、iterator等核心接口使用

|- 第17章 java数据库编程:mysql、sql命令、statement、preparedstatement、

resultset、事务处理,因为本书不是一本专门讲解数据库的书籍,所以在讲解的时候只是介绍性的讲解了部分的sql语句。

2、理解掌握:掌握其运行的基本效果,具体的代码可以不用全部灵活掌握

|- 第9章多线程:运行形式、两种实现方式及区别、同步及死锁

|- 第10章泛型:泛型更多的是应用在类集的概念上,所以本章只需要掌握泛型的使用形式即可

|- 第14章枚举:enum关键字,如果没有习惯于使用枚举开发的人员,则本章只需要了解即可。

|- 第15章 java反射机制:重点部分就是在于如何取得class对象,并且进行对象的实例化操作。

|- 第16章 annotation:在ejb 3.0中使用较多,纯粹的java开发主要就是三个内建的anotation。

|- 第21章附录:eclipse开发工具:开发工具本身不能算是重点,在本书讲解中基本上都很少使用到开发工具,读者一定要记住:只要程序会编写了,则开发工具也就自然会使了。

3、了解掌握:了解其主要作用即可,不用做深入研究,如果是专门为java ee而学习的读者,以下的部分可以不用学习。

|- 第18章图形界面:编写图形界面显示

|- 第19章 java网络编程:tcp、udp

|- 第20章 java新io:提升服务器性能

在这里需要为读者说明的是,在本书的第17章

java数据库编程部分并没有过多的讲解数据库的相关知识,是因为在设计本书是,我更多的考虑是如何把一个程序讲解清楚,关于数据库方面的内容对于程序开发也是非常重要的,我也在全力编写我的第二本:java web开发实战经典、第三本:oracle实用开发,两本书,为的是能让读者可以按照一个体系学习,这样本书中所提到的各种思想就自然而然的贯彻下来了。

我的第二本书籍预计是在2009年春节之前推出,书中的内容现在已经编写的差不多了,我曾经跟编辑说过:“我可以保证我这本出版的java web开发成为市面上最有价值的最好的web开发书籍”,里面包含了众多的web开发的核心知识,并且加入了大量的案例操作,如果等不及的读者也可以先看我们mldn软件实训中心推出的一张视频光盘——《java 26日通》,如图3所示,里面包含了我们中心上课时候专门录制的视频,以及一些使用java开发的游戏课程,这些都算是我们的兴趣课堂,还有就是web开发的核心讲解。我将要出版的web开发一书中有很多的内容实际上都是从这些出版的光盘而来,如果不急的朋友,可以耐心等待。

java se学习完之后,我建议读者最好先学一下数据库的相关知识,从整个中国的软件开发来看,oracle、mysql、sql server三个数据库使用较多,但是个人认为,学习oracle会比较好一些,而且读者必须记住一点,在java的开发中如果使用了sql server则性能是最差的,故:在此我推荐的就是oracle数据库,可是,读者也必须清楚一点,我们是程序开发人员,而数据库管理是另一门学科,在学习数据库的时候应该将更多的重点放在sql语句的编写上,如果希望获得一些免费资料的读者,可以直接通过此页面进行下载:https://www.sodocs.net/doc/2018476205.html,/forum-45-1.html。

要记住web开发是一门综合的学科,所以读者在学习web开发之前一定要熟练掌握以下技术:

1、html:基本的元素编写、网页的页面制作

2、javascript:事件、函数的编写

3、xml:基本操作语法

这些全部熟练掌握之后,才可以学习web开发,在web开发中其核心就是进行数据库的操作,数据库的核心操作也就是四种:增加、修改、删除、查询,先从jsp学习,并可以使用jsp + jdbc或者是jsp + dao完成操作,并做一些简单的类似于bbs之类的小项目,并且可以充分的理解开发中所带来的问题,之后在学习mvc设计模式,并可以使用这些进行项目的开发,能够达到这些实际上也就相当于达到了2003年时的开发要求。

如果掌握mvc设计,读者也就可以轻松的掌握ajax、struts技术了,也就是说,到真正形成mvc设计思路之前的学习都是很痛苦的,而一旦掌握了mvc设计模式,也就相当于自己程序的脉络已经打通了,再学习其他的内容也就容易多了,而像hibernate、spring 技术实际上也就是对dao层的加强而已,这些学习流程如图4所示。

ajax本身并不属于一门新的技术,更多的javascript及xml的操作,当然,对于ajax技术本身也有许多的开发框架支持,例如:dwr、jquery、json、extjs等,对于这些框架读者用到的时候直接学习即可,把握核心原理才是最重要的,而框架只是一个操作形式。

struts技术相信现在大多数的人都知道,struts发展到今天已经逐步成为了一个java ee行业的开发标准,但是struts框架本身只是一个工具,其核心的内部还是mvc设计模式的应用,可以这么说,如果完全的精通了mvc设计模式,并且已经通过mvc完成过项目代码的开发,struts完全可以在三天内学下来,而且不用将其当做一门新的技术掌握,它就是个工具,就是一套架构代码而已。

hibernate和spring实际上是解决轻量级实体层开发的有效方法,这两种框架的理论都来源于ejb,也就是说ejb技术是最重要的理论支持,使用hibernate和spring联合开发可以很方便的帮我们解决数据库的打开和关闭问题,以及声明式事务的操作,所有的代码几乎都是靠配置完成,如果觉得配置过于复杂也可以不记,而通过复制完成,而且对于这种开源框架个人的意见是不要花太多的精力去搞,只要可以正常使用即可,就好比武侠小说中的各个门派一样,存活到今天的也就是少林寺和武当派了,而像其他的各个派别也早已淹没,sun的架构就相当于少林寺和武当派,而这些开源架构就相当于各个小门派,随着发展肯定是要逐步统一的,有这些钻研框

架的时间我更建议的是多去研究研究ejb技术,虽然开发中用得很少,但是其理论价值真的很高,也很值得学习。

现在的企业开发中基本上都是以ssh和ssh2为主的,struts 2.0技术本身是webwork技术的翻版,如果学过了webwork则,struts 2.0也可以很容易的学会,而且struts 2.0比struts 1.x更加方便,更加好用,但是包括jsf之类的,不管如何变也只是在前台上的一种变化,不会有太多实质性的改变,就拿struts来讲,在配置文件中配置数据源,我想正常的开发人员恐怕都不会使吧?

现在分布式的开发也已经越来越多,很多公司都发现提供接口服务会提高公司的收益,所以很多公司开始进入了分布式的开发行列,ejb技术实际上就是为分布式技术准备的,而且ejb 3.0技术更是改变了ejb的以往开发风格,使代码开发更加容易,但是ejb必须使用一个ejb容器才可以正常使用,而jboss就称为了ejb 3.0的标准容器,所以在学习ejb技术的时候还需要将jboss学习一下,但是分布式技术也可以通过web服务实现,使用web服务就完全可以提供一个后台的业务操作中心,而且没有任何的语言使用限制,常见的web services实现就是axis和xfire,其中现在以xfire使用居多。可能有些读者会觉得学习完一套java ee实在是太累了,其实不然,在学习时首先每一位读者应该对自己有信心,其次必须打下坚强的java se功底,灵活的运用mvc,并且多写代码,从实践中发现问题,只有发现了问题之后才可以利用一些框架技术来解决各种问题,例如:发现数据库的打开和关闭不好操作的时候就可以利用spring和hibernate进行操作,发现需要定义公共操作的时候就可以通过ejb或web services技术完成即可,

最后希望每一位读者都可以学有所成,因为从我个人的学习来看,只要学会了java,则.net或php都可以很容易的学会,如果你自己本身还喜欢游戏的话,也可以学学手机的java me开发,实际上也都是很容易的,从一点一滴积累,现在就开始努力吧,我们mldn会给大家的学习提供最好的资料,最好的帮助。

【篇二:java_开发实战经典_第四章课后习题答案_完

整版】

class four01 {

public static double sum(int a){

}

public static void main(string[]args){

int a =4; double sum = 0; double k[]=new double[a]; for(int i=1; i=4; i++){ } for(int j=0;jk.length;j++){ } sum = sum+k[j]; k[i-1] = sum(i); double sum =1; for(int i=1; i=a;i++){sum = sum*i; } return sum;

system.out.println(总数为:+sum);

}

}

第二题

public static void main(string[]args){

int a[]={1,2,3,4,5,6,7,8,9,10,11}; int o=0,e=0; for(int

i=0 ;ia.length; i++){} if(a[i]%2==0){} e++; o++; }else{

system.out.println(奇数个数为:+o+\t+偶数个数为:+e); }

}

第三题

public class four03 {

public static void main(string[]args){

} int oldarr[]= {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; int newarr[]=new int[16]; for(int i=0,j=0;ioldarr.length; i++){ } for(int i=0; inewarr.length; i++){ } //必须要写这个if语句,因为newarr多余的空间默认值为0 if(newarr[i]!=0) system.out.print(newarr[i]+ );

if(oldarr[i]!=0){} newarr[j]=oldarr[i]; j++;

第四题

public class four04 {

public static void main(string[]args){

int array[] = {1,2,3,4,5,6,7,8,9,10,11}; int m = max(array); system.out.println(最大值为:+m); int a = min(array);

system.out.println(最小值为:+a); int s = sum(array);

system.out.println(总数为:+s);

}

public static int max(int temp[]){

}

public static int min(int temp[]){

}

public static int sum(int temp[]){

}

} int sum =0; for(int i=0; itemp.length; i++){ } return sum ; sum = sum +temp[i]; int z=temp[0]; for(int i=0; itemp.length; i++){ } return z ; if(ztemp[i]){ } z=temp[i]; int z = temp[0]; for(int i=0; itemp.length; i++){ } return z; if(ztemp[i]){ } z=temp[i];

第五题

public class four05 {

public static void main(string[]args){

}

public static void search(int c,int temp[]){

boolean flag = false; for(int i=0; itemp.length; i++){ if(c == temp[i]){ int array[]= {1,2,3,4,5,6,7,8,9,10,11}; int a =5; int b = 100; search(a,array); search(b,array);

}

} } if(flag){ system.out.println(yes,此数组中存在元素

+c); }else{ system.out.println(no,此数组中不存在元素+c); }

第六题

public class four06 {

public static void main(string[]args){

}

public static void init(int x[]){

}

public static void print(int x[]){

}

public static void reserve(int x[]){

int foot =0; int head = 0; if(x.length%2 == 0){ foot = x.length/2; head = foot-1; for(int i=0; ix.length/2; i++){} foot = x.length/2; head = foot ; for(int i=0; ix.length/2+1; i++){} int temp = x[foot]; x[foot] = x[head]; x[head] = temp; head--; foot++; int temp

=x[foot]; x[foot] = x[head]; x[head] = temp; foot++; head--;

for(int i=0; ix.length; i++){ system.out.println(x[i]+、); } for(int

i=0; ix.length; i++){ } x[i] = i; int temp[] = new int[10]; init(temp); print(temp); reserve(temp); system.out.println();

print(temp); }else{

}

第七题

public class four07 {

public static void main(string args[]){

float score[] = {90f,87f,78f,67f,93f,79f,82f,84f,71f,86f}; float

max = score[0]; for(int i=0; iscore.length; i++){ }

if(maxscore[i]){ } max = score[i];

system.out.println(最高分为:+max); }

}

第八题

public class four08 {

public static void main(string[] args){

int

array[]={1,2,1,3,4,6,5,4,3,2,0,9,8,7,6,5,4,3,5,6,7,8,9,0,9,8,2,1,3,4,}; int n1=0,n2=0,n3=0,n4=0,n5=0,n6=0,n7=0,n8=0,n9=0,n0=0;

for(int i=0; iarray.length; i++){ switch(array[i]){ case 1:{} case 2:{} case 3:{} case 4:{} case 5:{} case 6:{} case 7:{} case

8:{ n7++; break; n6++; break; n5++; break; n4++; break; n3++; break; n2++; break; n1++; break;

} } case 9:{} case 0:{} } n0++; break; n9++; break;

system.out.println(0----9的个数分别为:+n0+、+n1+、+

n2+、+n3+、+n4+、+n5+、+n6+、+n7+ 、+n8+、+n9);

}

}

第九题

public class four09 {

public static void main(string[] args){ int a[]=

{1,2,3,4,5,6,7,8,9,0};

int maxfoot =0;

int max = a[0];

for(int i=0; ia.length; i++){

}

int val = a[0];

a[0] = a[maxfoot];

a[maxfoot] = val;

system.out.println(a[0]);

}

} if(maxa[i]){} max=a[i]; maxfoot=i;

第十题

public class four10 {

public static void main(string[] args){ int temp[]=

{1,2,3,4,5,6,7,8,9,10}; java.util.arrays.sort(temp);

print(temp);

temp = inc(temp,13,12,34,5,6,7); java.util.arrays.sort(temp);

print(temp);

} public static void print(int a[]){ } public static int[] inc(int

a[],int...val){ for(int i=0; ia.length;

i++){ system.out.print(a[i]+、); } system.out.println();

【篇三:java编程实例大全及详解答案(50例)】

class=txt>【程序1】

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

//这是一个菲波拉契数列问题

public class lianxi01 {

public static void main(string[] args) {

system.out.println(第1个月的兔子对数: 1);

system.out.println(第2个月的兔子对数: 1);

int f1 = 1, f2 = 1, f, m=24;

for(int i=3; i=m; i++) {

f = f2;

f2 = f1 + f2;

f1 = f;

system.out.println(第 + i +个月的兔子对数: +f2);

}

}

}

【程序2】

题目:判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class lianxi02 {

public static void main(string[] args) {

int count = 0;

for(int i=101; i200; i+=2) {

boolean b = false;

for(int j=2; j=math.sqrt(i); j++)

{

if(i % j == 0) { b = false; break; }

else { b = true; }

}

if(b == true) {count ++;system.out.println(i );}

}

system.out.println( 素数个数是: + count);

}

【程序3】

题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。

public class lianxi03 {

public static void main(string[] args) {

int b1, b2, b3;

for(int m=101; m1000; m++) {

b3 = m / 100;

b2 = m % 100 / 10;

b1 = m % 10;

if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) {

system.out.println(m+是一个水仙花数); }

}

}

}

【程序4】

题目:将一个正整数分解质因数。例如:输入90,打印出

90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n k,但n能被k整除,则应打印出k的值,并用n除以k 的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 import java.util.*;

public class lianxi04{

public static void main(string[] args) {

scanner s = new scanner(system.in);

system.out.print( 请键入一个正整数: );

int n = s.nextint();

int k=2;

system.out.print(n + = );

while(k = n) {

if(k == n) {system.out.println(n);break;}

else if( n % k == 0) {system.out.print(k + *);n = n / k; }

else k++;

}

}

}

【程序5】

题目:利用条件运算符的嵌套来完成此题:学习成绩 =90分的同学用a表示,60-89分之间的用b表示,60分以下的用c表示。

import java.util.*;

public class lianxi05 {

public static void main(string[] args) {

int x;

char grade;

scanner s = new scanner(system.in);

system.out.print( 请输入一个成绩: );

x = s.nextint();

grade = x = 90 ? a

: x = 60 ? b

:c;

system.out.println(等级为:+grade);

}

}

【程序6】

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

/**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。* /

import java.util.*;

public class lianxi06 {

public static void main(string[] args) {

int a ,b,m;

scanner s = new scanner(system.in);

system.out.print( 键入一个整数: );

a = s.nextint();

system.out.print( 再键入一个整数: );

b = s.nextint();

deff cd = new deff();

m = cd.deff(a,b);

int n = a * b / m;

system.out.println(最大公约数: + m);

system.out.println(最小公倍数: + n);

}

}

class deff{

public int deff(int x, int y) {

int t;

if(x y) {

t = x;

x = y;

y = t;

}

while(y != 0) {

if(x == y) return x;

else {

int k = x % y;

x = y;

y = k;

}

}

return x;

}

}

【程序7】

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 import java.util.*;

public class lianxi07 {

public static void main(string[] args) {

int digital = 0;

int character = 0;

int other = 0;

int blank = 0;

char[] ch = null;

scanner sc = new scanner(system.in);

string s = sc.nextline();

ch = s.tochararray();

for(int i=0; ich.length; i++) {

if(ch = 0 ch = 9) {

digital ++;

} else if((ch = a ch = z) || ch a ch = z) {

character ++;

} else if(ch == ) {

blank ++;

} else {

other ++;

}

}

system.out.println(数字个数: + digital);

system.out.println(英文字母个数: + character);

system.out.println(空格个数: + blank);

system.out.println(其他字符个数: + other );

}

}

【程序8】

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

import java.util.*;

public class lianxi08 {

public static void main(string[] args) {

long a , b = 0, sum = 0;

scanner s = new scanner(system.in);

system.out.print(输入数字a的值: );

a = s.nextint();

system.out.print(输入相加的项数:);

int n = s.nextint();

int i = 0;

while(i n) {

b = b + a;

sum = sum + b;

a = a * 10;

++ i;

}

system.out.println(sum);

}

}

【程序9】

题目:一个数如果恰好等于它的因子之和,这个数就称为完数。例如6=1+2+3.编程找出1000以内的所有完数。

public class lianxi09 {

public static void main(string[] args) {

system.out.println(1到1000的完数有: );

for(int i=1; i1000; i++) {

int t = 0;

for(int j=1; j= i/2; j++) {

if(i % j == 0) {

t = t + j;

}

}

if(t == i) {

system.out.print(i + );

java第三章课后习题解答

第3章面向对象程序设计基础 【1】什么是Java程序使用的类?什么是类库? [解答]:Java程序的基本单位是类。对象是对事物的抽象,而类是对对象的抽象和归纳,找出事物的共性,把具有共同性质的事物归结为一类,得出一个抽象的概念——类。类是具有相同属性和方法的一组对象的集合,类是在对象之上的抽象,对象则是类的具体化,一旦建立类之后,就可用它来建立许多你需要的对象。 Java的类库是系统提供的已实现的标准类的集合,是Java编程的API(Application Program Interface),它可以帮助开发者方便、快捷地开发Java程序。# 【2】如何定义方法?在面向对象程序设计中方法有什么作用? [解答]:方法的定义由两部分组成:方法声明和方法体。方法声明的基本格式如下: 返回类型方法名(形式参数) { … //方法体内容 } 方法声明包括方法名、返回类型和形式参数,方法的小括号是方法的标志;方法体为实现方法行为的Java语句。 在面向对象程序设计中,方法所起的作用是完成对类和对象属性操作。 【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。 void Student(int no,String name) { studentNo=no; studentName=name; return no; } [解答]:构造方法是一个特殊的方法,主要用于初始化新创建的对象。构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。 以上的代码段出错于:①构造方法Student()前不能加void ②不能用return语句 【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。 [解答]:程序代码段如下: class student{ private String id; private String name; private String sex; private int age;

Java笔试题及答案

Java笔试题及答案 一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 详解:见下面代码,很明显方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。 package net.study; public class TestConStructor { public TestConStructor() {

} public void TestConStructor() { } public static void main(String[] args) { TestConStructor testConStructor = new TestConStructor(); testConStructor.TestConStructor(); } } 4.提供Java存取数据库能力的包是() 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 详解: java 中没有<> := 这种运算符,if else不算运算符 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是()

java考试试卷及答案

JAVA考试试卷及答案 选择题 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画 图操作。 A. start() B. stop() C. init() D. paint() 3、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?B A)安全性B)多线程C)跨平台D)可移植 4、下列哪个类声明是正确的?D A)abstract final class HI{···}B)abstract private move(){···} C)protected private number; D)public abstract class Car{···} 6、在Java语言中,下列哪些语句关于内存回收的说明是正确的? B A.程序员必须创建一个线程来释放内存; B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象 10、下列Object类中的方法,哪一项不是完全跟线程有关:A A.String toString() B.void notify() C.void notifyAll() D.void wait() 11、给出下面代码:C public class Person{ static int arr[] = new int[10]; public static void main(String a[]) { System.out.println(arr[1]); } } 下列说法中正确的是? A.编译时将产生错误; B.编译时正确,运行时将产生错误; C.输出零; D.输出空。 12、字符串是Java已定义的类型,关于它的构造函数,下面说法不正确的是:B A.String(char[] value, int offset, int count) B.String(int[] codePoints,int offset, int count) C.String(String original) D.String(StringBuffer buffer) 13、下列说法中正确的是:C A.导入包会影响程序的性能

JAVA期末试题及答案

Java 程序设计》课程试卷 1.使用 Java 语言编写的源程序保存时的文件扩展名是( )。 (A ) .class ( B ) .java C ) .cpp ( D ) .txt 2.设 int a=-2 ,则表达式 a>>>3 的值为( )。 (A ) 0 (B )3 (C ) 8 (D )-1 3.设有数组的定义 int[] a = new int[3] ,则下面对数组元素的引用错误的是( ) ( A )a[0]; ( B ) a[a.length-1]; (C )a[3]; (D )int i=1 ; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数( )。 (A )封装 (B )继承 (C )覆盖 (D )重载 5.在类的定义中构造函数的作用是( )。 (A )保护成员变量 (B )读取类的成员变量 (C )描述类的特征 (D )初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句( )。 ( A ) try ( B ) break ( C ) catch ( D ) finally 7.类与对象的关系是( )。 (A )类是对象的抽象 (B )对象是类的抽象 15. Java 语言使用的字符码集是 (A) ASCII (B) BCD (C) DCB 16. 如果一个类的成员变量 (A) public (B) (C 对象是类的子类 (D )类是对象的具体实例 )。 8.下面哪一个是 Java 中不合法的标识符( ( A )$persons ( B ) twoNum ( C )_myVar ( D )*point 9.为 AB 类的一个无形式参数无返回值的方法 ( ) 。 ( A ) static void method( ) ( B ) public void method( ) ( C ) final void method( ) ( D ) abstract void method( ) 10.欲构造 ArrayList 类的一个实例,此类继承了 ( A ) ArrayList myList=new Object( ) ( B ) List myList=new ArrayList( ) ( C ) ArrayList myList=new List( ) ( D ) List myList=new List( ) 11. Java 源文件和编译后的文件扩展名分别为( (A) .class 和 .java (C).class 和 .class 12. 在 Java Applet 程序用户自定义的 (A) start( ) (B) stop( ) (C) init( ) 13. 对于一个 Java 源文件, (A) package,import,class (C) import,package,class 14. 下面哪个是非法的: (A) int I = 32; (C) double d = 45.0; method 书写方法头,使得使用类名 List 接口,下列哪个方法是正确的( ) ( B).java 和 .class (D) .java 和 .java Applet 子类中,一般需要重载父类的 (D) paint( ) import, class (B) class,import,package (D) package,class,import ( ) 定义以及 package 正确的顺序是: (B) float f = 45.0; (D) char c = // 符号错 AB 作为前缀就可以调用它,该方法头的形式为 方法来完成一些画图操作。 (D) Unicode 只能 在所在类中使用 则该成员变量必须使用的修饰是

《JAVA WEB开发实战经典》总结

《Java Web开发实战经典》期末总结 第一部分Web开发前奏 第一章Java Web开发简介 通过本章的的学习,使我了解了web的发展过程。 第二章HTML、Javascript简介 通过本章的的学习,使我了解了JavaScript的基本语法,主要事件,主要对象的作用。可以使用JavaScript完成表单的交互程序开发。 第三章XML简介 通过本章的的学习,使我了解了XML语言的基础语法,还可以清楚区分HTML和XML。并掌握了java中DOM和SAX解析XML文件的操作。学习了DOM解析XML文件的操作和DOM4J 解析XML文件的操作。使用XML可以进行数据存储结构的规范化。 第四章Tomcat服务器的安装及配置 通过本章的的学习,使我了解了Tomcat服务器的主要作用和Tomcat服务器的安装及配置。知道了Tomcat安装目录下主要目录的作用。理解JSP页面的执行流程,和编写第一个交互式程序。 第二部分Web基础开发 第五章JSP基础语法 通过本章的的学习,使我了解了Jsp中注释语句的使用和Jsp中Scriptlet的使用及使用的区别,掌握了page指令的作用和两种包含语句及两种包含语句的区别,懂得了跳转指令的操作。基本可以使用Jsp基础语法结合JDBC完成登录程序的开发。 第六章JSP内置对象 通过本章的的学习,使我了解了Jsp中的9个内置对象及对应的操作接口,掌握了jsp 中的4种属性范围及属性操作,掌握了request,response,session,application,pagecontext这些常用内置对象的使用。 第七章JavaBean 通过本章的的学习,使我了解了JavaBean的基本定义格式和web目录的标准结构,掌握了jsp中对于javabean支持的3种标签,即,.可以使用javabean进行参数的自动赋值操作。 第八章文件上传 通过本章的的学习,使我了解了文件上传操作的作用和smartupload上传组件的使用,理解了fileupload上传组件的使用。

java期末考试试题及答案

1.谈谈final, finally, finalize的区别。 final关键字: a) 如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。 b) 将变量或方法声明为final,可以保证它们在使用中不被改变。 c) 被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。 d) 被声明为final的方法也同样只能使用,不能重载。 finally关键字:在异常处理时提供finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch 子句就会执行,然后控制就会进入finally 块。 finalize:方法名,不是关键字。Java技术允许使用finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object 类中定义的,因此所有的类都继承了它。子类覆盖finalize() 方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。 2.GC是什么? 为什么要有GC? GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一: System.gc() Runtime.getRuntime().gc() 3.Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 写程序Math.round(11.5) = 12 Math.round(-11.5) = -11 4.给我一个你最常见到的runtime exception ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

Java开发领域的大牛有哪些

Java开发领域的大牛有哪些 本篇文章小编和大家分享一下Java开发领域的大牛有哪些,对Java开发感兴趣或者是对Java开发大牛感兴趣的小伙伴就随小编一起来了解一下吧。 1、James Gosling 在他12岁的时候,他已能设计电子游戏机,帮忙邻居修理收割机。大学时期在天文系担任程式开发工读生,1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,博士论文的题目是:"The Algebraic Manipulation of Constraints"。毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司。1990年,与Patrick Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。1994年底,James Gosling在硅谷召开的“技术、教育和设计大会”上展示Java程式。2000年,Java成为世界上最流行的电脑语言。 2009年四月,Sun被甲骨文公司并购。高斯林于2010年四月时宣布从甲骨文公司离职。 2011年3月29日,高斯林在个人博客上宣布将加入Google[3]。 2011年8月30日,仅仅加入Google数月之后的高斯林就在个人博客上宣布离开Google,加盟一家从事海洋机器人研究的创业公司Liquid Robotics[1],担任首席软件架构师。 在2011年5月建立的Scala公司Typesafe Inc.,高斯林被聘请为公司顾问。 2、Joshua Bloch ——Collections 框架 早在1996年,适逢Java刚刚崭露头角。先是1月份发布JDK1.0,然后是5月底在旧金山召开首届JavaOne大会,年末又是JDK1.1紧跟其后。正是在Java 技术如火如荼、大展拳脚的背景之下,JoshuaBloch来到了Sun。2004 年7月初,就在J2SE5.0发布在即,Jusha Bloch刚刚荣获Sun“杰出工程师(Distinguished Engineer)”的称号之时,他突然离开Sun而去了正值发展态势迅猛的Google,成为了Google的Java首席架构师。 在Bloch来到Sun之后,很快他被从安全组调入核心平台组,从事底层API 设计。至此以后,每逢JDK的重大版本发布,总能在其中见到Joshua的“妙笔”。JDK1.1中的java.math、1.4中的assertions,还有大家所熟识的Collections Framework皆是Joshua一手打造。其中的Collections Framework还获得了当年的

java基础考试题及答案

新员工考试 一、选择题(共30题,每题 2 分) 1. 下面哪些是合法的标识符?(多选题) A. $persons B. TwoUsers C. *point D. this E. _endline 答案A,B,E 分析Java 的标识符可以以一个Unicode 字符,下滑线(_),美元符($)开始,后续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字(this 保留字)。 2. 哪些是将一个十六进制值赋值给一个long 型变量?(单选题) A. long number = 345L; B. long number = 0345; C. long number = 0345L; D. long number = 0x345L 答案D 分析十六进制数以Ox开头,Io ng型数以L (大小写均可,一般使用大写,因为小写的 l 和数字1 不易区分)。 3. 下面的哪些程序片断可能导致错误? (多选题) A. String s = "Gone with the wind"; String t = " good "; String k = s + t; B. String s = "Gone with the wind"; String t; t = s[3] + "one"; C. String s = "Gone with the wind"; String standard = s.toUpperCase(); D. String s = "home directory"; String t = s - "directory"; 答案B,D 分析 A:String 类型可以直接使用+进行连接运算。 B:String 是一种Object ,而不是简单的字符数组,不能使用下标运算符取其值的某个元 素,错误。 C:toUpperCase()方法是String 对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的结果(String 类型)。 D:String 类型不能进行减(- )运算,错误。 4. point x 处的哪些声明是句法上合法的? (多选题) cIass Person { private int a; pubIic int change(int m){ return m; } } pubIic cIass Teacher extends Person { public int b;

JAVA测试题(三套含答案)

<测试一> 1.在单一文件中import、class和package的正确出现顺序是:A A.package, import, class B.class, import, package C.import, package, class D.package, class, import 2.public static void main方法的参数描述是:A,D A.String args[] B.Strings args[] C.String args D.String []args 3.下面哪行代码会在编译的时候出现错误或警告:A,B,C,D A.float f=1.3; B.char c="a"; C.byte b=257; D.boolean b=null; E.int i=10; 4.编译,运行下列代码后的结果是:D public class Test { public static void main (String args []) { int age; age = age + 1; System.out.println("The age is " + age); } } A.编译,运行后没有输出 B.编译,运行后输出:The age is 1 C.能通过编译,但运行时产生错误 D.不能通过编译 4.下面那些关键字不是JAVA的关键字B A if B then C goto D while E case 5.下面那些不是合法的变量定义:A,F A.2variable B.variable2 C. _whatavariable

D. _3_ E. $anothervar F. #myvar 6.内部数据类型byte的取值范围是B A.0 - 65, 535 B.(–128) – 127 C.(–32,768) – 32,767 D.(–256) – 255 7.下列哪些表达式返回true AB A."john" == "john" B."john".equals("john") C."john" = "john" D."john".equals(new Button("john")) 8.声明公用的abstract方法的正确格式是A A.public abstract void add(); B.public abstract void add() {} C.public abstract add(); D.public virtual add(); 9.下面的代码能打印出的结果为:C int i=1; switch (i) { case 0: System.out.println("zero"); break; case 1: System.out.println("one"); case 2: System.out.println("two"); default: System.out.println("default"); } A.one B.one, default C.one, two, default D.default 10.下面的代码能打印出的结果为:B int i=9; switch (i) { default:

JAVA编程不得不看的几本经典书籍

为了帮助对java编程感兴趣的同学更好、更快的提高编程技术,武汉北大青鸟光谷校区专业老师在此推荐几本学习编程非常有用的书籍,以供大家参考。 入门类 1.《java从入门到精通》(第3版) 【内容介绍】 本书从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java 语言进行程序开发应该掌握的各方面技术。全书共分28章,包括:初识Java,熟悉Eclipse 开发工具,Java 语言基础,流程控制,字符串,数组,类和对象,包装类,数字处理类,接口、继承与多态,类的高级特性,异常处理,Swing程序设计,集合类,I/O输入输出,反射,枚举类型与泛型,多线程,网络通信,数据库操作,Swing表格组件,Swing树组件,Swing其他高级组件,高级布局管理器,高级事件处理,AWT绘图与音频播放,打印技术和企业进销存管理系统等。所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会Java程序开发的精髓,快速提高开发技能。 【推荐理由】 本书内容详尽,实例丰富,非常适合作为编程初学者的学习用书,也适合作为开发人员的查阅、参考资料。 2.《java核心技术卷一》 【内容介绍】 本书是Java技术经典参考书,多年畅销不衰,第7版在保留以前版本风格的基础上,涵盖Java2开发平台标准版J2SE5.0的基础知识,主要内容包括面各对象程序设计、反射与代理、接口与内部类、事件监听器模型、使用Swing UI工具箱进行图形用户界面设计,异常处理、流输入/输出和对象序列化、泛型程序设计等。本书内容翔实、深入浅出,附有大量程序实例,极具实用价值,是Java初学者和Java程序员的必备参考书。 【推荐理由】 本书出版以来,深受广大读者的喜爱,它全面介绍了Java SE的基础知识,不但具有使用价值,而且易于阅读,易理解,它必成为想进军Java和基础薄弱同学的不二之选。 3.《java编程语言》 【内容介绍】 本书以Java语言创建者的独特视角向读者展现了为什么以及如何使用Java语言,以便读者理解Java语言的基本设计目标以及它在现实世界中的应用。本书介绍的是Java语言的

java笔试题含答案

班级:_______________ 学号:______________ 姓名:___________ Java 笔试题 (可多选) 1. 下面哪些是Thread类的方法( ABD) A start() B run() C exit() D getPriority() 2. 下面关于类的说法正确的是(A) A 继承自Throwable B Serialable C 该类实现了Throwable 接口 D 该类是一个公共类 3. 下面程序的运行结果是( false ) String str1 = "hello"; String str2 = "he" + new String("llo"); == str2); 4. 下列说法正确的有( C) A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 5. 指针在任何情况下都可进行>, <, >=, <=, ==运算( true ) 6. 下面程序的运行结果:(B) public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; (); "ping"); } static void pong() { "pong"); } A pingpong

B pongping C pingpong和pongping都有可能 D 都不输出 7. 下列属于关系型数据库的是(AB) A. Oracle B MySql C IMS D MongoDB 8. GC(垃圾回收器)线程是否为守护线程( true ) 9. volatile关键字是否能保证线程安全( false ) 10. 下列说法正确的是(AC) A LinkedList继承自List B AbstractSet继承自Set C HashSet继承自AbstractSet D WeakMap继承自HashMap 11. 存在使i + 1 < i的数吗(存在) 12. 的数据类型是(B) A float B double C Float D Double

JAVA语言程序设计期末考试试题及答案

《JA V A语言程序设计》期末考试试题及答案1(应考必备题库) 一、单选择题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. java B. .class C. html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、 编译生成字节码和解释运行字节码。 2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占 用2字节内存空间,这样,无论是中文字符还是英文字符,都是占 用2字节内存空间。 3、设x = 2 ,则表达式( x + + )/3 的值是0 。 4、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为true和false。 5、抽象(abstract) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终(final)方法是不能被当前类的子类重新定义的方法。 6、创建一个名为MyPackage 的包的语句是package MyPackage ; , 该语句应该放在程序的位置为:应该在程序第一句。 7、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是120。

Java程序设计试题及答案

一、判断题。判断下列各题是否正确,若正确,在()内打“√”,否则打“×”。 1、Java语言具有较好的安全性和可移植性及与平台无关等特性。√ 2、Java语言的源程序不是编译型的,而是编译解释型的。√ 3、Java语言使用的是Unicode字符集,每个字符在内存中占8位。× 4、Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。√ 6、一个类可以实现多个接口,接口可以实现“多重继承”。√ 7、实现接口的类不能是抽象类。× 二、不定项选择题。 1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。 A、java B、class C、html D、exe 2、main方法是Java Application程序执行的入口点,关于main方法的方法首部,以下(B)项是合法的。 A、public static void main() B、public static void main(String args[]) C、public static int main(String[] arg) D、public void main(String arg[]) 3、关于下面代码的说法(C)是正确的 public class Example{ public static void main(String[] args){ int[] arr= new int[10]; } } A、编译时产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空(null) 4、不正确的表达式是(AB)。 A、float a=; B、Double a=new Double C、byte a = (byte)340; D、Byte a = 120; 5、定义一个类名为""的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为( CD)。 A、private class MyClass extends Object B、class MyClass extends Object C、public class MyClass D、public class MyClass extends Object 6、下列构造方法的调用方式中,正确的是(C)。 A、按照一般方法调用 B、由用户直接调用

java开发实战经典答案

java开发实战经典答案 【篇一:java开发实战经典】 ass=txt>首先需要为读者说明的是,《java开发实战经典》,如图1所示,不只是一本纯粹讲解基础的书,里面更多的内容是为java ee的开发而服务的,所以读者在学习本书的时候应该重点培养的是思想,按照程序解释问题的思想。在本书的序言的视频之中已经为读者介绍了本书的整体结果,实际上每个读者必须首先搞清楚java se和java ee的关系,如图2所示。 从图2中可以清楚的发现,如果要想进行java ee的开发,java se 是其中必要的组成部分,这也就是为什么在学习java ee之前要读者一定要有扎实的java se基础了。 在本书的序章中也为读者讲解过,java se核心的部分就是以下四个: 1、面向对象:主要是要求读者建立好一个面向对象的概念,并可以灵活的运用这些概念进行程序的分析,可以说在整个java se部分核心就是面向对象的开发,里面涉及的概念较多,但是所有的概念最终都是为接口和抽象类服务的,而所有java开发中涉及到的各个设计模式,实际上也是针对于接口和抽象类的应用。 2、类集框架:大部分的读者都应该听过或学习过数据结构,虽然从大学就开始学习《数据结构与算法》,但是实际上来讲,学习完后真正可以进行数据结构编写的人并不多,而且大部分的数据结构都是以c语言为基础讲解的,而类集就相当于是java实现的数据结构,包括树、链表、队列等等,如果只是进行应用层次开发的读者没有必要深入了解其内部的操作,但是必须清楚的掌握其核心的接口和各个操作类。 3、io操作:对于大部分的自学者而言,io操作也许是最难过的一个坎了,如果没有很好的理解抽象类和接口的概念,那么要想充分的理解io操作是很难的,在整个io操作之中,完整的体现了java 语言多态性的设计思想,而且在学习io的时候必须始终把握住一个原则:“根据使用的子类不同,输入输出的位置也不同”。 4、java数据库操作(jdbc):jdbc首先并不能算是一门技术,更多的应该算是一种服务—— java提供的数据库访问服务,里面提供了大量的操作接口,各个数据库生产商根据这些接口实现自己的数据库操作,从面向对象的设计上来看,用户完全没有必要考虑其

java考试试卷及答案

JA V A考试试卷及答案 选择题 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画 图操作。 A. start() B. stop() C. init() D. paint() 3、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?B A)安全性B)多线程C)跨平台D)可移植 4、下列哪个类声明是正确的?D A)abstract final class HI{···}B)abstract private move(){···} C)protected private number; D)public abstract class Car{···} 6、在Java语言中,下列哪些语句关于内存回收的说明是正确的? B A.程序员必须创建一个线程来释放内存; B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象 10、下列Object类中的方法,哪一项不是完全跟线程有关:A A.String toString() B.void notify() C.void notifyAll() D.void wait() 11、给出下面代码:C

public class Person{ static int arr[] = new int[10]; public static void main(String a[]) { System.out.println(arr[1]); } } 下列说法中正确的是? A.编译时将产生错误; B.编译时正确,运行时将产生错误; C.输出零; D.输出空。 12、字符串是Java已定义的类型,关于它的构造函数,下面说法不正确的是:B A.String(char[] value, int offset, int count) B.String(int[] codePoints,int offset, int count) C.String(String original) D.String(StringBuffer buffer) 13、下列说法中正确的是:C A.导入包会影响程序的性能 B.包存储在类库中 C.包是类的容器D.上述说法都不对 14、下列不是String类的常用方法是:C

java期末考试复习题及答案

《Java程序设计》课程试卷 1.使用Java语言编写的源程序保存时的文件扩展名是( B )。 (A).class (B).java (C).cpp (D).txt 2.设int a=-2,则表达式a>>>3的值为( C )。 (A)0 (B)3 (C)8 (D)-1 3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( C )。 (A)a[0]; (B)a[a.length-1]; (C)a[3]; (D)int i=1; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数( D )。 (A)封装(B)继承(C)覆盖(D)重载 5.在类的定义中构造函数的作用是( D )。 (A)保护成员变量(B)读取类的成员变量(C)描述类的特征(D)初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句( B )。 (A)try (B)break (C)catch (D)finally 7.类与对象的关系是( A )。 (A)类是对象的抽象(B)对象是类的抽象(C)对象是类的子类(D)类是对象的具体实例 8.下面哪一个是Java中不合法的标识符( D )。 (A)$persons (B)twoNum (C)_myVar (D)*point 9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 (A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的( C )。 (A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( ) (C)ArrayList myList=new List( ) (D)List myList=new List( ) 11.Java源文件和编译后的文件扩展名分别为( B ) (A) .class和 .java (B).java和 .class (C).class和 .class (D) .java和 .java

Java试题及答案

1、在中如果声明一个类为,表示什么意思? 答:是最终的意思,可用于定义变量、方法和类但含义不同,声明为的类不能被继承。 2、父类的构造方法是否可以被子类覆盖(重写)? 答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。 3、请讲述和的区别。 答:类所定义的对象是用于存放“长度固定”的字符串。 类所定义的对象是用于存放“长度可变动”的字符串。

4、如果有两个类A、B(注意不是接口),你想同时使用这两个类的功能,那么你会如何编写这个C类呢? 答:因为类A、B不是接口,所以是不可以直接继承的,但可以将A、B类定义成父子类,那么C类就能实现A、B类的功能了。假如A为B的父类,B为C的父类,此时C就能实现A、B的功能。 5、结合视频5(多线程),分析()和()方法的区别。 答:睡眠的意思 : () 方法用来暂时中止执行的线程。在睡眠后,线程将进入就绪状态。 等待的意思: 如果调用了 () 方法,线程将处于等待状态。 用于在两个或多个线程并发运行时。 6、谈谈你对抽象类和接口的理解。 答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。 他使用来继承。 接口:一个接口允许一个类从几个接口继承而来,程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量。其实现方式是来实现。 7. 的接口和的虚类的相同和不同处。 由于不支持多继承,而有可能某个类或对象要使用分别在几

个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是,所有方法默认情况下是.一个类可以实现多个接口。 8. 垃圾回收的优点和原理。并考虑2种回收机制。 语言中一个显著的特点就是引入了垃圾回收机制,使程序员最头疼的内存管理的问题迎刃而解,它使得程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。 9.谈谈,,的区别。 -修饰符(关键字)如果一个类被声明为,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为的,又被声明为的。将变量或方法声明为,可以保证它们在使用中不被改变。被声明为的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为的方法也同样只

相关主题