百度
360搜索
搜狗搜索

java题库网站,java求练习题集详细介绍

本文目录一览: 请问到那些站能下载到大量java初学者编程练习题呀??给推荐几个??拜托了各位 谢谢

·javaworld.com: http://www.javaworld.com ·Matrix-Java开发者社区: http://www.matrix.org.cn/ ·onjava.com: http://www.onjava.com ·下载示例程序的全部源码: http://www.javaworld.com/javaworld/jw-06-2005/dwr/jw-0620-dwr.war ·DWR: http://www.getahead.ltd.uk/dwr/index.html ·HSQL: http://hsqldb.sourceforge.net/ ·AJAX的定义: http://en.wikipedia.org/wiki/AJAX ·“AJAX:通向Web应用的新途径": Jesse James Garrett (Adaptive Path,2005.2): http://www.adaptivepath.com/publ ... archives/000385.php · “非常动态的Web界面” Drew McLellan (xml.com, 2005.2): http://www.xml.com/pub/a/2005/02/09/xml-http-request.html ·XMLHttpRequest & AJAX 工作范例: http://www.fiftyfoureleven.com/r ... ttprequest/examples · “可用的XMLHttpRequest实践” Thomas Baekdal (Baekdal.com, 2005.3): http://www.baekdal.com/articles/Usability/usable-XMLHttpRequest/ ·"XMLHttpRequest使用导引" Thomas Baekdal (Baekdal.com, 2005.2): http://www.baekdal.com/articles/ ... Request-guidelines/ ·AJAX实质: http://www.ajaxmatters.com/ http://www.javathinker.org

http://www.lybbs.net

http://java.chinaitlab.com

里面有很多java资料 http://java.ccidnet.com/ java开发乐园 http://www.java666.com/ CSDN论坛 http://www.csdn.net/ 中国最有名的技术论坛,《程序员》杂志就是他们出版的,你可以在上面提出问题,马上就有人回答你,如果你觉得好,你可以给那人加分; Java研究组织 http://www.javaresearch.org/ 上面有很多原创文章,高手还是挺多的; Java开发者 http://www.chinajavaworld.com/ 那里Java资料比较全; java.com.cn http://www.java.com.cn/ 看这域名就知道有多牛,注册用户快接近一万了,同时在线人数也在一千左右,人气很旺的; IBM的开发者网络 http://www-900.ibm.com/developerWorks/cn/java/index.shtml IBM永远的蓝色巨人 http://www.jdon.com/ J道 http://www.itpub.net/ ITPUB论坛 开源项目网站: 湖北省软件公共开发平台 http://gro.clinux.org/ 共创联盟 http://cosoft.org.cn/ 网上Web服务的资料: 中国UDDI技术联盟 http://www.uddi-china.org/ CSDN的柴晓路专栏 http://www.csdn.net/develop/author/ColumnAuthor/fennivel/ (注:柴晓路也是互联网上一个有名的人物,他发表过很多关于Web服务的文章,还出了一书,应该称的上是中国Web服务技术的先行者) IBM的开发者网络的XML&Web Service专栏: http://www-900.ibm.com/developerWorks/cn/xml/index.shtml?csdn IBM可是Web服务的力推者


大学让你快速成为编程大神的网站

编程必备小白”到“大神,神级网站
code cademy
你会发现编程是比较有使用Codecademy,趣的。在该网站上学习编程,通常是一个知识点搭配 3 个练习,可以让你对知识点掌握的更加牢固。
它像玩游戏一样,让你一关一关从易到难来完成学习,你可以每天利用碎片时间来从零基础入门到掌握一门编程语言
网站链接: https://www.codecademy.com
LeetCode
说起算法,不得不提到一个网站一力扣 ( LeetCode ) 。很多程序员都反映在BAT 等互联网企业的面试中都遇到过不少力扣上的真题。目前网站题库资源中有1000多套可以上手的编程题,主要分为 6 大板块:算法、数据结构、数据库、系统设计、面向对象设计、操作系统。
网站链接: https://leetcode.com
Codewars
Codewars 砌墙式进阶受到不少人的青睐不同等级有不同的题目,当然你也就获得不一样的经验值。
这个网站提供了海量的习题,完全免费codewars 分了 16 档难度,无论你是新手还是大牛,都可以找到你满意的题。
网站链接: https://www.codewars.com
Upskill
如果你的编程基础比较差,你便可以使用upski11。这个网站有各种的编程视频,能够帮助你开发出自己的个人项目。在upskill 网站,你可以轻松学会 HTMLCSS、Ruby on Rails 、Git 、Javascript等。
网站链接: https://upskillcourses.com
HackerRank
HackerRank网站是一个为编码程序员们提供的新型社交平台。本站创建一个专为黑客们服务的在线社区,在这个社区中,他们提供了各种编码谜题、游戏病毒和现实中的编码难题及挑战,让黑客们在该社区中进行交流讨论,接受挑战。HackerRank,就如这个名字所暗示的一样,它同时还提供了在线排行榜和其他的竞争元素。
网站链接:https://www.hackerrank.com
CodinGame
CodinGame 支持超过 20 种编程语言,例如Python、Ruby、Java、 Scala 等.
它将编程变成游戏,在玩游戏时,会遇到许多具有挑战性的编码问题,我们需要想法设法完成挑战
网站链接: https://www.codingame.com

想找一些java的带讲解的基础练习题

【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
【程序2】
题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
【程序3】
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
【程序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的值,重复执行第一步。
【程序5】
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
【程序6】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n'.
【程序8】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
1.程序分析:关键是计算出每一项的值。
【程序9】
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
【程序10】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
【程序11】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
【程序12】
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
【程序13】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:
【程序14】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
【程序15】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
【程序16】
题目:输出9*9口诀。
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
【程序17】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
1.程序分析:采取逆向思维的方法,从后往前推断。
【程序18】
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
【程序19】
题目:打印出如下图案(菱形)
*
***
******
********
******
***
*
1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。
【程序20】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。
【程序21】
题目:求1+2!+3!+...+20!的和
1.程序分析:此程序只是把累加变成了累乘。
【程序22】
题目:利用递归方法求5!。
1.程序分析:递归公式:fn=fn_1*4!
【程序23】
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
【程序24】
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
【程序25】
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
【程序26】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
【程序27】
题目:求100之内的素数
【程序28】
题目:对10个数进行排序
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。
【程序29】
题目:求一个3*3矩阵对角线元素之和
1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
【程序30】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
【程序31】
题目:将一个数组逆序输出。
1.程序分析:用第一个与最后一个交换。
【程序32】
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
【程序33】
题目:打印出杨辉三角形(要求打印出10行如下图)
1.程序分析:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
【程序34】
题目:输入3个数a,b,c,按大小顺序输出。
1.程序分析:利用指针方法。
【程序35】
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
【程序36】
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
【程序37】
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
【程序38】
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
【程序39】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
【程序40】
题目:字符串排序。
【程序41】
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
【程序42】
题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
【程序43】
题目:求0—7所能组成的奇数个数。
【程序44】
题目:一个偶数总能表示为两个素数之和。
【程序45】
题目:判断一个素数能被几个9整除
【程序46】
题目:两个字符串连接程序
【程序47】
题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
【程序48】
题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
【程序49】
题目:计算字符串中子串出现的次数
【程序50】
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
===============================================
虽然是C语言的题~但是JAVA一样做,也挺适合初学者的
问题
? can not read xxx.java
? 怎样让char类型的东西转换成int类型?
? 我的applet原先好好的, 一放到web server就会有问题,为什么?
? 怎样在 Applet中用某个图形涂满整个背景?
? 怎样比较两个类型为String的字符串?
? 怎样将浮点数(float)相加 ? Float 好像没有办法?
? 如何将字串String转换成整数int?
? 如何将整数 int 转换成字串 String?
? 哪位可以推荐几个比较好的java/jsp论坛?
? JAVA的环境变量 请教一下哪位高手知道JAVA的环境变量怎么配置?让它在DOS中运行,我下载的版本是jdk1.5.0_01,系统属性环境变量中有一个用户变量和系统变量,该配置在哪个变量中呢?
? C++和JAVA的分别?
? 初学java用那本书好
? 我想学习JAVA编程语言,但不知从啥开始?
? 初学JAVA的人看书参考书最好
? 作用域public,private,protected,以及不写时的区别
? ArrayList和Vector的区别,HashMap和Hashtable的区别
? char型变量中能不能存贮一个中文汉字?为什么?
? 继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
? 谈谈final, finally, finalize的区别。
? Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
? Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)
? &和&&的区别
? HashMap和Hashtable的区别?
? Collection 和 Collections的区别?
? 什么时候用assert?
? GC是什么? 为什么要有GC? (基础)?
? String s = new String("xyz");创建了几个String Object?
? Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
? short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
? Java有没有goto?
? 数组有没有length()这个方法? String有没有length()这个方法?
? Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
? Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
? abstract class和interface有什么区别?
? abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
? 构造器Constructor是否可被override?
? 是否可以继承String类?
? 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
? try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
? 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
? swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
回答
? can not read xxx.java
首先看看你的文件是否保存为.java.txt的类型了(右点文件看属性里的扩张名) 重新保存 记得此时要把文件名.java加上引号 保存 。
返回顶部
--------------------------------------------------------------------------------
? 怎样让char类型的东西转换成int类型?
char c = 'A';
int i = c;
//反过来只要作强制类型转换就行了
c = (char) I;
返回顶部
--------------------------------------------------------------------------------
? 我的applet原先好好的, 一放到web server就会有问题,为什么?
一般来说,从以下方向试试:
确定class文件的格式没错——已经编译过,也没有损坏的情形;
确定所有用到的class文件放到web server上,少一个都不行;
确定所有的文件名和class名称一致,特别检查大小写有无差错;
如果程序中用到package,web server上的目录就要当心了。譬如您在class中宣告了一个叫COM.foo.util的package,那么web server的applet codebase目录底下就非得有 COM/foo/util这个子目录不可。(注意目录名称也有大小写之分);
web server上的文件档案应该事先设定好。(尤其是search,read和execute权限)
返回顶部
--------------------------------------------------------------------------------
? 怎样在 Applet中用某个图形涂满整个背景?
在背景建立 Panel 或 Canvas, 然后用图形填满它。
返回顶部
--------------------------------------------------------------------------------
? 怎样比较两个类型为String的字符串?
在两个对象之间使用 "==",会将“两个对象是否有同一reference”的结果传回。也就是说, 这等同于“两个对象是否拥有同一地址 (address)”,或者“两个对象物件是否为同一对象”。如果您的意思是判断两个字符串的内容是否相同,那么应该使用以下的方法才对:
if (s1.equals(s2) )
or if (s1.equalsIgnoreCase(s2) )
or if (s1.startsWith(s2) )
or if (s1.endsWith(s2) )
or if (s1.regionMatches(s1_offset, s2, s2_offset, length) )
or if (s1.compareTo(s2) <0)
返回顶部
--------------------------------------------------------------------------------
? 怎样将浮点数(float)相加 ? Float 好像没有办法?
我猜想您的程式大概写成这样:
Float One;
Float Two;
Float Hard = One + Two;
请注意 float 和 Float 是不同的,前者是 Java 基本类型之一, 而后者却是class。您应该将源代码改为:
float One;
float Two;
float Hard = One + Two;

Float One = new Float(1.0);
Float Two = new Float(2.0);
Float Hard = new Float(One.floatValue() + Two.floatValue());
返回顶部
--------------------------------------------------------------------------------
? 如何将字串String转换成整数int?
1)int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);
2)int i = Integer.valueOf(my_str).intValue();
注: 字串转成Double, Float, Long的方法大同小异。
返回顶部
--------------------------------------------------------------------------------
? 如何将整数 int 转换成字串 String?
有三种方法:
1)String s = String.valueOf(i);
2)String s = Integer.toString(i);
3)String s = "" + i;
注:Double, Float, Long 转成字串的方法大同小异。
返回顶部
--------------------------------------------------------------------------------
? 哪位可以推荐几个比较好的java/jsp论坛?
http://www.it315.org
这个网站是我最近才发现的,虽然内容不多,但是提供的相关java工具挺齐全。还有就是里面提供了java教学视频录象的免费下载,好像一两周更换一段。个人觉得挺适合初学者的,尤其是那个classpath的设置,讲的很透彻,大家有空可以看一看。
java官方站点(英文)
http://java.sun.com
要想了解最新的java动态,下载最新的java相关,比如j2se、j2ee、j2se的最新jdk版本就来这里吧。
java中文站
http://www.java-cn.com
这个可能大家都知道,不用说了,他提供的java资源是最丰富的。注册论坛是免费的,还送积分,用积分可以下载软件和电子书等,如果积分用完了,就需要自己发表一些文章来赚新的积分。
中文java网站
http://www.cn-java.com
跟上面站点类似的一个站,宗旨就是:为java爱好者服务。值得一看!
锋网
http://www.ijsp.net/tech/book/index.jsp
综合性的java网站,内含“下载中心”、“教程教学”等栏目。
返回顶部
--------------------------------------------------------------------------------
? JAVA的环境变量
请教一下哪位高手知道JAVA的环境变量怎么配置?让它在DOS中运行,我下载的版本是jdk1.5.0_01,系统属性环境变量中有一个用户变量和系统变量,该配置在哪个变量中呢?
Windows下JAVA环境变量的设置祥解
Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。下面逐个分析。
JAVA_HOME指向的是JDK的安装路径,如x:\JDK_1.4.2,在这路径下你应该能够找到bin、lib等目录。值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx……
那么,下面的步骤和以后的应用你都要受累了,呵呵。设置方法:
JAVA_HOME=x:\JDK_1.4.2
PATH环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了。设置方法是保留原来的PATH的内容,并在其中加上%JAVA_HOME%\bin
(注,如果你对DOS批处理不了解,你可能不明白%%引起来的内容是什么意思;其实这里是引用上一步设定好的环境变量JAVA_HOME,你写成x:\JDK_1.4.2也是可以的;你可以打开一个控制台窗口,输入echo
%JAVA_HOME%来看一下你的设置结果) :
PATH=%JAVA_HOME%\bin;%PATH%
同样,%PATH%是引用以前你设置的PATH环境变量,你照抄以前的值就行了。
CLASSPATH环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行。
CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
首先要注意的是最前面的".\;",如果你看不清,我给你念念——句点反斜杠分号。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件——为什么这样搞,这是由于LINUX的安全机制引起的,LINUX用户很明白,WINDOWS用户就很难理解(因为WINDOWS默认的搜索顺序是先搜索当前目录的,再搜索系统目录的,再搜索PATH环境变量设定的)
,所以如果喜欢盘根究底的朋友不妨研究一下LINUX。
为什么CLASSPATH后面指定了tools.jar这个具体文件?不指定行不行?显然不行,行的话我还能这么罗索嘛!:)
这个是由java语言的import机制和jar机制决定的,你可以查资料解决。
呵呵,具体的设定方法: win2k\xp用户右键点击我的电脑->属性->高级->环境变量,修改下面系统变量那个框里的值就行了。
win9x用户修改autoexec.bat文件,在其末尾加入:
set JAVA_HOME=x:\JDK_1.4.2
set PATH=%JAVA_HOME%\bin;%PATH%
set CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
返回顶部
--------------------------------------------------------------------------------
? C++和JAVA的分别?
JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者,
而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。
Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,并且编程环境更为简单。
我在这里不能完全列出不同之处,仅列出比较显著的区别:
1.指针
JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JAVA没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。这有利于Java程序的安全。
2.多重继承
c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个类继承多个接口(extends+implement),实现了c++多重继承的功能,又避免了c++中的多重继承实现方式带来的诸多不便。
3.数据类型及类
Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本数据类型之外,其余的都作为类对象,包括数组。对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。而c++允许将函数和变量定义为全局的。此外,Java中取消了c/c++中的结构和联合,消除了不必要的麻烦。
4.自动内存管理
Java程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类似于c++的new操作符。下面的语句由一个建立了一个类Read的对象,然后调用该对象的work方法:
Read r=new Read();
r.work();
语句Read r=new Read();在堆栈结构上建立了一个Read的实例。Java自动进行无用内存回收操作,不需要程序员进行删除。而c十十中必须由程序贝释放内存资源,增加了程序设计者的负扔。Java中当一个对象不被再用到时,无用内存回收器将给它加上标签以示删除。JAVA里无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。
5.操作符重载
Java不支持操作符重载。操作符重载被认为是c十十的突出特征,在Java中虽然类大体上可以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言不支持操作符重载是为了保持Java语言尽可能简单。
6.预处理功能
Java不支持预处理功能。c/c十十在编译过程中都有一个预编泽阶段,即众所周知的预处理器。预处理器为开发人员提供了方便,但增加丁编译的复杂性。JAVA虚拟机没有预处理器,但它提供的引入语句(import)与c十十预处理器的功能类似。
7. Java不支持缺省函数参数,而c十十支持
在c中,代码组织在函数中,函数可以访问程序的全局变量。c十十增加了类,提供了类算法,该算法是与类相连的函数,c十十类方法与Java类方法十分相似,然而,由于c十十仍然支持c,所以不能阻止c十十开发人员使用函数,结果函数和方法混合使用使得程序比较混乱。
Java没有函数,作为一个比c十十更纯的面向对象的语言,Java强迫开发人员把所有例行程序包括在类中,事实上,用方法实现例行程序可激励开发人员更好地组织编码。
8 字符串
c和c十十不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结束,在Java中字符串是用类对象(strinR和stringBuffer)来实现的,这些类对象是Java语言的核心,用类对象实现字符串有以下几个优点:
(1)在整个系统中建立字符串和访问字符串元素的方法是一致的;
(2)J3阳字符串类是作为Java语言的一部分定义的,而不是作为外加的延伸部分;
(3)Java字符串执行运行时检空,可帮助排除一些运行时发生的错误;
(4)可对字符串用“十”进行连接操作。
9“goto语句
“可怕”的goto语句是c和c++的“遗物”,它是该语言技术上的合法部分,引用goto语句引起了程序结构的混乱,不易理解,goto语句子要用于无条件转移子程序和多结构分支技术。鉴于以广理由,Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使用,使程序简洁易读。
l0.类型转换
在c和c十十中有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。例如,在c十十中可将一浮点值赋予整型变量,并去掉其尾数。Java不支持c十十中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。
11.异常
JAVA中的异常机制用于捕获例外事件,增强系统容错能力
try{//可能产生例外的代码
}catch(exceptionType name){
//处理
}
其中exceptionType表示异常类型。而C++则没有如此方便的机制。
参考资料:http://www.zs-aptech.com.cn/XUE%20%20XI/06.HTM
返回顶部
--------------------------------------------------------------------------------
? 初学java用那本书好
学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。
在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。
对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。
对于Java的入门书籍,蔡学镛推荐的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java 2编程详解》或者《Java 2从入门到精通》就很不错。
在所有的Java书籍当中,其实最最有用的,并不是O'reilly的 Java Serials,真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册,我的桌面上有三个Documentation的快捷方式,分别是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了这个三个Documentation,什么其他的书籍都不需要了。
对于Java Web 编程来说,最核心的是要熟悉和掌握HTTP协议,这个就和Java无关了,在熟悉HTTP协议之后,就需要熟悉Java的实现HTTP协议的类库,也就是Servlet API,所以最重要的东西就是Servlet API。当然对于初学者而言,直接通过Servlet API来学习Web编程有很大的难度,我推荐O'reilly的《Java Server Pages 》这本书来学习Web 编程。
EJB的书籍当中,《Enterprise JavaBeans, 2nd Edition》是一本很不错的书, EJB的学习门槛是比较高,入门很难,但是这本书完全降低了学习的难度,特别重要的一点是,EJB的学习需要结合一种App Server的具体实现,所以在学习EJB的同时,必须同步的学习某种App Server,而这本书相关的出了三本书,分别是Weblogic6.1,Websphere4.0和JBoss3.0上面部署书中例子的实做。真是既有理论,又有实践。在学习EJB的同时,可以边看边做,EJB的学习会变得很轻松。
但是这本书也有一个问题,就是版本比较旧,主要讲EJB1.1规范和部分EJB2.0的规范。而Ed Roman写的《Mastering EJB 2.0》这本书完全是根据EJB2.0规范写的,深入浅出,覆盖了EJB编程的各个方面,并且还有很多编程经验tips,也是学习EJB非常推荐的书籍之一。
如果是结合Weblogic来学习J2EE的话,《J2EE应用与BEA Weblogic Server》绝对是首选读物,虽然是讲述的Weblogic6.0,仍然值得购买,这本书是BEA官方推荐的教材,作者也是BEA公司的工程师。现在中文版已经随处可见了。这本书结合Weblogic介绍了J2EE各个方面的技术在Weblogic平台上的开发和部署,实践指导意义非常强。
在掌握了Java平台基础知识和J2EE方面的知识以后,更进一步的是学习如何运用OO的方法进行软件的设计,那么就一定要学习“设计模式”。Sun公司出版了一本《J2EE核心模式》,是每个开发Java企业平台软件的架构师必备的书籍。这本书全面的介绍了J2EE体系架构的各种设计模式,是设计师的必读书籍。
Java Learning Path(三)过程篇
每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。
学习Java的第一步是安装好JDK,写一个Hello World,? 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍。推荐看一下王森的《Java深度历险》,对这两个问题进行了深入的探讨。
第二步是学习Java的语法。Java的语法是类C++的,基本上主流的编程语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下,我当初是完全自己琢磨出来的,花了很久的时间。不过后来我看到《Thinking in Java》这本书上面是讲了这些概念的。
第三步是学习Java的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C的经验,我是大概花了一个月左右吧,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了不下5遍,才彻底领悟了。不过我想如果有C++经验的话,应该一两天时间足够了。那么在这个过程中,可以多看看《Thinking in Java》这本书,对面向对象的讲解非常透彻。可惜的是我学习的时候,并没有看到这本书,所以自己花了大量的时间,通过自己的尝试和揣摩来学会的。
第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jre\lib\rt.jar这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个,我没有统计过。但是真正对于我们来说最核心的只有4个,分别是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;
这四个包的学习,每个包的学习都可以写成一本厚厚的教材,而O'reilly也确实是这样做的。我觉得如果时间比较紧,是不可能通过读四本书来学习。我觉得比较好的学习方法是这样的:
首先要通读整个package的框架,了解整个package的class,interface,exception的构成,最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。
对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。我在给人培训的时候一般是一次课讲一个包,所以不可能详细的介绍每个类的用法,但是我反复强调,我给你们讲这些包的不是要告诉你们类的方法是怎么调用的,也不要求你们记住类的方法调用,而是要你们了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That'all!,当我们具体写程序的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法调用,是边写代码,边查Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。
第五步,通过上面的学习,如果学的比较扎实的话,就打好了Java的基础了,剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步,Java的自学能力已经被培养出来了,可以到了直接学习Documentation的水平了。除了要做GUI编程之外,JDK里面其他会有用处的包是这些:
java.text.

大家好!我是计算机新手,要备考java二级考试,请大家帮忙推荐几本教材和几个有用的网站。谢谢!~~~~~~~

《Java程序设计(第二版)》
《Java编程入门经典(第4版)》 (原作者是老外,翻译过来的)
人民邮电出版社
《Java完全自学手册》
机械工业出版社
《Java语言实用教程实验指导》
等等,这些都是基础类的,你自己可以根据实际的情况做一些选择了

对于好的网站,除了JAVA 的专业网站,也可以访问一些有二级JAVA 考试的网站,去做一些习题,了解考试内容。
你可以去访问希赛网的等考学院,那里汇集了各种考试资料,上面介绍的书籍也是来自该网站。
公共基础知识
Java语言程序设计
基本要求
1. 掌握Java语言的特点,实现机制和体系结构。
2. 掌握Java语言中面向对象的特性。
3. 掌握Java语言提供的数据类型和结构。
4. 掌握Java语言编程的基本技术。
5. 会编写Java用户界面程序。
6. 会编写Java简单应用程序。
7. 会编写Java小应用程序(Applet)。
8. 了解Java的应用。
考试内容
一、Java语言的特点和实现机制
二、Java体系结构
1. JDK目录结构。
2. Java的API结构。
3. 开发环境设置。
4. Java程序结构。
三、Java语言中面向对象的特性
1. 面向对象编程的基本概念和特征。
2. 类的基本组成和使用。
3. 对象的生成、使用和删除。
4. 接口与包。
5. Java类库的常用类和接口。
四、Java简单数据类型及运算
1. 变量和常量。
2. 基本数据类型及转换。
3. Java类库中对简单数据类型的类包装。
4. 运算符和表达式运算。
5. 数组和字符串。
五、Java语言的基本语句
1. 表达式语句。
2. 条件语句。
3. 循环语句。
4. 注释语句。
5. 异常处理。
六、Java编程技术基础
1. 线程的概念和使用。
2. 同步与共享。
3. 串行化概念和目的。
4. 串行化方法。
5. 串行化的举例。
6. 基于文本的应用。
7. 文件和文件I/O。
8. 汇集(collections)接口。
七、编写用户界面程序
1. 图形用户界面。
2. AWT库简介。
3. Swing简介。
4. AWT与Swing比较。
八、编写小应用程序(Applet)
1. 小应用程序概念。
2. 安全机制。
3. Applet执行过程。
4. Applet的图形绘制。
5. Applet的窗口。
6. Applet的工作环境。
7. Java Application和Applet。
九、Java的应用
十、J2DK的下载和操作
考试方式
1. 笔试:90分钟,满分100分,其中含公共基础知识部分的30分。
2. 上机操作:90分钟,满分100分。
上机题目类型要求:
(1) 基本操作。
(2) 简单应用。
3 综合应用

阅读更多 >>>  linux启动http的命令

自考java程序设计试题哪有?

自考java程序设计试题可以登录查找。作为专门的在线教育平台,的备考指导栏目就专门收录有自考的历年真题和模拟练习题,还有备考的知识点指导。点击底部咨询官网。
自考学习
1全面提升学习兴趣,比机械记忆强太多
学习兴趣是最关键的,我们在复习的时候,对于刚接触的学习材料抱有新鲜感,利用好这心态,进行最全面的学习备考材料,圈要点、查资料、做笔记。全面学习的趣味性非常高,考生也能基本掌握考试内容。
兴趣是学习最大的动力。
2深入学习,发掘重点
当我们对所学内容有了基本的了解后,就要开始深入学习,对照考纲挖掘所学内容里的重点,最后将书里的重点内容,反复记忆、消化。
因为自考试题是从题库中出来的,往往会反复考到,只要把这些题目都牢记于心,及格率大大增加。
3熟能生巧,量化试题
根据大纲复习,要求识记和掌握的重点背下来,就可以有好的成绩。
在复习的时候,也不仅仅看书、做笔记这么简单,要知道我们是自考生!在读书复习的时候,大量做考卷做试题,才能让我们自己发现不足之处重点突破。
4知识有共性,举一反三
在我们不断进行学习、做习题的时候,还要学会总结,易错的地方马上纠正,并发现这些所学知识的共性,学会举一反三。
自考/成考有疑问、不知道如何总结自考/成考考点内容、不清楚自考/成考报名当地政策,点击底部咨询官网,免费领取复习资料:https://www.87dh.com/xl/

java练习题

public class Vehicle { private String name; private String gender; private int age; private String driverLicense; private String plateNumber; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getDriverLicense() { return driverLicense; } public void setDriverLicense(String driverLicense) { this.driverLicense = driverLicense; } public String getPlateNumber() { return plateNumber; } public void setPlateNumber(String plateNumber) { this.plateNumber = plateNumber; } @Override public String toString() { return "Vehicle [name=" + name + ", gender=" + gender + ", age=" + age + ", driverLicense=" + driverLicense + ", plateNumber=" + plateNumber + "]"; } public void drive() { System.out.println(name + "司机正在开" + plateNumber + "牌号的车。"); } public void stop() { System.out.println(name + "司机把" + plateNumber + "牌号的车停了下来。"); } public boolean checkName(String check) { if (this.name != null && this.name != "") { return this.name.equals(check); } return false; } public boolean checkPlateNumber(String check) { if (this.plateNumber != null && this.plateNumber != "") { return this.plateNumber.equals(check); } return false; }}懒得写注释了

哪有java代码编程的练习题带答案的那种?

基于UDP通信,可用类创建一个对象表示一个发送数据包,这个类是() A.?DataSocket B.?DatagramSocket C.?DataPacket D.?DatagramPacket D
基于UDP通信,在创建了发送数据包的对象后,如果想获得数据包的目标端口号,可调用方法() A.?getTargetPort() B.?getPort() C.?getTargetName() D.?getName() B
基于UDP通信,在创建了发送数据包的对象后,如果想获得数据包的目标地址,可调用方法() A.?getIP() B.?getPort() C.?getAddress() D.?getName() C
如果想发送数据包,还必须创建一个有多个参数的DatagramSocket的对象负责发送数据包,这个参数的个数() A.?0 B.?1 C.?2 D.?3 A
基于UDP通信,可用类的对象表示一个接收数据包,这个类是() A.?DataSocket B.?DatagramSocket C.?DataPacket D.?DatagramPacket D
基于UDP通信,接收数据包的端口号应() A.?0~65535 B.?0~1023 C.?1024~65535 D.?与发送数据包的端口号相同 D
基于UDP通信,一个接收数据包应调用方法接收数据包的是() A.?connect() B.?receive() C.?accept() D.?get() B
如果要接收一个数据包,必须先准备一个数据包用于接收,这个准备接收数据的数据包应是一个类的对象,这个类是() A.?DatagramSocket B.?DatagramPacket C.?DataSocket D.?DataPacket B
一个Applet程序,如果要从网络上加载一个图像,应使用方法() A.?getGraphics() B.?getSource() C.?getImage() D.?play() C
"要显示一幅图像,()" A.?直接将介质上的图像显示在屏幕上 B.?先读入内存,在显示在屏幕上 C.?将图像读入内存即可 D.?给出图像文件的文件名即可 B
在Applet程序中,如果想获得当前Applet程序的地址,应调用方法() A.?getAddress() B.?getIP() C.?getCodeBase() D.?getDocument() C
图像被加载,输出图像使用的方法是() A.?drawImage() B.?displayImage() C.?printImage() D.?pasteImage() A
屏幕上显示的图像,() A.?必须和实际图像大小一致 B.?在x方向可发生变化 C.?在y方向可发生变化 D.?可以和实际的图像大小不一致 D
"调用方法drawImage(Image img,int x,int y,int width,int height),显示的图像按比例自动调整,此比例为()" A.?width/height B.?width/img.getWidth() C.?height/img.getHeight() D.?x方向width/img.getWidth(),y方向height/img.getHeight() D
在一个图形方式的Application程序中,() A.?可以直接在窗口中显示一幅图像 B.?可以在窗口中添加一个Canvas组件,在这个组件上显示一幅图像 C.?另外建立一个可以显示图像的窗口 D.?Application程序不能显示图像 B
在图形方式的Application中,要获取一幅图像,必须先得到一个类的对象,这个类是() A.?Image B.?ToolKit C.?Frame D.?Cavas B
在图形方式的Application中,要设置窗口的图标,应调用方法() A.?drawImage() B.?drawIcon() C.?drawIconImage() D.?setIconImage() D
JDBC() A.?能与数据库建立连接 B.?能向数据库发送SQL语句 C.?能返回对数据库的处理结果 "D.?能完成上述A,B,C" D
JDBC和数据连接的一种方式是先建立一个桥接器,这个桥是() A.?JDBC B.?ODBC C.?JDBC-ODBC D.?SQL C
要与一个数据库进行连接,首先配置一个数据源是() A.?ODBC B.?JDB C.?ODBC-JDBC D.?Excel A
建立一个数据库桥接器,应使用Class类中的方法是() A.?forName() B.?getClasses() C.?getInterface() D.?getMethods() A
建立桥接器时,可能会发生异常的是() A.?FileNotFoundException B.?ClassNotFoundException C.?ClassCastException D.?RuntimeException B
JDBC建立数据库连接时,应使用类DriverManager中的静态方法创建一个Conection对象,这个方法是() A.?getDriver() B.?getLogStream() C.?registerDriver() D.?getConnection() D
JDBC和数据库连接时,可能会产生异常的是() A.?IOException B.?NoSuchFieldException C.?SecurityException D.?SQLException D
JDBC中向数据库发送SQL语句,首先应创建一个类的SQL语句对象,这个类是() A.?Statement B.?Driver C.?PreparedStatement D.?Connection A
JDBC中创建SQL语句对象可能产生例外的是() A.?IOException B.?DataTruncation C.?SQLException D.?SQLWaring C
JDBC中执行一条SQL语句应调用方法() A.?sendQuery() B.?sendSQL() C.?executeQuery() D.?executeSQL() C
JDBC中,一条语句的执行结果放在一个类的对象中,这个类是() A.?ResultSetMetaData B.?ResultSet C.?DatabaseMetaData D.?Driver B
要在Applet程序中播放声音文件,获得一个AudioClip的对象,应调用的方法是() A.?getAppletInfo() B.?getAudioClip() C.?getDocumentBase() D.?getImage() B
要播放一个音频对象表示的音频文件,应调用的方法是() A.?stop() B.?start() C.?init() D.?play() D
用Vector创建了一个对象后,该向量() A.?大小不可改变 B.?根据使用要求,大小可以改变 C.?只能表示一个平面向量 D.?只能表示一个三维向量 B
向量中的元素不能是() A.?Object类的对象 B.?Integer类的对象 C.?String类的对象 D.?基本数据类型的数据 D
往一个向量类对象中加一个元素的方法public void add(Object obj),其中参数obj表示() A.?所增加的元素只能是一个Object类的对象 B. 一个Class类的对象 C.?一个Process类的对象 D.?任何类的对象 D
向量类Vector中的方法的参数和方法的类型大多数为Object类型,是因为() A.?Object类是所有类的基类 B.?Object类包含所有类的属性和方法 C.?向量类中的元素只能为Object类的对象 D.?Object类是所有类的子类,能表示任何父类对象 A
使用JDK开发Java程序时,编译一个源文件使用的命令是() A.?javac B.?java C.?appletviewer D.?javap A
使用JDK开发Java程序时,如果要解释一个Application程序,须使用命令() A.?javac B.?java C.?appletviewer D.?javap B
使用JDK开发Java Applet程序时,如果想看一下该程序的运行结果,使用命令() A.?javac B.?java C.?appletviewer D.?javap C
InputStream类或Reader类的子类是所有的() A.?输入流 B.?输出流 C.?输入/输出流 D.?Java通信类 A
OutputStream类或Writer类的子类是所有的() A.?输入流 B.?输出流 C.?输入/输出流 D.?Java通信类 B
当构造一个输入流的对象时,可能产生异常的是() A.?InterruptedException B.?NoSuchFieldException C.?RuntimeException D.?FileNotFoundException D
构造一个输入流的对象时,可用一个类的对象作为构造方法的参数,这个类是() A.?FileReader B.?FileWriter C.?Inputstream D.?File D
一个输入流的对象用int read()方法从流中读数据时,该方法的返回值() A.?一个字符 B.?在0~255之间 C.?一行字符 D.?在0~65535之间 B
从一个FileInputStream流中用read方法读数据时,表示流结束,则该方法返回() A.?-1 B.?0 C.?255 D.?65535 A
当对一个流操作完毕时,可以保证操作系统将缓冲区中的数据写入到目的地,应调用方法() A.?available() B.?pack() C.?skip() D.?close() D
类RandomAccessFile不同于其它的I/O流,该流的对象() A.?只读 B.?只写 C.?读和写 D.?不能单独读写流,只有和其它流连接才能读写 C
"构造方法RandomAccessFile(File file,String mode)中的参数mode表示()" A.?读流的方法 B.?写流的方法 C.?读/写流的方法 D.?流的打开方式 D
将一个RandomAccessFile对象中的文件指针移动到文件中的一个确定位置,应调用方法() A.?skipBytes() B.?seek() C.?moveBytes() D.?seekBytes() B
PipedInputStream()构造的一个管道输入流,与另一个管道输入流连接,应调用方法() A.?connect() B.?receive() C.?read() D.?link() A
构造方法PipedOutputStream(PipedInputStream in)生成的输出流,() A.?须调用方法与另一个管道输入流连接 B.?已经与一个管道输入流in连接 C.?应连接到一个文件输入流 D.?应连接到一个文件输出流 B
构造方法PipedInputStream()或PipedOutputStream()创建对象时,() A.?可能产生IOException异常 B.?可能产生FileNotFoundException异常 C.?可能产生NotActiveException异常 D.?不可能产生异常 D
DataInputStream与DataOutputStream的特点() A.?读写数据时与具体的机器无关 B.?读写数据时与具体的机器有关 C.?读数据时与机器有关,而写数据时与机器无关 D.?读数据时与机器无关,而写数据时与机器有关 A
对象流可以将一个数据从流中读出,也可以写入流中,这个数据是() A.?整型数 B.?字符 C.?浮点数 D.?对象 D
如果一个用户自定义的类以对象为单位进行读写时,该类定义时应实现一个接口() A.?DataInput B.?DataOutput C.?ObjectOutput D.?Serializable D
用PushbackInputStream类定义的流,() A.?可将读出的所有字节退回到流中 B.?可将指定字节数退回到流中 C.?可将刚读出的字节退回到流中 D.?每读一个字节就自动退回一个字节到流中 D? ?

去哪可以看比较全面的java面试题

去Java面试题库app。去Java面试题库app可以看比较全面的java面试题,Java面试题库app提供全面的java基础面试题,java基础知识点。

哪儿有java练习题?

Java面向对象程序设计
考试卷
班级:
姓名:
时间: 90分钟
一、选择题(没有注明多选,则为单选)
1、 下列变量定义错误的是 D
A. int a;
B. double b=4.5;
C. boolean b=true;
D. float f=9.8; (9.8f)
2、 6+5%3+2的值是 D 3%5=3
A. 2
B. 1
C. 9
D. 10
3、 对于一个三位的正整数 n,取出它的十位数字k(k为整型)的表达式是
A. k = n / 10 % 10
B. k = ( n - n / 100 * 100 )%10
C. k = n % 10
D. k = n / 10
4、 下列语句序列执行后,k 的值是 D
1. int x=6, y=10, k=5;
2. switch( x % y ) (=6) (long类型不行)
3. {
4. case 0: k=x*y;
5. case 6: k=x/y;
6. case 12: k=x-y;
7. default: k=x*y-x; (default 位置可以改变)
8. }
A. 60
B. 5
C. 0
D. 54
5、 下列语句序列执行后,i的值是:
1. int i = 10;
2. do { i/=2; } while( i-- > 1 ); (减去1)
A. 1
B. 5
C. 2
D. -1
6、 在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是:(同一个方法中参数不同,返回值类型可以不同也可以相同)
A. public getSort(float x) 没有返回类型 一定是构造函数 不能重载
B. int getSort(int y)(参数一样不是重载)
C. double getSort(int x,int y) (参数不一样是重载)
D. void get(int x, int y)

7、 下列哪个是合法的Java标识符:(两个答案) B C
A. Tree&Glasses
B. FirstJavaApplet
C. _$theLastOne
D. 273.5

8、 设 a = 8,则表达式 a >>> 2 的值是:C (无符号右移动)左移是乘 右是除
A. 1
E. 2
B. 3
C. 4
9、 下面的程序名为Student.java
1. public class Student
2. {
3. private String name;
4. public Student(String s_name) //1
5. {
6. name = s_name; //2
7. }
8. public static void main(String args[])
9. {
10. Student s = new Student(); //3
11. }
12. }
使用如下指令编译:javac Student.java将会得到什么结果?
A. 将会顺利通过编译,并将产生一个Student.class的类文件
F. 编译时在//3处出错
B. 编译时在//2处出错
C. 编译时在//1处出错
10、 下面选项中能把字符串转换成float类型的是?: B
A. float value = new Float(str); 创建一个对象
B. float value = Float.parseFloat(str);
C. float value = Float.floatValue(str);
D. float value = (new Float()).parseFloat(str);
11、 下边程序运行的结果是? 实例化子类对象要看父类
1.class Base {
2. Base() { System.out.print("Base"); }
3. }
4. public class Alpha extends Base {
5. public static void main( String[] args ) {
6. new Alpha();
7. new Base();
8. }
9. }
A. Base
B. BaseBase
C. 程序编译失败.
D. 程序运行但没有任何输出
12、 下面程序运行的结果是? A 值传递
1. public class X {
2. private static int a;
3. public static void main(String [] args) {
4. modify(a);
5. System.out.println(a);
6. }
7. public static void modify(int a) {
8. a++;
9. }
10. }
A. 0
B. 1
C. 程序编译失败
D. 程序抛出异常
13、 下面程序运行的结果是?
1.String s = "Hello" + 9 + 1;+字符连接(9+1+”hello”=10hello(string类型))
2.System.out.println(s);
A. Hello10
B. Hello91
C. Hello10.0
D. 程序编译失败
14、 下列说法正确的是? C
A. 一个子类可以有多个父类,一个父类也可以有多个子类
B. 一个子类可以有多个父类,但一个父类只可以有一个子类
C. 一个子类可以有一个父类,但一个父类可以有多个子类
D. 上述说法都不对
15、 下面程序运行的结果是?
1. abstract class AbstrctIt {
2. abstract float getFloat ();
3. }
4. public class AbstractTest extends AbstractIt {
5. private float f1= 1.0f;
6. private float getFloat () {return f1;} 权限只能扩大不能缩小
7. }
A. 编译成功
B. 在第6行产生一个运行时异常
C. 在第6行产生一个编译错误
D. 在第2行产生一个编译错误
16、 下面的程序输出的结果是:B
1. public class A implements B {
2. public static void main(String args[]){
3. int i;
4. A c1 = new A();
5. i= c1.k;
6. System.out.println("i="+i);
7. }
8. }
9. interface B {
10. int k = 10;接口(抽象方法和静态常量的结合)里的静态常量 public static final
11. }
A. i=0
B. i=10
C. 程序有编译错误
D. i=true
17、 方法methodA返回类型是:
1. public class returnIt{
2. returnType methodA(byte x, double y) {
3. return (short) x/y * 2;
4. }
5. }
A. int
B. byte
C. long
D. double
18、 下面的程序输出的结果是:A
1. public class IfTest {
2. public static void main(string[]args) {
3. int x = 3;
4. int y = 1;
5. if (x = y) =:赋值运算符 (==)比较运算符
6. System.out.println(“Not equal”);
7. else
8. System.out.println(“Equal”);
9. }
10.}
A. Equal
B. Not Equal
C. 编译失败
D. 程序没有任何输出结果
19、 在下面程序中,变量i可以使用的数据类型是:(两个答案) A B
1. switch (i) {
2. default:
3. System.out.println(“Hello”);
4. }
A. char
B. byte
C. float 不行
D. double 不行
E. object
20、 应用程序的main方法中有以下语句,则输出的结果是:A
1. int[] x={122,33,55,678,-987};
2. int y=x[0];
3. for(int i=1;i
<x.length;i++){
4. if(x[i]>y)

5. y =x[i];

6. }

7. System.out.println(y);

A. 678

B. 122

C. -987

D. 33

21、 程序输出的结果是?C

1. public class X {

2. public static void main(String [] args) {

3. try {

4. badMethod();

5. System.out.print(“A”);

6. }

7. catch (Exception ex) {

8. System.out.print(“B”);

9. }

10. finally {

11. System.out.print(“C”);

12. }

13. System.out.print(“D”);

14. }

15. public static void badMethod() {}

17. }

A. AB

B. BD

C. ACD

D. ABCD

22、 程序输出的结果是?D

System.out.println(4 | 3);: 二进制 安位或

A. 0

B. 1

C. 5

D. 7

23、 关于下述程序哪个是正确的构造器重载(两个正确)

1. public class ConstOver {

2. public ConstOver (int x, int y, int z) {

3. }

4. }

A. ConstOver ( ) { }

B. protected int ConstOver ( ) { } 构造函数没有返回类型

C. private ConstOver (int z, int y, byte x) { }

D. public Object ConstOver (int x, int y, int z) { }

E. public void ConstOver (byte x, byte y, byte z) { }

24、 下述程序编译运行后在//1和//2处分别打印出什么值?

1. public class Test9静态变量和静态块只会初始化一次

2. {

3. static int i = 1;

4. static

5. {

6. i++;

7. }

8. public Test9()

9. {

10. i++;

11. }

12. public static void main(String[] args)

13. {

14. Test9 t1 = new Test9();

15. System.out.println(t1.i); //1

16. Test9 t2 = new Test9();

17. System.out.println(t2.i); //2

18. }

19. }

A. 2和2

B. 3和3

C. 3和4

D. 4和3

25、 下列答案正确的是:两个答案 A B

int[] arr = new int[10];

A. arr[0] 是null

B. arr[10]是0

C. arr[9] 是0

D. arr[0] 是0

26、 编译器能够为类A分配一个默认构造器的是?(两个答案) A D

A. class A {}

B. class A {

public A() { }

}

C. class A {

public A(int x) { }

}

D. class Z { }

class A extends Z {

void A() { }

}

27、 下面程序运行的结果是:

1.public class Foo {

2.public int i = 3;

3. public static void main(String args[]) {

4. Object o = new Foo();

5. Foo foo = (Foo)o;

6. System.out.println("i = " + foo.i);

7. }

8.}

A. i=3

B. i = 0.

C. 程序编译错误

D. 程序运行时抛出异常

28、 下面程序运行的结果是:

1. class Exc0 extends Exception { }

2. class Exc1 extends Exc0 { }

3. public class Test {

4. public static void main(String args[]) {

5. try {

6. throw new Exc1();

7. } catch (Exc0 e0) {

8. System.out.println("Ex0 caught");

9. } catch (Exception e) {

10. System.out.println("exception caught");

11. }

12. }

13. }

A. Ex0 caught

B. exception caught

C. 编译失败,错误在第2行

D. 编译失败,错误在第6行

29、 下面表达式计算的结果和返回值类型分别是?(两个答案) B D

Math.ceil(0.1 + Math.floor(Math.random())); 0-1之间的小数

A. 0.0

B. 1.0

C. float

D. double

E. 一个随机数

30、 下面程序运行的结果是:

1.public interface Test {

2. int frood = 42;

3.}

4.class TestImpl implements Test {

5. private static int frood;

6. public static void main(String[] args) {

7. System.out.println(++frood);

8. }

9.}

A. 0

B. 1

C. 42

D. 43

答题卡

1 2 3 4 5

阅读更多 >>>  jsp源码之家,请问网站源码是什么意思,怎么用?

6 7 8 9 10

11 12 13 14 15

16 17 18 19 20

21 22 23 24 25

26 27 28 29 30

二、编程题

注意:书写清晰,看不清楚不给分,注意字体大小,写不下可以写在背面,标清题号。

1、 输出n行n列的空心矩形(要求使用嵌套循环),当n=5时,运行结果显示如下:

#####

# #

# #

# #

#####

2、 设计Java程序

假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?

3、 设计Java程序,实现如下功能:

获取50个0至300之间的随机整数,并输出到屏幕上;

取出上面50个整数中的偶数,倒序排列输出到屏幕上。

4、 编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个类都有构造方法和输出相关数据的方法。
</x.length;i++){

java求练习题集

楼主,我也是学java的,没怎么听过课,有题的话传我一份吧,小弟谢过了!!514016704@qq.com
给你了。
Java程序设计习题集
第一章Java基础知识
§1.1Java概述
1.完成在Windows 2000操作系统下环境变量的配置
2.创建一个Java程序,输出自己的基本信息:名字和年龄。
3.概述Java语言的版本发展过程。
4.简述Java语言的运行机制。
5.在自己的机器上用JDK开发运行环境完成第一个Java程序的编辑、编译、运行过程。
6.简述Java语言的特点,Java虚拟机的概念及作用。
§1.2 Java基本语法
1.什么是变量?什么是常量?
2.什么叫表达式,Java语言中共有几种表达式?
3.下面哪些表达式不合法?为什么?
HelloWorld 2Thankyou _First -Month 893Hello
non-problem HotJava implements $_MyFirst
4. 以下的选项中能正确表示Java语言中的一个整型常量的是( )。
A) 12. B) -20 C) 1,000 D) 4 5 6
5. 以下选项中,合法的赋值语句是( )。
A) a = = 1; B) ++ i; C) a=a + 1= 5; D) y = int ( i );
6. 若所用变量都已正确定义,以下选项中,非法的表达式是( )。
A) a != 4||b==1 B) 'a' % 3 C) 'a' = 1/2 D) 'A' + 32
7. 若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。
A) 0 B) 4 C) 8 D) –4
8. 在Java语言中,逻辑常量只有true 和 ___________ 两个值。
9. Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 __________两种具体类型。
10. Java语言是( )。
A.面向问题的解释型高级编程语言
B.面向机器的低级编程语言
C.面向过程的编译型高级编程语言
D.面向对象的解释型高级编程语言
11. 下列的变量定义中,错误的是( )。
A) int i; B) int i=Integer.MAX_VALUE;
C) static int i=100; D) int 123_$;
12. 以下的变量定义语句中,合法的是( )。
A) float $_*5= 3.4F; B) byte b1= 15678;
C) double a =Double. MAX_VALUE; D) int _abc_ = 3721L;
13. 以下字符常量中不合法的是( )。
A) '|' B) '\'' C) "\n" D) '我'
14. 若以下变量均已正确定义并赋值,下面符合Java语言语法的语句是( )。
A) b = a!=7 ; B) a = 7 + b + c=9;
C) i=12.3* % 4; D) a = a + 7 = c + b;
15. 下列程序段执行后t5的结果是( )。
int t1 = 9, t2 = 11, t3=8;
int t4,t5;
t4 = t1 > t2 ? t1 : t2+ t1;
t5 = t4 > t3 ? t4 : t3;
A) 8 B) 20 C) 11 D) 9
16. 设 a, b, c, d 均为 int 型的变量,并已赋值,下列表达式的结果属于非逻辑值的
是( )。
A) a!=b & c%d < a B) a++ = =a+b+c+d
C) ++a*b--+d D) a+b>=c+d
17. 请说出下面程序的运行结果。
public static void main(String[] args)
{
int nNum1 = 6;
int nNum2 = 8;
System.out.println();
//nNum1不自加短路原则
System.out.println(((nNum1 < nNum2) && (--nNum1) > nNum2));
System.out.println("nNum1 is " + nNum1);
System.out.println(((nNum1 < nNum2) && (--nNum1) > nNum2));
System.out.println("nNum1 is " + nNum1);
}
§1.3 流程控制语句
1.While与Do…While 语句的区别是什么?
2.下面程序的输出结果是什么?
public class MyFirst
{
public static void main(String args[])
{
int x = 1,y,total = 0;
while(x <= 20)
{
y = x * x;
System.out.println(“y = “ + y);
total = total + y;
++x;
}
System.out.println(“Total is “ + total);
}
}
3.设计程序求1到100的和。
4.请指出下面程序的错误:
swith(n)
{
case 1 :
System.out.println(“First”);
case 2 :
System.out.println(“Second”);
case 3 :
System.out.println(“Third”);
}
5.水仙花数是指其个位、十位、百位三个数的立方和等于这个数本身,求出所有水仙花数。
6.试利用for循环,计算1+2+3+4+5+…+100的总和。
7.利用do…while循环,计算1!+2!+3!+…+100!的总和。
8.使用循环嵌套,编写一个输出如下图形的程序:
*
* *
* * *
* * * *
* * * * *
§1.4 Java应用程序Application与小应用程序Applet
1.Applet小应用程序的生命周期有哪些过程?
2.Applet小应用程序运行的过程怎样?
3.请编写一个小应用程序,在显示图片的同时播放音乐
4. Applet可以做下列那些操作?( )
  A)读取客户端文件 B)在客户端主机上创建新文件
  C)在客户端装载程序库 D)读取客户端部分系统变量

阅读更多 >>>  maven仓库在哪,maven访问本地仓库(怎么查看本地maven仓库地址)

第二章 面向对象的JAVA语言
§2.1 概 述
1. 面向对象编程语言的基本特征是什么?
2. 常见的面向对象的程序设计语言包括哪些?
3. Java语言中,被static关键字修饰的成员变量与类变量有什么区别?
4. 面向过程程序设计的核心是:
A.商业逻辑 B.客观实体 C.算法 D.要解决的问题
5. 面向对象技术中的对象具有状态,行为和_________等三个基本属性。
6. 使用一个对象前,必须声明并___________它。
§2.2 类、对象和方法
1.什么是对象?什么是类?对象与类的关系是什么?
2.类的定义中包括那些基本信息?
3.定义一个类包括定义类头和定义_______两个部分。
4.类变量与实例变量的区别?
5. 类方法与实例方法的区别?
6. 符合对象和类关系的是:
A.人和老虎 B.书和汽车 C.楼和建筑物 D.汽车和交通工具
7.什么是方法,以及方法的作用?
8.举例说明方法的调用?
9.简述方法的递归调用过程?
10.什么是方法的重载?
11.什么是异常?试列出三个系统定义的运行时异常类。
12.try-catch-finally语句的执行顺序是怎样的?
13. Java 程序可以分为 Application 和 Applet 两大类,能在 WWW 浏览器上运行的是 _________ 。
14. 如果子类中的某个方法的名字、返回值类型和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法 __________了父类的同名方法。
15. 定义类头时能使用的修饰符是( )。
A) private B) static C) abstract D) protected
16. 下列方法定义中,正确的是( )。
A) int x( ){ char ch='a'; return (int)ch; }
B) void x( ){ ...return true; }
C) int x( ){ ...return true; }
D) int x( int a, b){ return a+b; }
§2.3 构造方法
1.构造方法在类中的作用是什么?
2.在创建派生类的对象的时候,基类与派生类中构造方法的调用顺序怎样?
3. 以下哪个方法仅在Applet程序被创建和首次被载入支持Java的浏览器时被调用
A)paint() B)init() C)action() D)start()
4. 在某个类A中存在一个方法:void GetSort(int x),以下能作为这个方法的重载的声明的是
A)Void GetSort(float x) B)int GetSort(int y)
C)double GetSort(int x,int y) D)void Get(int x,int y)
5. 有一个类A,以下为其构造函数的声明,其中正确的是( )。
A)void A(int x){...} B)A(int x){...}
C)a(int x){...} D)void a(int x){...}
6 阅读程序,根据程序功能,在指定的空白处填上适当的语句或语法成分,使程序完整。
1).下面是一个类的定义。
class ____________ // 定义名为myclass的类
{
__________ int var=666;
static int getvar()
{
return var;
}
}
2).下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。
__________ void paint(Graphics g)
{ g.____________("你好!",10,20); }
3).下面是用户程序对 Applet 类中方法 action( ) 的重新定义,功能为从单行文本编辑区 input 中输入数据赋给k。TextField 类的对象input和int型变量k已在类体中正确说明。
public ___________ action( Event e, Object o )
{ if( e.target==input )
k=Integer.parseInt( _______.getText( ) );
repaint( );
return true;
}
7. 请指出下面程序中的错误。
public class Test extends Base
{
public Test()
{
super();
}
public static void main(String[] args)
{
Test t = new Test();
Test t2 = new Test("TestName");
}
}
class Base
{
String name;
Base()
{
System.out.println("Base Constructor");
}
Base(String name)
{
this.name = name;
}
}
§2.4 继承
1. 是一种软件重用形式,在这种形式中,新类获得现有类的数据和方法,并可增加新的功能。
2.派生类构造方法可以通过关键字_______调用基类构造方法。
3. Java语言的类间的继承关系是( )。
A) 多重的 B) 单重的 C) 线程的 D) 不能继承
4.编程题
(1) 根据下面的要求实现圆类Circle:
? Circle类的成员变量:
radius 半径
? Circle类的方法成员
Circle() 构造方法,将半径置为0
Circle(double r) 构造方法,创建Circle对象时将半径初始化为r
double getRadius() 获得圆的半径值
double getPerimeter() 获得圆的周长
double gerArea() 获得圆的面积
void disp() 将圆的半径、周长、面积输出到屏幕
(2) 继承上题中的圆Circle类,派生圆柱体类Cylinder,要求如下:
? Cylinder类的成员变量:
height 表示圆柱体的高
? Cylinder类的方法成员:
Cylinder(double r,double h) 构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱高初始化为h
double getHeight() 获得圆柱体的高
double getVol() 获得圆柱体的体积
void dispVol() 将圆柱体的体积输出到屏幕
5.创建如下图所示继承层次结构中的类。Employee对象应当有姓名、年龄和社会保险号码,除此之外SalariedEmployee对象还有周薪,HourlyEmployee对象有相应的基本工资和工作小时数,CommissionEmployee 对象应当有佣金率和销售总额,BasePlusCommissionEmployee 对象应当有对应的基本工资。每个类有合适的构造方法和访问其成员属性的方法。请编写一个程序,实例化以上所有类的对象,输出相关员工的基本信息。
§2.5 多态
1.实现如图所示的shape层次结构。每个TwoDimensionalShape类应包含 getArea 方法,用来计算该图形的面积。每个ThreeDimensionalShape 类应包含getArea和 getVolumn 方法,分别用来计算该图形的面积和体积。创建应用程序,该程序使用一个Shape引用数组来保存层次结构中的所有图形的具体类的对象,该程序打印每个数组元素所引用的对象。此外,利用循环结构处理数组中的图形,以确定每个图形是TwoDimensionalShpae还是 ThreeDimensionalShape类 的对象,如果图形是TwoDimensionalShpae类的对象,则显示该图形的面积,如果是ThreeDimensionalShape类的对象,则显示该图形的面积和体积。
2.请指出下面程序中的错误
class Father
{
private int age;
public void setAge(int a)
{
this.age = a;
}
public int getAge()
{
return age;
}
public void disp()
{
System.out.println("age is " + age);
}
}
class Son extends Father
{
String name;
public void setName(String name)
{
name = name;
}
public void disp()
{
disp();
System.out.println("my name is " + name);
}
}
public class Test
{
public static void main(String args[])
{
Son s = new Son();
s.disp();
}
}
3. 为了区分重载多态中同名的不同方法,要求( )。
A)采用不同的形式参数列表 B) 返回值类型不同
C)调用时用类名或对象名做前缀 D) 参数名不同
§2.6 抽象类与接口
1.什么是接口?为什么要定义接口?接口与类有何异同?
2.如何定义接口?使用什么关键字?
3.一个类如何实现接口?实现接口的类是否一定要重写该接口中的所有抽象方法?
§2.7 包
1.Java中引入包的优点是什么?
2.如何将需要的外部类引入程序中?如何引用包中的某个类?如何引用整个包?
3.如何运行被打包后的字节码文件?
§2.8 异常处理
1.什么是异常?举出程序中常见的异常的种类?
2.Java中异常处理有什么优点?
3.在Java中,throw与throws有什么区别?他们各自用在什么地方?
4.请设计一个Java程序,程序中要进行数组操作和除法操作,要求对所设计的程序可能出现的异常进行处理。
5.定义一个邮件地址异常类,当用户输入的邮件地址不合法时,抛出异常。(其中邮件地址的合法格式为**** @****,也就是说必须是在@符号左右出现一个或多个其他字符的字符串。)

第三章 数组、向量和字符串
§3.1 数组
1.判断下面的说法是否正确。如果错误,请说明原因
①一个数组中可以存放多个不同类型的值
②数组下标通常是float型的
③二维数组其实质是一维数组的一维数组
2.找出并改正下面各程序段中的错误
①设int b[] = new int [10];
for ( int i = 0; i <= b.length; i++ ){
b[ i ] = 1;
}
②设 int a[][] = { { 1, 2 } {3, 4} };
a[ 1, 1] = 5;
③int a[10] = new int[ 10 ];
3.写出下面代码的输出结果
int[][] a = new int[10][5];
System.out.println(a.length);
System.out.println(a[3].length);
4.设有一个名为table的数组,试执行以下任务
a)声明并创建该数组为3行3列的整数数组。
b)该数组包含多少个元素?
c)用for结构将数组的每个元素初始化为各自下标的和(假设整数变量i,j为控制变量)
5.将一个数组中的值按逆序重新存放。假定原来的顺序为4,1,3,5,9,2,1。要求改为1,2,9,5,3,1,4。
6.现有类Book定义如下
Class Book{
private String author;//作者
private String ISBN;//书号
private double price;//价格
public String getAuthor(){ return this.author; } //返回作者名
public void setAuthor(String author){ this.author = author; } //设置作者名
public String getISBN(){ return this.ISBN; } //返回书号
public void setISBN(String ISBN){ this.ISBN = ISBN; }//设置书号
public double getPrice() { return this.price; }//返回书价
public void setPrice() { this.price = price ; }//设置书价
}
请用1个数组存放随机产生的10个书籍对象的数据,并显示其中书价最高图书的书号。(要求使用对象数组完成)
7.设有定义语句int a[]={66,88,99}; 则以下对此语句的叙述错误的是( )。
A) 定义了一个名为a的一维数组 B) a数组有3个元素
C) a数组的下标为1~3 D)数组中的每个元素是整型
§3.2 向量
1.填空题
a)Java的类 提供了类似于数组数据结构的功能,可以动态调整自身大小。
b)如不指定容量的增加值。每次需要增加容量时,系统自动将Vector的大小 。
c)向量中存放元素的类型必须是 。
2.下面代码的输出是什么?
Vector vector = new Vector (3,2);
for(int i = 0; i < 6; i++){
v.add("element "+ i);
System.out.println(vector.capacity()+" "+ vector.size());
}
3.下面代码的输出是什么?
Vector vector = new Vector();
for(int i = 0; i < 6; i++){
vector.add(" element " + i);
}
vector.remove( 1 );
vector.remove( 3 );
4.简单解释Vector类的下列各个方法的作用:
a) add
b) insertElementAt
c) set
d) remove
e)removeAllElements
f) removeElementAt
g)firstElement
h) lastElement
i) isEmpty
j) contains
k) indexOf
l) size
m) capacity
5.解释为什么向一个当前大小小于其容量的Vector对象中插入元素是一个相对较快的操作,而向一个大小等于其容量的Vector对象插入元素是一个相对较慢的操作。
§3.3 字符串
1.Java中的字符串有什么特点?它与C/C++中的字符串有何区别?
2.判断正误。如果是错误的,请说明理由。
a) 在使用(==)运算符比较String对象时,如果String对象包含相同的值,则比较结果为真。
b) 在创建String对象后可以修改。
3.对于以下各题,请编写一条语句以执行所指定的任务。
a) 比较s1中的字符串与s2中的字符串是否具有相同的内容。
b) 使用+=运算符将字符串s2添加到字符串s1的后面。
c) 确定s1中字符串的长度。
4.编写一个使用String类中的indexOf()方法确定一字符串在另一字符串中出现次数的应用程序。例如字符串“this”在字符串“this is my first program. this…”中出现了2次。

第四章Java图形界面设计
§4.1 图形用户界面和Swing常用组件
1.使用Swing中的组件创建图4.1.12所示的GUI。
2.使用Swing中的组件创建图4.1.13所示的GUI。
3.使用Swing中的组件创建图4.1.14所示的GUI。

§4.2 对话框和菜单
1.对话框有 和 两种。这两种对话框的区别是:当 对话框弹出时,只有关闭此对话框才能继续进行其它窗口的操作;当 对话框弹出时,即使不关闭,也可以对后面的的窗口进行操作。
2.用户可以使用 类提供的方法来生成各种标准的对话框,也可以使用 类根据实际需要生成自定义对话框。
3. 方法将JMenuBar添加到JFrame中。
4. 类可用于创建菜单对象。 方法可以在菜单中放置分隔条。
5.使用Swing中的组件绘制图4.2.12所示的对话框。(提示:使用setBounds()方法来设置组件在对话框中的位置和大小)

§4.3 布局管理器
1.Java中有那些布局管理器?各有什么特点?
2.找出下列各题中的错误,并解释如何改正错误。
1) panelObject.GridLayout(8,8);//设置网格布局管理器
2) container.setLayout(new FlowLayout(FlowLayout.DEFAULT));//设置顺序布局器
3) container.add(button,EAST);//BorderLayout
3.使用布局管理器创建下图的GUI。读者不需要提供任何功能。
图4.3.23
4.选择正确的选项:
(1) 下列属于图形用户界面元素的有:
A. Applet B. 窗口 C. 按钮 D. 线程
(2) 下列属于容器的组件有:
A. JButton B. JFrame C. JPanel D. JApplet
(3) 每个使用Swing组件的程序必须至少有一个:
A. 按钮 B. 顶层容器 C. 标签 D. 菜单
(4) 如果希望所有的控件在界面上均匀排列,应该使用下列那种布局管理器?
A. BoxLayout B. GridLayout
C. BorderLayout D. FlowLayout
(5) 监听事件和处理事件:
A. 都由Listener完成
B 都由在相应事件Listener处登记过的组件完成
C 由Listener和组件分别完成
D. 由Listener和窗口分别完成
(6) Applet可以做下列哪些操作?
A. 读取客户端文件 B. 在客户端主机上创建文件
C. 在客户端装载程序库 D. 读取客户端部分系统变量
5.编程题
(1) 实现图4.3.24效果,通过选择单选按钮中的选项来设置标签组件的内容,由标签组件显示我们的选择。

图4.3.24 编程1效果图
(2) 实现图图4.3.25效果,当用户输入密码后,按下“登录”按钮,然后我们将密码输入是否正确的结果显示在文本域中。
图4.3.25 编程2效果图
(3) 用Applet改写上面程序
(4) 利用事件,实现下图效果,即点击图4.3.26按钮,弹出图图4.3.27。图4.3.27单击按钮改变背景颜色。
图4.3.26 请单击按钮 图4.3.27 改变背景色
6. 请完成下列Java程序:用位于JFrame窗口下方的Open按钮,打开一个文件对话框,检索.gif或者.png图形文件,并在窗口中央将图象显示出来.(提示:将图象文件嵌入图象标内,再将图像图标置于标签中)
  注意:请勿改动main主方法和其他已有语句内容,仅在下划线处填入适当的语句.
  importJava.awt.*;
  import jova.awt.event.*;
  importJava.io.*;
  importJavax.swing.*;
  public class ImageViewer
  { public stratic void main(String[]args)
   { JFrame frame=new ImageViewer Frame();
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.show();
   }
  }
  
  class ImgeViewerFrame extends JFrame
  { public ImageViewerFrame()
   { setTitle("ImageViewer");
   setSize(DEFAULT_WIDTH,DEFAULT_HEIGTH);
   label = new JLAbel();
   Container contentpane = getContentpane();
   contentpane.add(label.BorderLayout.CENTER);
   chooser = new JFileChooser();
   chooser.setCurrentDirectory(new File("."));
   Button button = new Button("open");
   contentpane.add(button,BorderLa
yout.SOUTH);
   button.addActionListener(new
   ActionListener()
   { public void actionperformed(ActionEvent evt)
   { int r = chooser.showOpenDialog(null)};
   if(r = = JFilechooser.APPROVE_OPTLON)
   { String name
   =________________
   _______________
   }
   }
   }};
   }
   private JLabel label;
   private JFileChooser chooser;
   private static final int DEFAULT_WIDTH = 300;
   private static final int DEFAULT_HEIGHT = 400;
  }
§4.4 事件处理
1. 简述Java语言中的事件处理机制。
2. 事件处理程序需要包括那三个部分。

网站数据信息

"java题库网站,java求练习题集"浏览人数已经达到23次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:java题库网站,java求练习题集的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!