博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题java
阅读量:4116 次
发布时间:2019-05-25

本文共 2162 字,大约阅读时间需要 7 分钟。

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. 从继承的角度看,接口可以多继承,但是抽象类却不能,它只能继承一个父类,不能继承多个父类。

 

 

 

转载地址:http://ssupi.baihongyu.com/

你可能感兴趣的文章
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
手绘VS码绘(二):动态图绘制(码绘使用Processing)
查看>>
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>
论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
查看>>
基于“分形”编写的交互应用
查看>>
《融入动画技术的交互应用》主题博文推荐
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>
Piper Sandler为EverArc收购Perimeter Solutions提供咨询服务
查看>>
RMRK筹集600万美元,用于在Polkadot上建立先进的NFT系统标准
查看>>
JavaSE_day12 集合
查看>>
JavaSE_day14 集合中的Map集合_键值映射关系
查看>>
Day_15JavaSE 异常
查看>>
异常 Java学习Day_15
查看>>
JavaSE_day_03 方法
查看>>
day-03JavaSE_循环
查看>>
Mysql初始化的命令
查看>>