Java最新面试题及答案总结.doc_第1页
Java最新面试题及答案总结.doc_第2页
Java最新面试题及答案总结.doc_第3页
Java最新面试题及答案总结.doc_第4页
Java最新面试题及答案总结.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

Java语言程序设计(试卷总分:100分,考试时间:120分钟,答案写在答卷纸上)一判断题(每题1分,共10分)1、Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定。 (F )2、所有的鼠标事件都由MouseListener监听接口的监听者来处理。 (F ) 3、Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 (T )4、如果p是父类Parent的对象,而c是子类Child的对象,则语句p=c是正确的。 (T )5、Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 (F )6、由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。 ( F )7、静态初始化器是在其所属的类加载内存时由系统自动调用执行。 ( T )8、Applet是一种特殊的Panel,它是JavaApplet程序的最外层容器。 (T )9、注释的作用是使程序在执行时在屏幕上显示/之后的内容。 ( F )10、一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。 ( T)二单项选择题(每题2分,共30分)1在浏览器中执行applet程序,以下选项中的哪个方法将被最先执行(A)。A、init()B、start()C、destroy()D、stop()2Javaapplication中的主类需包含main方法,main方法的返回类型是什么?( D)A、intB、floatC、doubleD、void3有以下方法的定义,请选择该方法的返回类型(D)。ReturnTypemethod(bytex,doubley)return(short)x/y*2;A、byteB、shortC、intD、double4下列哪些语句关于Java内存回收的说明是正确的?(B)A、程序员必须创建一个线程来释放内存B、内存回收程序负责释放无用内存C、内存回收程序允许程序员直接释放内存D、内存回收程序可以在指定的时间释放内存对象5以下哪个关键字可以用来对对象加互斥锁?(B)A、transientB、synchronizedC、serializeD、static6在编写JavaApplet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(B )语句。A、importjava.awt.*;B、importjava.applet.*;C、importjava.io.*;D、importjava.awt.event.*;7容器Panel和Applet缺省使用的布局编辑策略是(B)A、BorderLayoutB、FlowLayoutC、GridLayoutD、CardLayout8设有下面两个赋值语句:a=Integer.parseInt(“123”);b=Integer.valueOf(“123”).intValue();下述说法正确的是(D)。A、a是整数类型变量,b是整数类对象。B、a是整数类对象,b是整数类型变量。C、a和b都是整数类对象并且值相等。D、a和b都是整数类型变量并且值相等。9以下程序段执行后将有(C)个字节被写入到文件afile中。tryFileOutputStreamfos=newFileOutputStream(“afile.txt”);DataOutputStreamdos=newDataOutputStream(fos);dos.writeInt(3);dos.writeDouble(0.01);dos.writeInt(6);dos.close();fos.close();catch(IOExceptione)A、2B、8C、12D、1610编译并运行以下程序,以下描述哪个选项是正确的(C)。(1).classA(2).protectedStringtoString()(3).returnsuper.toString();(4).A、编译通过运行无异常B、编译通过但运行时出错C、行(2)出错,不能成功编译D、不能成功编译,行(3)出错11有以下程序片段,下列哪个选项不能插入到行(1)。(D)(1).(2).publicclassInteresting(3)./dosth(4).A、importjava.awt.*;B、packagemypackage;C、classOtherClassD、publicclassMyClass12要使类中的某个成员变量只能被同一个包中的类访问到,该变量可用什么修饰符修饰?(D)A、protectedB、publicC、privateD、应不加修饰符13以下哪个不是Java的关键字?(A )A、TRUEB、constC、superD、void14关于以下application的说明,正确的是(C)。(1)classStaticStuff(2)(3)staticintx;(4)staticx+=5;(5)publicstaticvoidmain(Stringargs)(6)(7)System.out.println(“x=”+x);(8)(9)staticx/=5;(10)A、4行与9行不能通过编译,因为缺少方法名和返回类型B、9行不能通过编译,因为只能有一个静态初始化器C、编译通过,执行结果为:x=1D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化15有程序如下,关于程序的描述哪个是正确的?(C)publicclassPersonstaticinta=newint10;publicstaticvoidmain(Stringa)System.out.println(arr1);A、编译将产生错误B、编译时正确,但运行时将产生错误C、正确,输出0 D、正确,输出null16FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型?( A)A、OutputStreamB、FileC、InputStreamD、BufferedOutputStream17以下关于构造函数的描述错误的是(A)。A、构造函数的返回类型只能是void型。B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。C、构造函数的主要作用是完成对类的对象的初始化工作。D、一般在创建新对象时,系统会自动调用构造函数。18关于以下程序段,正确的说法是( B )。1 String s1=”abc”+”def”;2String s2=new String(s1);3if(s1= =s2)4 System.out.println(“= = succeeded”);5if (s1.equals(s2)6 System.out.println(“.equals() succeeded”);A、程序将输出:= = succeededB、程序将输出: .equals() succeededC、程序将输出:= = succeededD、程序无输出19在使用interface声明一个接口时,只可以使用(D )修饰符修饰该接口。A、privateB、protectedC、privateprotectedD、public20有程序片段如下,以下哪个表示式的结果为true?(B )Floats=newFloat(0.1f);Floatt=newFloat(0.1f);Doubleu=newDouble(0.1);A、s=tB、s.equals(t)C、u.equals(s)D、t.equals(u)三程序阅读题(每题4分,共24分)1以下程序段的输出结果为 。public class ABC public static void main(String args ) int i , j ;int a = 2,1,3,5,4; for ( i = 0 ; i a.length-1; i + ) int k = i; for ( j = i ; j a.length ; j+ ) if ( ajak ) k = j; int temp =ai; ai = ak; ak = temp; for ( i =0 ; ia.length; i+ ) System.out.print(ai+ ); System.out.println( ); 结果:1, 2,3,4,5 。2阅读以下程序:importjava.io.*;publicclassAboutFilepublicstaticvoidmain(Stringargs)BufferedReaderb=newBufferedReader(newInputStreamReader(System.in);Strings;System.out.flush();s=b.readLine();System.out.println(“Stringis:”+s);运行以上程序,若从键盘输入:java则输出结果为Stringis:java。3以下程序段的输出结果为。publicclassCpublicstaticvoidmain(Stringargs) inti,j;inta=5,1,3,9,7;for(i=0;ia.length-1;i+)intk=i;for(j=i;ja.length;j+)if(ajak)k=j;inttemp=ai;ai=ak;ak=temp;for(i=0;ia.length;i+)System.out.print(ai+);System.out.println();结果:1,3,5,7,9 4阅读以下程序,写出输出结果。classAnimalAnimal()System.out.print(Animal);publicclassCatextendsAnimalCat()System.out.print(Cat);publicstaticvoidmain(Stringargs)Catkitty=newCat();结果:Animal Cat5阅读以下程序,输出结果为。importjava.io.*;publicclassATestpublicstaticvoidmain(Stringargs)SubClasssb=newSubClass();System.out.println(sb.funOfMod();classSuperClassinta=10,b=-3;classSubClassextendsSuperClassintfunOfMod()returna%b;结果:16以下程序段的输出结果为。classCrunchervoidcrunch(inti)System.out.print(“int”);voidcrunch(Strings)System.out.print(“String”);publicstaticvoidmain(Stringargs)Crunchercrun=newCruncher();charch=h;inti=12;crun.crunch(ch);System.out.print(“,”);crun.crunch(i);结果:int, int四简答题(每题5分,共10分)101.说说面向对象中的“封装”的概念是什么? 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。2. 请简单说明什么是“依赖注入”?当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。五编程题(必答题,第1题14分,第2题12分,共26分)1题目:请用Java语言实现一个计算器控制台程序,要求输入两个数和运算符号,得到结果。答案一(结果虽然正确,但是不是出题者想要的答案,考评参考意见:设计经验比较少,设计思想比较简单,一年以下编程经验的人员)class Program static void Main(string args) Console.Write(请输入数字A:); string A = Console.ReadLine(); Console.Write(请选择运算符号(+、-、*、/):); string B = Console.ReadLine(); Console.Write(请输入数字B:); string C = Console.ReadLine(); string D = ; if (B = +) D = Convert.ToString(Convert.ToDouble(A) + Convert.ToDouble(C); if (B = -) D = Convert.ToString(Convert.ToDouble(A) - Convert.ToDouble(C); if (B = *) D = Convert.ToString(Convert.ToDouble(A) * Convert.ToDouble(C); if (O = /) D = Convert.ToString(Convert.ToDouble(A) / Convert.ToDouble(C); Console.WriteLine(结果是: + D); 答案二(比较好的答案,考评参考意见:具有一定的编程思想,设计经验比较丰富,2-3年开发人员)/* * 运算类 * * author Administrator */public abstract class Operation private double numberA = 0; private double numberB = 0; /* * 得到运算结果 * * return * throws Exception */double getResult() throws Exception double result = 0; return result; public double getNumberA() return numberA;public void setNumberA(double numberA) this.numberA = numberA;public double getNumberB() return numberB;public void setNumberB(double numberB) this.numberB = numberB; / / 加法类 / public class OperationAdd extends Operation public double getResult() double result = 0; result = getNumberA() + getNumberB(); return result; / / 除法类 / public class OperationDiv extends Operation public double getResult() throws Exception double result = 0; if (getNumberB() = 0) throw new Exception(除数不能为0。); result = getNumberA() / getNumberB(); return result; /* * 乘法类 * * author Administrator */public class OperationMul extends Operation public double getResult() double result = 0; result = getNumberA() * getNumberB(); return result; /* * 减法类 * * author Administrator */public class OperationSub extends Operation public double getResult() double result = 0; result = getNumberA() - getNumberB(); return result; /* * 运算类工厂 * * author Administrator */public class OperationFactory /* * 创建运算符对象 * * param operate运算符 * return 运算符对象 */public static Operation createOperate(String operate) Operation oper = null; if (+.equals(operate) oper = new OperationAdd(); else if (-.equals(operate) oper = new Opera

温馨提示

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

评论

0/150

提交评论