




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
有价值的java面试题(nit-pro) 2010-06-26 08:05:51| 分类: Java SE | 标签: |字号大中小 订阅 一、选择题:(每题2分)1. 名为HelloWorld.java的Java应用程序如下:public class HelloWorld public static void main(String args) System.out.println(Hello World!); 将这个程序放在C:Test下,然后在命令行窗口中,进入到C:Test路径执行如下指令:javac helloworld.java将得到( )结果。A. 编译出错。B. 编译成功,生成名为HelloWorld.class的文件。C. 编译成功,生成名为helloworld.class的文件。D. 找不到名为helloworld.java的文件。答案: D。在JAVA中是严格区分大小写的2. 下面的程序名为Student.java:public class Studentprivate String name;public Student(String s_name) /1name = s_name; /2public static void main(String args)Student s = new Student(); /3使用如下指令编译:javac Student.java。将会得到的结果( )。A. 将会顺利通过编译,并将产生一个Student.class的类文件。B. 编译时在/3处出错。C. 编译时在/2处出错。D. 编译时在/1处出错。答案:B。因为Student的构造函数是带有参数的构造函数。3. 关于下面的类描述中正确的是( )。class Test / 1void test(int i) / 2System.out.println(I am an int.); / 3 / 4void test(String s) / 5System.out.println(I am astring.); / 6 / 7/ 8public static void main(String args) / 9Test t=newTest(); / 10charch=y; / 11t.test(ch); / 12 / 13 / 14A. 编译出错B. 编译通过,运行出错C. 编译通过,运行时输出“I am an int”D. 编译通过,运行时输出“I am a string”答案:C。字符在ASCii码中是以整数形式存在的。4. 关于下述程序:public class Test3 public static void main(String agrs) byte b = 2,e =3; /1byte f = b+e; /2System.out.println(f); /3描述正确的是( )。A. 编译通过,运行时打印出5。B. 编译通过,运行时打印出23。C. 编译不通过,在/2处有错误,因为此处f必须是一个int类型的变量。D. 编译不通过,在/1处有错误,不能这样定义变量答案:C5. 在Java中,关于让垃圾回收器强制回收对象的说法中,正确的是( )。A垃圾回收不能强制B. 调用System.gc()方法C. 调用System.gc()方法,并且将需要回收的对象引用作为参数传递给这个方法D. 调用Runtime.gc()方法答案:B6. 关于下述程序:public class Test4public static void main(String agrs)double x = 1.234; /1double y = 2; /2System.out.println(+x+y); /3System.out.println(x+y+); /4描述正确的是( )。A. 编译出错。B. 编译通过,执行的时候在/2处报错。C. 编译通过,执行时在/3处打印出3.234,在/4处打印出3.234。D. 编译通过,执行时在/3处打印出1.2342.0,在/4处打印出3.234。答案:D7. 将当前目录下的所有文件都压缩到一个test.jar包中,并且将压缩信息显示到控制台上,可以使用下列的( )命令。A. jar vf test.jar ./ B. jar cvf test.jar .C. jar cv test.jar / D. jar cv test.jar .答案:B8. 下述程序:public class Test9static int i = 1;statici+;public Test9()i+;public static void main(String args)Test9 t1 = new Test9();System.out.println(t1.i); /1Test9 t2 = new Test9();System.out.println(t2.i); /2编译运行后在/1和/2处分别打印出()。A. 2和2 B. 3和3 C. 3和4 D. 4和3答案:C9. 关于下述三个接口:public interface IA public void methodA();public interface IB public void methodB();public interface IC extends IA,IBpublic void methodA();正确的是()。A. 接口IC不能通过编译,因为它继承了两个接口。B. 接口IC不能通过编译,因为它定义了一个和IA中一样的方法methodA()。C. 接口IC不能通过编译,因为它继承了两个接口,并且还定义了一个和IA一样的methodA()方法。D. 接口IC能够顺利通过编译。答案:D10. 下述语句执行结果为( )。int arr = new int10;A. arr0 是0 B. arr9 是0 C. arr10是0 D. arr0 是null答案:A。对象数组保存的是引用,基本类型数组保存的是基本类型的值11. 关于break和continue语句,下面说法错误的有( )。A. break只能用于循环语句中。B. continue只能用于循环语句中。C. 在循环语句中,break语句将终止循环;而continue是略过当前循环中剩余的语句进入下一次循环。D. 在循环语句中,continue语句将终止循环;而break是略过当前循环中剩余的语句进入下一次循环。答案:C12. 下面标识符合法的有( )A. IAMAClass B. $byte C. const D. _year答案:D。 标识符只能是字母和下划线开头。13. 关于垃圾收集的哪些叙述是对的?A. 程序开发者必须自己创建一个线程进行内存释放的工作。B. 垃圾收集将检查并释放不再使用的内存。C. 垃圾收集允许程序开发者明确指定并立即释放该内存。D. 垃圾收集能够在期望的时间释放被java对象使用的内存。答案:B14. 下面的程序的输出结果是:( )class SuperClass static System.out.println(SuperClass);SuperClass() System.out.println(SuperClass();public static void main(String args) SubClass sc = new SubClass();class SubClass extends SuperClass static System.out.println(SubClass);SubClass() System.out.println(SubClass();A. SuperClass/SubClass/SuperClass()/SubClass()/B. SuperClass/SuperClass()/SubClass /SubClass()/C. SubClass / SuperClass /SubClass()/SuperClass()/D. SubClass/SubClass()/SuperClass / SuperClass()/答案:A15. 下面程序的运行结果是:( )class SuperClass public void f() System.out.print(SuperClass.f()/);class SubClass extends SuperClass public void f() System.out.print(SubClass.f()/);class ThirdClass public void g(SuperClass arg) System.out.print(g(SuperClass)/);arg.f();public void g(SubClass arg) System.out.print(g(SubClass)/);arg.f();public static void main(Stringargs) ThirdClass tc = newThirdClass();SuperClass sc = newSubClass();tc.g(sc);A. g(SubClass)/SubClass.f()/ B. g(SuperClass)/SuperClass.f()/C. g(SuperClass)/SubClass.f()/ D. g(SubClass)/SuperClass.f()/答案:A16. 取出字符串String target =IbmSunJavaBeaWeblogicOracle.中的子串“Java”的语句是:( )A. target.substring(5,10); B. target.substring(6,10);C. target.substring(5,9); D. target.substring(6,9);D 17. 下列描述正确的是:( )A. hashCode()返回是对象在内存唯一的标识,对象不同,hashCode()返回值一定不同。B. hashCode()方法可以重写,但重写的逻辑要和equals()保持一致性。C. 语句System.out.println(java=java);打印出的结果为“false”。D. HashSet容器在存放某一类的对象时,改变该类的hashCode()方法可能会影响到HashSet容器的效率答案:B18. 属于Collection容器的方法是:( )A. iterator B. hasNextElement C. toArray D. next答案:D19. 下列三条输出语句输出的结果为:( )System.out.print(Math.floor(156.1)+/);System.out.print(Math.ceil(-166.3)+/);System.out.print(Math.round(-123.5)+/);A. 156.0/-167.0/-124/ B. 157.0/-167.0/-123/C. 157.0/-166.0/-124/ D. 156.0/-166.0/-123/答案: D20. 下面的程序会有编译错误,更正的方法为:( )class OuterClass public void f() String s1 = inner;class InnerClass public voidg() System.out.println(s1);A. 将变量s1声明为static B. 将变量s1声明为publicC. 将变量s1声明为final D. 将内部类InnerClass声明为static答案:C.从内部类中访问局部变量,必须声明为最终类型21. 已有接口定义:package test;public interface Role public void action() throwsjava.io.IOException;下面的类定义不会有编译错误的是:A. package test;public class A implements Role public void action() throws java.io.FileNotFoundException B. package test;public class B implements Role public void action() throws java.io.IOException C. package test;public class C implements Role public void action() ;D. package test;public class D implements Role public void action() throws Exception 答案:D22. 下面程序的输出结果为:import java.io.*;class TestRandomAccessFile public static void main(Stringargs) throws Exception RandomAccessFile file= new RandomAccessFile(temp.dat, rw); file.writeBoolean(true);file.writeInt(100);file.writeInt(12345);file.writeInt(6789);file.seek(5); System.out.println(file.readInt();A. 100 B. 6789 C. 12345 D. 16777216答案:C23. 下面程序输出的结果是:( )class SomeClass implements Comparableprivate int number;private String name;SomeClass(int number, Stringname) = name;this.number = number;public String toString() return name + number;public int compareTo(Object obj)SomeClass sc =(SomeClass) obj;int f =pareTo();int f1 = number sc.number ? 1 : number = sc.number ? 0 : -1;return f != 0 ? f :f1;public static void main(String args) SomeClass array = new SomeClass(10, Java), new SomeClass(9, Java), new SomeClass(10, J2EE);java.util.Arrays.sort(array);for(int i =0;i System.out.print(array+/);A. J2EE10/Java9/Java10/ B. Java9/J2EE10/Java10/C. Java10/Java9/J2EE10/ D. J2EE10/Java10/Java9/答案:A24. 下面的程序输出的结果为:public class Test public static void main(String args) StringBuffer buffer =new StringBuffer();int value = 18;do int temp= value & 0x07; buffer.append(temp); while(value=3)!=0); System.out.println(buffer.reverse();A. 24 B. 23 C. 25 D. 22答案:D。0x7是十六进制写法,其最后3位为1(00000111),所以将18(00010010)与0x7作安位与后变为00000010(即十进制数字2),temp变为2,然后循环执行两次buffer.append(temp)后,buffer就变为了22,buffer.reverse()是数组反转,22反转之后还是22所以最后输出为22二、简答题:(每题4分)1. 简述单子模式的思路,并且写出一种实现方案:所谓单子模式就是在整个应用过程中只向外界提供唯一的一份实例,也就是说在应用时只有一个实例,这样也就不用反反复复的创建实例了。那么根据他的要求,看下面一个最简单的单子模式的代码:public class Singleton private static Singleton single = new Singleton(); private Singleton() public static Singleton getSingletonInstance() return single; 通过这段代码,我们发现要想实现这个Singleton类的实例,就必须要通过构造函数,但是他的构造函数是private的,所以无法在别的类中实现他的实例化,但是可以通过getSingletonInstance方法,能返回一个实例single,因为他是public的静态函数,可以被别的类调用。这就是一个简单单子模式。当然也可以把构造single的语句放在getSingletonInstance方法中去实现。总结一下单子模式的特点:1. 构造方法是private修饰的。2. 有一个private的静态应用实例。3. 有一个静态的public的方法返回该类的实例。其实这三个特点完全是由于单子模式的要求所决定的。2. 写出private、public、protected以及Default各自的访问范围:3. 用简短的语言解释下列词汇a) JVM JVM:Java虚拟机(Java Virtual Machine),它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的,Java虚拟机有自己完善的硬件架构,器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。b) 垃圾回收机制c) 多态多态,就是重载和重写.重载发生在一个类中.重写发生在子类,意思就是子类重写父类相同名称的方法.重载的特性,方法名相同.返回类型,传入方法的参数不同(包括个数和类型). 重写的特性,方法名相同,返回类型,参数均相同,必须发生在子类.d) 动态绑定运行时绑定也叫动态绑定,它是一种调用对象方法的机制。Java调用对象方法时,一般采用运行时绑定机制。 1Java的方法调用过程 编译器查看对象的声明类型和方法名(对象变量的声明类型)。通过声明类型找到方法列表。 编译器查看调用方法时提供的参数类型。 如果方法是private、static、final或者构造器,编译器就可以确定调用那个方法。这是静态绑定。 如果不是上述情况,就要使用运行时(动态)绑定。在程序运行时,采用动态绑定意味着:虚拟机将调用对象实际类型所限定的方法。 2运行时(动态)绑定的过程 虚拟机提取对象的实际类型的方法表; 虚拟机搜索方法签名; 调用方法。 注意,这里说的是对象的实际类型。即在多态的情况下,虚拟机可以找到所运行对象的真正类型。 e) 关键字synchronized 1)synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。如果再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。2)无论synchronized关键字加在方法上还是对象上,它取得的锁都是对象,而不是把一段代码或函数当作锁而且同步方法很可能还会被其他线程的对象访问。3)每个对象只有一个锁(lock)与之相关联。4)实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制。三、编程题(每题8分)1. 写一个类,当该类的实例创建时即启动一个线程,按照指定格式每隔5秒循环打印出当前的时间(提示:使用Runnable接口或内部类创建线程,格式化日期使用java.text.SimpleDateFormat),指定的日期格式为:年月日 点分秒。package com.pool.domino;import java.text.SimpleDateFormat;import java.util.Date;public class ThreadState public static void main(String args) Test tr = new Test();Thread t = new Thread(tr);t.start(); class Test implements Runnablepublic void run() for(;)try Thread.sleep(5000);SimpleDateFormat my = new SimpleDateFormat(yyyy年MM月dd日 HH点mm分ss秒);Date now = new Date();System.out.println(my.format(now); catch (Interru
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临川三中初二数学试卷
- 南京市初三二模数学试卷
- 加强黑土地保护利用和退化耕地治理的策略及实施路径
- 标准厂房材料采购与管理方案
- 建筑通风空调设计方案
- 青山2024期中数学试卷
- 隧道特殊地质条件施工方案
- 城市环境污染监测系统
- 财政税收政策对企业融资行为的影响研究
- 城中村建筑外立面改造方案
- 上海金山区卫生系统招聘考试(护理学专业知识)题含答案2024年
- 助理工程师考试试题以及答案
- 送东阳马生序
- 2017年全国大学生数学建模A题
- 2023年专升本计算机题库含答案专升本计算机真题
- GB/T 1685-2008硫化橡胶或热塑性橡胶在常温和高温下压缩应力松弛的测定
- GB/T 16674.1-2016六角法兰面螺栓小系列
- 固定资产清查工作报告
- 住宅项目景观工程施工策划(图文并茂)
- 怀念汪世清先生
- 干细胞治疗骨关节炎课件
评论
0/150
提交评论