JAVA笔试题目及JAVA常考知识点总结.doc

发布时间 : 星期六 文章JAVA笔试题目及JAVA常考知识点总结.doc更新完毕开始阅读

后者正确.

11. java种有没有goto?

有,为保留字.但是尚未使用.

12.Overload和Override的区别。Overloaded的方法是否可以改变返冋值的类型?

答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写OveiTiding是父类与子类之I'可多 态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的 名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言, 父类屮的定义如同被”屏蔽“了。如果在一个类屮定义了多个同名的方法,它们或有不同的参数个数或有不同的参 数类型,则称为方法的重载(Overloading)o Overloaded的方法是可以改变返冋值的类型

B.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用二二还是equalsO?它们有何区别 答:Set里的元素是不能重复的,那么用iterator()方法來区分重复与否。equals()是判读两个Set是否相等 equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相 配的话,返回真值 14. 给我一个你最常见到的runtime exception? 答:常见的运行吋异常有如下这些 ArithmeticException(异常的运算条件),

ArrayStoreException(向一个对彖数组存放一错误类型的对象时)BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, Illegal ArgumentException, 11 legal MonitorStateException, IllegalPathStateException, IllegalStateException,

ImagingOpException,

IndexOutOfBoundsException,

MissingResourceException,

NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException.. 15. error和exception有什么区别?

答:error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这 样的情况

exception表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况 16. List, Set, Map 是否继承自 Collection 接口 答:List, Set 是,Map 不是 17. abstract class 和 interface 的区别

答:声明方法的存在而不去实现它的类叫虚拟类(abstract class).它用于创建一个体现某些基本行为的类,并为该类声 明方法,但不能在该类中实现该类的情况.不能创建abstract class的实例.但是可以声明一个abstract class变量,将其 指向其具体子类的一个实例.不能有抽象构造函数或抽象静态方法.Abstract类的子类为它们父类屮的所有抽象方 法提供实现,否则它们也是抽彖类为。取而代之,在子类屮实现该方法。知道其行为的其它类可以在类中实现这 些方法. 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。 接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相 似,除了该实现类不能从接口定义屮继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口 的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作 为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instance。f运算符可 以用来决定某对象的类是否实现了接口.

接口是一个更纯的抽象类.

18. 接口是否可继承接口?抽象类是否可实现(implemcrns)接口?抽象类是否可继承实体类(concreteclass)

答:接口可以继承接口。抽象类可以实现(implements)接口,抽彖类可继承实体类,但前提是实体类必须有明确的 构造函数

19. abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized

答:都不能.其屮synchronized^同步.避免在你和别人同时访问一个属性的时候,属性的值发生不同步的问题.) native:(声

明本地方法的关键字,可以通过声明的方法调用本地的动态链接库或者有C、C++等开发的函数。) 20. 构造器Constructor是否可被oveiride(构造函数)

答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading 1) .构造器不能是 native,final,static,synchronized 的,可以是 public,private,sK什么都没有。 2) .构造器函数里可以写return呢,但后而什么都不许有(包活null) 3) .构造器不能返回值.

但如果有个”构造器“返值了,它就不是构造器喽,只是个普通方法 4) . super();this();这两个方法只能在构造方法里调用. 5) .成员变量声明时候赋值,比构造幣数还早. 21. 是否可以继承String类

答:String类是final类故不可以继承

22. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么吋候被执行,在 retum前还是后 答:会执行,在retum前执行

23. 用最有效率的方法算出2乘以8等於几答:2?3

24. 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对 答:不对,有相同的hash code 在C++中,每个类多有地址。

j“va也一样,不过hash code不是地址,而是一个标识对象用的。(个人认为) 每个对象的hash code是不一样的,Object的默认hash code记得是按引用地址的。 对于String例外,是按String内容输出hash code的,这样可以用equals()来比较String的 内容是否相等了,而不是地址

在Java应用程序执行期间,在同一对象上多次调用hashCode方法时,必须一致地返回相同的整数,前提是对 象上equals比较中所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数 无需保持一致。 如果根据equals(Object)方法,两个对象是相等的,那么在两个对象中的每个对象上调用hashCode方法都必须 生成相同的整数结果。

以下情况不 是必需的:如果根据equals(java.lang.Object)方法,两个对象不相等,那么在两个对象屮的任一对象 上调用hashCode方法必定会生成不同的整数结果。但是,程序员应该知道,为不相等的对象生成不同整数结果 可以提高哈希表的性能。

实际上,rfl Object类定义的hashCode方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对彖的 内部地址转换成一个整数来实现的,但是JavaTM编程语言不需要这种实现技巧。)

25. 当一个对彖被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结杲,那么这里 到底是值传递还是引用传递

答:是值传递。Java编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是 对该对象的引用。对象的内容可以在被调用的方法中改变,但对彖的引用是永远不会改变的. 26. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上

答:witch (exprl)中,exprl是一个整数表达式。因此传递给switch和case语句的参数应该是int^ shortchar 或者byte0 long,string都不能作用于swtich

27. ArrayList 和 Vector 的区別,HashMap 和 Hashtable 的区别 答:就ArrayList与Vector主要从二方面來说.

一. 同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不女全的,不是同步的 二. 数据增长:当需要增氏时,Vector默认增长为原来一培,而ArrayList却是原来的一半 就HashMap与HashTable主要从三方面来说。

一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现

二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不女全的,不是同步的 三?值:只有HashMap可以让你将空值作为一个表的条目的key或value 28. GC是什么?为什么要有GC

答:GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内 存冋收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自 动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。 29. float 型 float f=3.4 是否正确?

答:不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 30价绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)? 答:Collection FrameWork 如 F: Collection 卜 Lisi I 卜LinkedList I |-ArrayList I LVector I LStack

L

Set

Map

|-Hashtable |-HashMap

L

WeakHashMap

Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素(Elements) Map提供key到value的映射.

31.抽象类与接口?

答:抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有 多重继承的功能)

JAVA类实现序例化的方法是实现java.io.Serializable接口

Collection框架中实现比较要实现Comparable接口和Comparator接口 32.STRING 与 STRINGBUFFER 的区别。

答:STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作, 特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法 33. 谈谈 final, finally, finalize 的区别

答:final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。 因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中 不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final 的方法也同样只能使用,不能重载

fin汕y—再异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch子句就会执 行,然后控制就会进入finally块(如果有的话)

finalize—方法名。Java技术允许使用finalize()方法在垃圾收集器将对象从内存屮清除出去之前做必要的清理工 作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对彖调用的。它是在Object类中定义的,因 此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃 圾收集器删除对象之前对这个对象调用的

34. 面向对象的特征有哪些方面 答:主要有以下四方面:

联系合同范文客服:xxxxx#qq.com(#替换为@)