java面试题集面霸必备.docx
- 文档编号:29856535
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:24
- 大小:25.62KB
java面试题集面霸必备.docx
《java面试题集面霸必备.docx》由会员分享,可在线阅读,更多相关《java面试题集面霸必备.docx(24页珍藏版)》请在冰豆网上搜索。
java面试题集面霸必备
Java选择题测试
试题1
指出下面语句没有编译错误的是()。
A.longn=999999999999;
B.intn=999999999999L;
C.longn=999999999999L;
D.doublen=999999999999;
试题2
完成代码计算10的阶乘并输出,应该填入的代码是( )
longresult=1;
for(inti=2;i<=10;i++){
< 填入代码 >
}
System.out.println(“result=”+result);
………
A.result=result*i;
B.result=i*i;
C.result=i*(i+1);
D.reslut=i*(i-1);
试题3
下列关于数组的声明错误的是()
A.int[]arry=newint[100];
B.int[3]arry={1,2,3}
C.int[]arry=newint[]{1,2,3}
D.int[][]arry=newint[3][]
试题4
实现对数组arry的冒泡排序,应填入的代码是()
publicstaticvoidbubbleSort(int[]arry){
intlen=arry.length;
for(inti=1;i booleanasc=true; < 填入代码 > if(asc) return; } } privatestaticvoidswap(int[]arry,inti,intj){ inttemp=arry[i]; arry[i]=arry[j]; arry[j]=temp; } A. for(intj=len-1;j>i;j–){ if(arry[j] swap(arry,j,j–1); asc=false; } } B. for(intj=len–1;j>=i;j–){ if(arry[j] swap(arry,j,j–1); asc=false; } } C. for(intj=len–1;j>=i;j–){ if(arry[j]>arry[j-1]){ swap(arry,j,j–1); asc=false; } } D. for(intj=len–1;j>=i;j–){ if(arry[j] swap(arry,j,j–1); asc=true; } } 试题5 数列1,1,2,3,5,…(从第三项开始每一项是前两项之和) 下面的代码用于求第100项的值,应填入的代码是() intn=100;//项目数 longn1=1,n2=1; for(inti=3;i<=n;i++){ < 填入代码 > } System.out.println(n2); A.n2=n1+n2; B.n2=n1+n2;n1=n2; C.n2=n1–n2;n1=n2–n1; D.n2=n1+n2;n1=n2–n1; 试题6 语句System.out.println(1+2+”java”+3+4)输出的结果是()。 A.3java34 B.12java34 C.3java7 D.12java7 试题7 下面程序的输出结果是: () publicstaticvoidmain(String[]args){ intd=325; intsum=0; while(d>0){ intn=d%10; sum+=n; d/=10; } System.out.println(sum); } A.10 B.12 C.5 D.32 试题8 下面的程序没有编译错误的是: () A. publicclassMain{ publicstaticvoidmain(String[]args){ byteb1=1; byteb2=2; byteb=b1+b2; } } B. publicclassMain{ publicstaticvoidmain(String[]args){ intn; for(inti=0;i<10;i++){ n+=i; } } } C. publicclassMain{ publicstaticvoidmain(String[]args){ intn=100; for(;;) { } System.out.println(n); } } D. publicclassMain{ publicstaticvoidmain(String[]args){ intn=100; while(n>0); System.out.println(n); } } 试题9 Java语言中int类型标示整数的最大范围是() A.-2147483647~2147483647 B.-2147483648~2147483647 C.-32767~32767 D.-32768~32767 试题10 Java语言中字符串“学Java”所占的内 空间是 A.6个字节 B.7个字节 C.10个字节 D.11个字节 试题11 下面的代码使用二分法在有序的int类型数组arry查找元素key,如果找到输出元素在数组中的下标 否则输出-1,应该填入的代码是: () publicstaticvoidmain(String[]args){ intkey=16; int[]arry={1,3,5,7,8,10,12,15,16}; intlow=0; inthigh=arry.length–1; while(low<=high){ < 填入代码 > else{ System.out.println(mid); return; } } System.out.println(-1); } A. intmid=(low+high)>>>1; if(arry[mid]>key) low=mid+1; elseif(arry[mid] high=mid–1; B. intmid=(low+high)>>>1; if(arry[mid] low=mid; elseif(arry[mid]>key) high=mid–1; C. intmid=(low+high)>>>1; if(arry[mid] low=mid+1; elseif(arry[mid]>key) high=mid; D. intmid=(low+high)>>>1; if(arry[mid] low=mid+1; elseif(arry[mid]>key) high=mid–1; 试题12 下面的代码试图从26个小写字母中随机抽取5个不重复的字母,并输出到控制台。 其中random(intn)方法用于返回大于等于0且小于n的随机整数。 应填入的代码是: () publicstaticvoidmain(String[]args){ intnum=10; char[]ch={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘i’,‘j’,‘k’, ‘l’,‘m’,‘n’,‘o’,‘p’,‘q’,‘r’,‘s’,‘t’,‘u’,‘v’,‘w’, ‘x’,‘y’,‘z’}; intlen=ch.length; char[]result=newchar[num];//用于存放抽取结果 boolean[]flags=newboolean[len]; < 填入代码> for(inti=0;i System.out.print(result[i]+”“); } } publicstaticintrandom(intn){ Randomr=newRandom(); returnr.nextInt(n); } A. for(inti=0;i intr; do{ r=random(len); }while(! flags[r]); result[i]=ch[r]; flags[i]=false; } B. for(inti=0;i intr; do{ r=random(len); }while(! flags[r]); result[i]=ch[r]; flags[r]=true; } C. for(inti=0;i intr; do{ r=random(len); }while(flags[r]); result[i]=ch[r]; flags[r]=true; } D. for(inti=0;i intr; do{ r=random(len); }while(! flags[r]); result[i]=ch[r]; flags[r]=true; } 试题13 对JDK描述错误的是 () A.运行Java程序只要有JRE环境就可以,不一定需要全部JDK的功能 B.JDK中包括JVM、核心类库、Java开发工具(java,javac)等 C.JDK本身也是平台无关的,不同的操作系统安装的JDK是一样的 D.JDK的全称是JavaDevelopmentKit 试题14 对CLASSPATH描述正确的是() A.设置CLASSPATH用于指示操作系统找到JDK命令,如java或javac B.CLASSPATH设置不对,可能会导致java命令失败,但不会导致javac失败 C.CLASSPATH的设置中可以包含目录路径但不可以包含文件路径 D.java命令可以通过-cp参数指定类路径 试题15 下面代码的输出结果是 () publicclassMain{ publicstaticvoidmain(String[]args){ intn1=1; intn2=2; n1=n1+n2; 3 n2=n1–n2; 1 n1=n1–n2; 2 System.out.println(n1+“,”+n2); } } A.1,2 B.2,1 C.1,3 D.3,2 试题16 下面代码的输出结果是() publicclassMain{ publicstaticvoidmain(String[]args){ intn=100; intm=200; System.out.println(f(n,m)); System.out.println(n); } publicstaticintf(intm,intn){ n=m+n; returnn; } } A.300 300 B. 100 100 C. 300 100 D. 100 300 试题17 下面关于Java语言中方法的说法错误的是() A.方法调用时参数类型必须符合方法的定义 B.参数传递是值传递的方式 C.如果方法没有返回值必须声明返回为void D.如果方法定义为返回void,则方法中不能出现return语句 试题18 下面不属于Java语言特点的是: () A.平台无关 B.面向对象 C.支持指针类型 D.垃圾回收机制 试题19 下面代码的输出结果是() doublemoney=3.0; money-=2.9; System.out.println(money==0.1); A.0.1 B.0.10000000000000009 C.0.099 D.0 试题20 关于数组的说法正确的是 () A.数组类型属于基本类型 B.数组创建后,其的长度可以改变 C.int[]类型的变量可以直接赋值给long[]类型的变量 D.数组的长度必须在创建是指定 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 Java语言提供了八种基本类型: 六种数字类型(四个整数型,两个浮点型) 字节型byte8位短整型short16位整型int32位 长整型long64位单精度float32位双精度double64位 一种字符类型 字符型char8位 还有一种布尔型 布尔型: boolean8位可存储"True"和"false"。 String本身就是一个对象而不是基本数据类型,String的变量名是对String类的引用。 2.字符串的操作: 写一个方法,实现字符串的反转,如: 输入abc,输出cba publicstaticStringreverse(Strings){ intlength=s.length(); StringBufferresult=newStringBuffer(length); for(inti=length-1;i>=0;i--) result.append(s.charAt(i)); returnresult.toString(); } 写一个方法,实现字符串的替换,如: 输入bbbwlirbbb,输出bbbhhtccc。 Strings="bbbwlirbbb"; s.replaceAll("wlirbbb","hhtccc"); 3.数据类型之间的转换 如何将数值型字符转换为数字(Integer,Double) 使用Integer.parseInt()和Double.parseDouble()方法。 如何将数字转换为字符 classmy { inta=12; Labellabel=newLabel(); label.setText(String.valueOf(a)); } 如何取小数点前两位,并四舍五入。 System.out.println("四舍五入取整: (3.856)=" +newBigDecimal(i).setScale(2,BigDecimal.ROUND_HALF_UP)); 4.日期和时间 如何取得年月日,小时分秒 Datedat=newDate(); dat.getYear();dat.getMonth();dat.getDay();dat.getHours();dat.getMinutes();dat.getSeconds(); 如何取得从1970年到现在的毫秒数 longnow=dat.getTime(); 如何获取某个日期是当月的最后一天 DateFormatedf=DateFormate.getInstance();df.Format(dat); 如何格式化日期 DateFormatedf=DateFormate.getInstance(); df.Format(dat); 5.数组和集合 数组与集合的区别: 一: 数组声明了它容纳的元素的类型,而集合不声明。 这是由于集合以object形式来存储它们的元素。 二: 一个数组实例具有固定的大小,不能伸缩。 集合则可根据需要动态改变大小。 三: 数组是一种可读/可写数据结构没有办法创建一个只读数组。 然而可以使用集合提供的ReadOnly方只读方式来使用集合。 该方法将返回一个集合的只读版本。 6.文件和目录(I/O)操作 如何列出某个目录下的所有文件 如何列出某个目录下的所有子目录 判断一个文件或目录是否存在 如何读写文件 importjava.io.BufferedReader; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileReader; importjava.io.FileWriter; importjava.io.IOException; importjava.io.InputStreamReader; importjava.io.PrintWriter; publicclassFileOpreate{ publicstaticvoidmain(String[]args) { FileOpreatefo=newFileOpreate(); try { //文件的写入 /*String[]testStr=newString[50]; for(inti=0;i { testStr[i]="我的测试数据00"+i; } fo.writeFile("D: \\","test.txt",testStr); */ //文件的写入 /*Stringstr="测试"; fo.writeFile("D: \\","test001.txt",str);*/ //创建或者删除文件 /*if(fo.createAndDeleteFile("D: \\","test001.txt")) { fo.createAndDeleteFile("D: \\","test002.txt"); }*/ //创建或者删除文件夹 /*fo.createAndDeleteFolder("D: \\","2009-07-06");*/ //输出一个文件内的文件名称 /*fo.readFolderByFile("D: \\");*/ //判断一个文件是否是空的 /*fo.fileIsNull("D: \\","test002.txt");*/ //读取全部的文件内容 /*fo.readAllFile("D: \\","test.txt");*/ //一行一行读取文件内容 fo.readLineFile("D: \\","test.txt"); } catch(Exceptione) { e.printStackTrace(); } } 7.Java多态的实现(继承、重载、覆盖) 多态可分为: 1)编译多态: 主要是体现在重载,系统在编译时就能确定调用重载函数的哪个版本。 2)运行多态: 主要体现在OO设计的继承性上,子类的对象也是父类的对象,即上溯造型,所以子类对象可以作为父类对象使用,父类的对象变量可以指向子类对象。 因此通过一个父类发出的方法调用可能执行的是方法在父类中的实现,也可能是某个子类中的实现,它是由运行时刻具体的对象类型决定的。 8.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。 Stringstr=newString("字符串".getBytes("GB2312"),"ISO-8859-1"); 9.使用StringBuffer类与String类进行字符串连接时有何区别? JAVA平台提供了两个类: String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。 这个String类提供了数值不可改变的字符串。 而这个StringBuffer类提供的字符串进行修改。 当你知道字符数据要改变的时候你就可以使用StringBuffer。 典型地,你可以使用StringBuffers来动态构造字符数据。 10.谈谈final,finally,finalize的区别。 final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 finally是异常处理语句结构的一部分,表示总是执行。 finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 11.Strings=newString("xyz");创建了几个StringObject? 两个,一个是strings,另一个是”xyz”。 12.Java有没有goto? goto是java中的保留字,现在没有在java中使用。 13.数组有没有length()这个方法? String有没有length()这个方法? 数组没有length()这个方法,有length的属性。 String有length()这个方法。 14.Overload和Override的区别。 override(重写) 1)方法名、参数、返回值相同。 2)子类方法不能缩小父类方法的访问权限。 3)子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。 4)存在于父类和子类之间。 5)方法被定义为final不能被重写。 overload(重载) 1)参数类型、个数、顺序至少有一个不相同。 2)不能重载只有返回值不同的方法名。 3)存在于父类和子类、同类中。 15.abstractclass和interface有什么区别? Interface只能有成员常量,只能是方法的声明; 而abstractclass可以有成员变量,可以声明普通方法和抽象方法。 声明方法的存在而不去实现它的类被叫做抽象类(abstractclass),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。 不能创建abstract类的实例。 然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。 不能有抽象构造函数或抽象静态方法。 Abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 试题 集面霸 必备