Java常用类习题(附部分答案).doc_第1页
Java常用类习题(附部分答案).doc_第2页
Java常用类习题(附部分答案).doc_第3页
Java常用类习题(附部分答案).doc_第4页
Java常用类习题(附部分答案).doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java常用类习题一、选择题1. 下列string类的( )方法返回指定字符串的一部分(选择一项)a. extractstring()b. substring()c. substring()d. middlestring()2下列哪一个是正确的( )a)hashtable的关键字和值都允许为nullb)hashtable的关键字和值都不允许为nullc)hashtable的关键字允许为null,值不允许为nulld)hashtable的关键字不允许为null,值允许为null3对于下列代码:string str1=java;string str2=java;string str3=new string(java);stringbuffer str4=new stringbuffer(java);以下表达式的值为true的是( )a) str1= =str2;b) str1= =str4; c) str2= =str3;d) str3= =str4;4以下程序段输出结果的是( )public class test public static void main(string args) string str=abcde; str.substring(3); str.concat(xyz); system.out.print(str); a) de b) dexyz c) abcde d) cdexyz5对于下列代码: public class examplestring str=new string(hello);char ch=d,b,c;public static void main(string args)example ex=new example();ex.change(ex.str,ex.ch);system.out.println(ex.str+and+ex.ch0);public void change(string str,char ch)str=world;ch0= a;输出结果是: ( )a) hello and db) hello and ac) world and dd) world and a6以下代码的运行结果是哪一项。( )public class stringtestpublic static void mb_operate(string x,string y)x.concat(y);y=x;public static void main (string args)string a=a;string b=b;mb_operate(a,b);system.out.println(a+.+b);a)a.ab)b.ac)a.bd)b.b7以下代码的运行结果是哪一项。( )public class stringarray testpublic static void mb_swap(string s)if(s.length0)?s.length():0; 18给定下列程序:public class test public static void main(string args) string str=new string(world); char ch=c,e,l,l,o; change(str,ch); system.out.println(str+and+ch); public static void change(string str,char ch) str=changed;ch0=h; ;上述程序的运行结果应该是?( )a) world and cellob) world and helloc) changed and hellod) changed and cello19在java语言中,下列表达式返回true的是哪些项目。( )a) hello=hello b) word.equals(word)c) john=johnd) john.equals(new button(john)20下面的哪些程序片断可能导致错误?( )a) string s=hello; b) string s=hello; string t=world; string t; string k=s+t;t=s3+one;c) string s=hello; d) string s=hello world; string standard = s.touppercase();string t=s-world;21在java语言中,下列语句中正确的是哪个?( )a) string temp=new stringa b c;b) string temp=a b c;c) string temp=a b c;d) string temp=a,b,c;22下面的哪些叙述为真? ( )a) equals()方法判定引用值是否指向同一对象。b) = 操作符判定两个分立的对象的内容和类型是否一致。c) equals()方法只有在两个对象的内容一致时返回true。 d) 类file重写方法equals()在两个分立的对象的内容和类型一致时返回true。 23关于以下程序段,正确的说法是1 string s1=hello;2 string s2=hello;3 if(s1= =s2)4 system.out.println(s1= =s2);5 if (s1.equals(s2)6 system.out.println(s1.equals(s2) );a. 行4与行6都将执行 b. 行4执行,行6不执行c. 行6执行,行4不执行d. 行4、行6都不执行24要产生20,999之间的随机整数使用哪个表达式?a(int)(20+math.random()*97)b. 20+(int)(math.random()*980)c. (int)math.random()*999d. 20+(int)math.random()*98025下列程序运行的结果为:public class example string str=new string(good); char ch=a,b,c; public static void main(string args) example ex=new example(); ex.change(ex.str,ex.ch); system.out.print(ex.str+ and ); sytem.out.print(ex.ch); public void change(string str,char ch) str=test ok; ch0=g; a. good and abc b. good and gbc c. test ok and abc d. test ok and gbc 26设有如下程序public class test public static void main(string args) integer intobj=integer.valueof(argsargs.length-1); int i = intovalue(); if(args.length 1) system.out.println(i); if(args.length 0) system.out.println(i - 1); else system.out.println(i - 2); 运行程序,输入如下命令: java test 2 则输出为:a. test b. test -1 c. 0 d. 1 e. 2 27下列程序运行的结果为:public class test public static void main(string args) int i; float f = 2.3f; double d = 2.7; i = (int)math.ceil(f) * (int)math.round(d); system.out.println(i); a. 4 b. 5 c. 6 d. 6.1 e. 9 28.如果以下条件成立,则用到java.lang.math 类中哪个方法?method( -4.4 ) = -4;a. round() b. min() c. trunc() d. abs()e. floor() f. ceil()29.set集合如何处理重复元素a如果加入一个重复元素将抛出异常b如果加入一个重复元素add方法将返回falsec. 集合通过调用equals方法可以返回包含重复值的元素。d. 重复值将导致编译出错。30.以下哪个方法是vector类中增加一个新元素的方法。aaddelement b. insert c. append d. additem31. 以下哪些方法是collection 接口的方法?a. iterator b. isempty c. toarray d. settext32.对于以下声明:string s1=hello; string s2=world; string s3; 下面的操作合法的是( ) a)s3=s1+s2; b)s3=s1-s2; c)s3=s1&s2; d)s3=s1&s2;33.下面的程序段执行后输出的结果是( )。 stringbuffer buf=new stringbuffer(beijing2008); buf.insert(7,); system.out.println(buf.tostring();a、 beijing2008 b、 beijing2008 c、 beijing2008 d、 beijing#2008 二、程序阅读题1、阅读下面的程序: public class test public static void main(string a) int i = integer.parseint(a0); switch (i) case 1:system.out.println(frist season);break; case 2:system.out.println(second season); case 3:system.out.println(3th season);break; case 4:system.out.println(last season); 上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,用java test 2 运行得到的输出结果是什么?2、阅读下面的程序:1) public class test2) public static void main(string args) 3) int x,y=2,i=0,j=0;4) if(args.length2) system.exit(-1);5) x = integer.parseint(args1);6) switch(x)7) case 2:switch(y)8) case 1:i+;break;9) case 2:j+;break;10) default:i+;j+;11) 12) case 3:i+;j+;break;13) default:i+;j+;14) 15) system.out.println(i=+i);16) system.out.println(j=+j);17) 18) 上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,用java test 1 2 3 运行得到的运行结果是什么?3、阅读下面的程序testmonth.java:public class testmonthpublic static void main(string args)tryint month=integer.parseint(args0);if(month12) throw new arithmeticexception(没有+month+月份!);system.out.println(您输入的月份为+month+月份);catch(arrayindexoutofboundsexception e)system.out.println(请输入月份!);catch(arithmeticexception e)system.out.println(捕获arithmeticexception异常);system.out.println(e.tostring();已知arrayindexoutofboundsexception和arithmeticexception都是java.lang.*下的异常类,编译testmonth.java后,用java testmonth 13的运行结果是什么?4、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。1) class teststring2) public void stringreplace (string text) 3) text = text.replace(j , i); 4) text=text+c;5) 6) public void bufferreplace (stringbuffer text) 7) text.setcharat(0,i);8) text = text.append(c); 9) 10) public void change(char ch)11) ch0= y;12) 13) public static void main(string args)14) string str1=java;15) stringbuffer str2=new stringbuffer(java);16) char ch=j,a,v,a; 17) teststring t=new teststring(); 18) t.change(ch);19) t.stringreplace (str1); 20) t.bufferreplace (str2); 21) system.out.println(str1); 22) system.out.println(str2.tostring(); 23) system.out.println (new string(ch); 24) 25) 5、阅读下面的程序代码,判断1827行(带划线部分)各语句编译是否通过,如果编译通过,直接写出该行的打印结果。1. class teststring2. public static string stringreplace (string text) 3. text = text.replace(j , i); 4. text=text+c;5. return text; 6. 7. public static stringbuffer bufferreplace (stringbuffer text) 8. text.setcharat(0,i);9. text = text.append(c); 10. return text;11. 12. public static void main(string args)13. string str1=java;14. string str2=java;15. string str3=j+a+v+a;16. string str4=new string(java);17. stringbuffer str5=new stringbuffer(java);18. system.out.println(str1= =str2); 19. system.out.println(str2= =str3); 20. system.out.println(str2= =str4); 21. system.out.println(str4= =str5); 22. system.out.println(str3.equals(str4); 23. system.out.println(str4.equals(str5); 24. system.out.println (stringreplace (str1); 25. system.out.println(bufferreplace (str5); 26. system.out.println (str1); 27. system.out.println(str5); 28. 29. 6、阅读下面的程序,修改程序中编译错误的地方(提示:共五处错误)interface shape double pi; public double area( ); public double perimeter( ); class cycle extends shape private double r; public cycle(double r) this.r=r; double area( ) system.out.println(pi*r*r); public class test public static void main(string args) cycle c=new cycle(1.5); system.out.println(面积为:+c.area(); 三、简答题1、对于string对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?解析:string类型是实际工作中经常使用到的类型,从数据类型上划分,string是一个引用类型,是api中定义的一个类。所以string类型的对象可以使用new创建,例如string name=new string(“etc”);为变量name进行赋值,值为“etc”。然而,string类比起其他类有些特殊,可以使用“=”直接赋值,如string name=“etc”,也是为变量name进行赋值,值为“etc”。这两种赋值方式是有差别的,使用new赋值,永远都是创建一个新对象,在新的内存空间初始化了字符串的值;而使用“=”赋值,不会每次都初始化新的字符串,而是从一个“字符串实例池”中去查找有没有要赋值的字符串,如有则直接引用;如不存在,则初始化一个字符串,并放入“字符串实例池”。在实际编程中,往往使用“=”好对string类型变量进行赋值。 参考答案:使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串。使用new进行赋值,则每次都创建一个新的字符串。2、什么叫引用类型,引用类型和基本数据类型有什么区别?解析:初级程序员常常对float和float或者double和double感到混淆。在java语言中,有八中基本数据类型,即byte、int、long、float、double、char、boolean。对应这八种基本数据类型,api中定义了八个类,能把这些基本类型转换成引用类型,分别是byte、short、int、long、double、character、boolean。这八个类被统称为包装器类。jdk5之后,包装器类和基本数据类型之间可以直接转换,称为自动的装箱拆箱(boxing/unboxing)。例如integer it=3;it+;虽然写法上可以像使用基本数据类型一样使用包装器类型,但是本质上依*行了类似 it= new integer(3)的转换,因此,不要轻易使用包装器类的自动装箱拆箱,以优化的性能。能够使用基本类型就使用基本类型。参考答案:包装类器包括byte、short、integer、long、float、double、character、boolean等类,主要用来对byte、short、integer、long、float、double、character、boolean这八种基本数据类型进行包装,使其称为引用类型。3、string类和stringbuffer类有什么区别?解析:初级程序员常常对float和float或者double和double感到混淆。在java语言中,有八中基本数据类型,即byte、int、long、float、double、char、boolean。对应这八种基本数据类型,api中定义了八个类,能把这些基本类型转换成引用类型,分别是byte、short、int、long、double、character、boolean。这八个类被统称为包装器类。jdk5之后,包装器类和基本数据类型之间可以直接转换,称为自动的装箱拆箱(boxing/unboxing)。例如integer it=3;it+;虽然写法上可以像使用基本数据类型一样使用包装器类型,但是本质上依*行了类似 it= new integer(3)的转换,因此,不要轻易使用包装器类的自动装箱拆箱,以优化的性能。能够使用基本类型就使用基本类型。参考答案:包装类器包括byte、short、integer、long、float、double、character、boolean等类,主要用来对byte、short、integer、long、float、double、character、boolean这八种基本数据类型进行包装,使其称为引用类型。4、包装器类型包括哪些类,有什么作用?解析:初级程序员常常对float和float或者double和double感到混淆。在java语言中,有八中基本数据类型,即byte、int、long、float、double、char、boolean。对应这八种基本数据类型,api中定义了八个类,能把这些基本类型转换成引用类型,分别是byte、short、int、long、double、character、boolean。这八个类被统称为包装器类。jdk5之后,包装器类和基本数据类型之间可以直接转换,称为自动的装箱拆箱(boxing/unboxing)。例如integer it=3;it+;虽然写法上可以像使用基本数据类型一样使用包装器类型,但是本质上依*行了类似 it= new integer(3)的转换,因此,不要轻易使用包装器类的自动装箱拆箱,以优化的性能。能够使用基本类型就使用基本类型。参考答案:包装类器包括byte、short、integer、long、float、double、character、boolean等类,主要用来对byte、short、integer、long、float、double、character、boolean这八种基本数据类型进行包装,使其称为引用类型。5、使用代码,创建一个长度为5的string型数组,并使用增强for循环迭代数组打印出数组中的元素。解析:增强for循环是jdk5增加的特性,可以方便地遍历数组或集合。程序员需要了解的是,如果jdk版本低于5.0,则不支持这个功能。另外,并不是说有了增强for循环后,传统的for循环就不被使用,增强for循环只能用来方便地遍历数组和集合,其他情况下还要使用传统的for循环。参考答案: string sarray = new string5;for(string s:sarray) system.out.println(s);6、object类有什么特点?解析:object类是一个非常重要的类,是所有类的父类,包括数组在内,也就是对一个java类,不管是api中定义的,还是自定义的类,都直接或间接的继承了object类。所以,如果有一个方法f(object o),那么可以传递给这个方法任意一个类的对象,包括%。因为所有对象都可以说是object类型。参考答案:object类是多有类的直接或间接的父类。7、object类中的equals方法和hashcode 方法。解析:在object类中,equals方法比较对象的引用值,也就是只有物理上是同一对象的两个引用,在使用equals方法返回true。hashcode方法返回一个对象的内在地址的十六进制值。由于object类是所有类的父类,所以任意类中都拥有这两个方法,并都可以进行覆盖。尤其是操作set,map对象时集合元素类的equals方法和hashcode方法非常必要,因为set和map判断元素是否重%是依靠这两个方法进行。一般的原则是:如果存在x和y两个对象,调用x.equals(y)相同时,那么调用hashcode方法返回值也应该相同;如果x.equals(y)返回false时,那么调用hashcode方法返回值可能相同,也可能不同。值得注意的是,只要你覆盖了equals方法,一定%则覆盖hashcode 方法。在实际工作中,很多ide环境都支持覆盖equals和hashcode 方法。参考答案:oject类中的equals方法用来比较两个引用值,hashcode用来返回引用的内地址的十六进制数值。在set以及map集合中,判断两个元素是否重复时,往往需要使用这两个方法。这两个方法往往被子类覆盖,覆盖的规则是:如果存在x和y两个对象,调用x.equals(y)返回true时,那么调用hashcode方法的返回值也该相同;如果x.equals(y)返回false时,那么调用hashcode方法返回的值可能相同,也可能不同。8、请画出java集合框架的主要接口和类的继承关系。解析:集合是非常重要的类型, 也是企业考察员工编程能力时常常关注的知识点。程序员应该熟悉java集合框架的主要继承关系, 掌握常用集合类的用法和特点9、collection接口和map接口分别定义了什么集合类型?有什么区别?10、date和calender类有什么区别和联系?解析:应用开发中经常需要对日期进行处理。java语言中与日期有关的类包括date和calender,程序员应该熟悉这两个类。参考答案:date类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返回进行显示或处理,calender类中就定义了这样一系列方法。往往可以先创建一个date实例,然后通过calender中的settime方法将该实例关联到calender,接下来就可以使用calender中的方法处理date实例中的信息。11、dateformart类有什么作用?用简单代码展示其使用方法解析:dateformat类是和日期格式相关的类,当需要将日期按照一定格式显示时,应该考虑使用dateformat类,程序员对这样常用的类都应该熟练使用。参考答案:dateformat是一个用来对日期和时间类型进行格式转换的类,该类是一个抽象类,定义了日期时间格式化的通用方法。例如:dateformat format1=dateformat.getinstance();system.out.println(format1.format(new date();12.simpledateformat类有什么作用? 用简单代码展示其使用方法。解析:simpledateformat类是dateformat类的子类,能够灵活定义日期显示格式,对于程序员来说,想要能够灵活定义日期格式,必须熟悉api中定义的字符模式。 参考答案:simpledateformat类是dateformat类的子类,可以非常灵活地定义日期显示格式,例如:simpledateformat sdf1=new simpledateformat(“yyyy年mm月dd日hh时mm分ss秒ee”,locale.china); system.out.println(sdf1.format(new date();13、什么是自动装箱拆箱?使用该特征有哪些注意事项?解析:自动装箱拆箱指的是八个包装器类与八个基本类型的转换问题。然而。这个特征却需要谨慎使用,因为虽然表面上看起来非常方便,而实质上依然需要创建对象、进行转换等操作,使用不恰当会降低性能。参考答案:自动装箱指的是可以直接将基本数据类型转换为包装器类型,自动拆箱指的是可以直接将包装器类型转换为基本数据类型,如下代码所示:int m=100;integer im=m;int n=im;上诉代码中,直接将m赋值给包装器对象im,这就是自动装箱,然后直接将im赋值给基本数据类型n,这就是自动拆箱。虽然表面上看代码简洁方便,然而本质上装箱时候依然使用new创建了对象,而拆箱时也依然调用了方法进行运算。因此,不要在没有必要的时候,频繁使用装箱拆箱,会降低性能。 14、int 和 integer 有什么区别?答:java 提供两种不同的类型:引用类型和原始类型(或内置类型)。int 是 java 的原始数据类型,integer是java 为int提供的封装类。java为每个原始类型提供了封装类。原始类型封装类,booleanboolean,charcharacter,bytebyte,shortshort,intinteger,longlong,floatfloat,doubledouble引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关四、编程题1、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如我abc4,应该截为我ab,输入我abc汉def,6,应该输出为我abc而不是我abc+汉的半个。答:代码如下:packagetest;classsplitstring

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论