面试题java

1、hashTable和HashMap的区别

1) hashMap去掉了HashTable 的contains方法,但是加上了containsValue()和containsKey()方法。
2) hashTable同步的,而HashMap是非同步的,效率上逼hashTable要高。
3) hashMap允许空键值,而hashTable不允许。

2、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?


方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。

如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

 

3、给我一个你最常见到的runtime exception


ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException,ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,
ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException,NullPointerException, ProfileDataException, ProviderException, RasterFORMatException, SecurityException,SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

 

4、error和exception有什么区别?


error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。


5、List, Set, Map是否继承自Collection接口?
List,Set是

Map不是,Map继承了Object类

 

6、抽象类和接口的异同点?

定义:

声明方法而不去实现它的类就叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,

但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向

具体子类的一个实例。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有

方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该

实现类不能从接口定义中继承行为。

 

相同点:

  1. 他们都不能生成实例,都有抽象方法
  2. 接口是特殊的抽象类
  3. 接口继承接口和抽象类继承类都使用的关键字是extends

类继承类和接口

public class Apple extends Fruit implements Fruit1, Fruit2{}

接口可以多继承

public interface Fruit1 extends Fruit {}

 

不同点:

  1. 名字不同, 接口是interface,抽象类是abstract class
  2. 接口里面全部都是抽象 ,接口中的方法默认都是public abstract类型的;抽象类里面可以有抽象方法也可以有其他的方法
  3. 接口的 属性都是静态的,但是抽象类的属性可以是任意的
  4. 抽象类中可以有 构造器,但是接口中除了抽象方法什么都没有
  5. 接口的定义的变量默认是public static final型,且必须给其赋初始值。所以在实现类中不能重新定义,也不能改变其值。而在抽象类中其值可以重新定义也可以重新赋值
  6. 从继承的角度看,接口可以多继承,但是抽象类却不能,它只能继承一个父类,不能继承多个父类。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值