中软国际的Java程序员笔试的题目_第1页
中软国际的Java程序员笔试的题目_第2页
中软国际的Java程序员笔试的题目_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、中软国际Java程序员笔试题1、谈谈 final , finally , finalize的区别。final :修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。finally :在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,

2、然后控制就会进入finally块(如果有的话)。finalize :方法名。Java技术允许使用finalize。方法在垃圾收集器将对象从存中清除出去之前做必 要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize。方法以整理系统资源或者执行其他清理工作。 finalize。 方法是在垃圾收集器删除对象之前对这个对象调用的。2、 Anonymous Inner Class (匿名部类)是否可以extends( 继承)其它类,是否可以 implements( 实现)interface( 接口)

3、?匿名的部类是没有名字的部类。不能继承其它类,但一个部类可以作为一个接口,由另一个部类实现。3、Static Nested Class 和Inner Class 的不同,说得越多越好(面试题有的很笼统)。Static nested class (嵌套类)是将部类声明为 static。普通部类对象隐式地保存了一个引用,指向创 建它的外围类对象,不能有 static数据和static字段。嵌套类意味着:1要创建嵌套类的对象,并不需 要其外围类的对象;2不能从嵌套类的对象中访问非静态的外围类的对象。4、&和&&的区别。&是两个数相与,是位运算符&&是布

4、尔逻辑运算符,连接两个条件表达式的,两个条件表达式都为真时,整个才为真5、HashMap 和 Hashtable 的区别。都属于Map接口的类,实现了将惟一键映射到特定的值上。HashMap 类没有分类或者排序。它允许一个 null键和多个 null值。Hashtable 类似于 HashMap,但是不允许 null键和 null值。它也比 HashMap 慢,因为它是同步的,是线程安全的。6、Collection 和 Collections 的区别。Collections 是个java.util下的类,它包含有各种有关集合操作的静态方法。Collection 是个java.util下的接口,

5、它是各种集合结构的父接口。7、List, Set, Map 是否继承自 Collection 接口?List, Set 是 Map 不是8、ArrayList 和 Vector 的区别。1同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的2数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半9、什么时候用assert。assertion断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中, assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序

6、必须保证这个boolean表达式的值为true ;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或 退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。10、 GC是什么?为什么要有 GC ?GC是垃圾收集器。Java程序员不用担心存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:1. System.gc()2.3. Runtime.getRuntime().gc()11、String s = new String(&q

7、uot;xyz");创建了几个 String Object ?两个对象,一个是“ xyx ”,一个是指向“ xyx ”的引用对象s12、.Math.round(11.5)等於多少?Math.round(-11.5) 等於多少?Math.round(11.5) 返回(long )12,Math.round(-11.5) 返回(long) -11 ;因为返回最接近参数的long。通过加上1/2将该结果舍入为整数,取结果的基数并将其强制转换为long类型。换句话说,结果等于以下表达式的值:(long)Math.floor(a + 0.5d)13、 short si = 1; si = si

8、 + 1;有什么错?short si = 1; si += 1 ;有什么错?short si = 1 ; si = si + 1 ;错,short si = 1 ; si += 1 ;对。对于 short si = 1 ; si = si + 1 ;由于si+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型si时,编译器将报告需要强制转换类型的错误。对于short si = 1; si += 1 ;由于+=是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。14、sleep() 和 wait() 有什么区别?sleep是线程类(Thread

9、 )的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发岀notify方法(或notifyAll )后本线程才进入对象锁定池准备获得对象锁进入运行状态。15、数组有没有length()这个方法? String 有没有length()这个方法?数组没有length()这个方法,有length 的属性。String有有length()这个方法。16、是否可以继承 String 类?String类是fin

10、al类故不可以继承。17、 Overload 和Override 的区别。Overloaded的方法是否可以改变返回值的类型?overload 一般翻译为重载,表示多个函数共用同一个函数名,为了保证调用这些同名函数时能正确区分究竟应该调用的是其中的哪一个,重载的各个函数的参数表(不考虑形参名)必须彼此不同,通常简略 地说成“不同参数表”。它对返回值的类型没有任何要求,所以你可以随意为每一个重载的函数设置返回 类型,相同也行,不同也行。override 一般翻译为覆盖,表示子类对从父类继承来的虚函数重新定义,它要求参数表必须跟父类中 被覆盖的那个函数的参数表完全相同,返回值类型原则上也要求相同,

11、但如果返回类型是父类的指针或者 父类的引用,覆盖时返回类型允许是子类的指针或者子类的引用。18、 Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用=还是equals() ?它 们有何区别?Set是Collection容器的一个子接口,它不允许出现重复元素,当然也只允许有一个null对象。equals() 区分更合适。为什么用equals()而不用=来区分?应该从它俩的区别谈起,=是用来判断两者是否是同一对象(同一事物),而 equals是用来判断是否引用同一个对象。再看一下Set里面存的是对象,还是对象的引用。根据java的存储机制可知,set里面存放的是对象的引用,所以当两个

12、元素只要满足了equals()时就已经指向同一个对象,也就出现了重复元素。所以应该用equals()来判断。19、给我一个你最常见到的runtime exception 。ArithmeticException, ArrayStoreException, BufferOverflowException,BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException,CMMException, ConcurrentModificationException, DOMException,

13、EmptyStackException, lllegalArgumentException, lllegalMonitorStateException, lllegalPathStateException,IllegalStateException,ImagingOpException, IndexOutOfBoundsException, MissingResourceException,NegativeArraySizeException, NoSuchElementException, NullPointerException,ProfileDataException, Provider

14、Exception, RasterFORMatException, SecurityException,SystemException, UndeclaredThrowableException, UnmodifiableSetException,UnsupportedOperationException20、error 和 exception有什么区另U?Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的部错误或者硬件问题,比如,存资源不足等,对于这种错误,程序基本无能为力,除了退岀运行外别无选择。Exception(违例)表示需要捕捉或者需要程序进行处理的异常,

15、它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。21、abstract class 和 interface有什么区另U?1相同点A. 两者都是抽象类,都不能实例化。B. interface 实现类及abstrct class 的子类都必须要实现已经声明的抽象方法。2不同点A. interface 需要实现,要用 implements ,而 abstract class 需要继承,要用 extends。B. 一个类可以实现多个 interface,但一个类只能继承一个abstract class 。C. interface 强调特定功能的实现,而abs

16、tract class 强调所属关系。D. 尽管interface实现类及abstrct class的子类都必须要实现相应的抽象方法,但实现的形式不同。interface中的每一个方法都是抽象方法,都只是声明的(declaration ,没有方法体),实现类必须要实现。而abstract class 的子类可以有选择地实现。这个选择有两点含义:一是Abastract class中并非所有的方法都是抽象的,只有那些冠有abstract的方法才是抽象的,子类必须实现。那些没有 abstract的方法,在 Abstrct class中必须定义方法体。二是abstract class的子类在继承它时,

17、对非抽象方法既可以直接继承,也可以覆盖;而对抽象方法, 可以选择实现,也可以通过再次声明其方法为抽象的方式,无需实现,留给其子类来实现,但此类必须也 声明为抽象类。既是抽象类,当然也不能实例化。E. abstract class 是 interface 与 Class 的中介。interface是完全抽象的,只能声明方法,而且只能声明pulic的方法,不能声明private及protected 的方法,不能定义方法体,也不能声明实例变量。然而,interface却可以声明常量变量,并且在JDK中不难找出这种例子。但将常量变量放在interface中违背了其作为接口的作用而存在的宗旨,也混淆了i

18、nterface 与类的不同价值。如果的确需要,可以将其放在相应的abstract class 或Class中。abstract class 在interface 及Class中起到了承上启下的作用。一方面,abstract class 是抽象的,可以声明抽象方法,以规子类必须实现的功能;另一方面,它又可以定义缺省的方法体,供子类直接使用 或覆盖。另外,它还可以定义自己的实例变量,以供子类通过继承来使用。3> interface的应用场合A. 类与类之前需要特定的接口进行协调,而不在乎其如何实现。B. 作为能够实现特定功能的标识存在,也可以是什么接口方法都没有的纯粹标识。C. 需要将一组

19、类视为单一的类,而调用者只通过接口来与这组类发生联系。D. 需要实现特定的多项功能,而这些功能之间可能完全没有任何联系。4> abstract class 的应用场合一句话,在既需要统一的接口,又需要实例变量或缺省的方法的情况下,就可以使用它。最常见的有:A.定义了一组接口,但又不想强迫每个实现类都必须实现所有的接口。可以用abstract class 定义一组方法体,甚至可以是空方法体,然后由子类选择自己所感兴趣的方法来覆盖。B. 某些场合下,只靠纯粹的接口不能满足类与类之间的协调,还必需类中表示状态的变量来区别不同 的关系。abstract的中介作用可以很好地满足这一点。C. 规了一组相互协调的方法,其中一些方法是共同的,与状态无关的,可以共享的,无需子类分别实 现;而另一些方法却需要各个子类根据自己特定的状态来实现特定的功能22、 接口是否可继承接口?抽象类是否可实现(implements) 接口?抽象类是否可继承实体类(concrete class) ?接口可以继承接口。抽象类可以实现 (implements)接口。抽象类是否可继承实体类,但前提是实体类 必须有明确的构造函数。23、构造器 Constructor 是否可被 override ?构造器Constructor 不能被继承,因此不能重写Overriding ,但可以被重载Overloading

温馨提示

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

最新文档

评论

0/150

提交评论