Java中的一些常遇到的技术区别

重载及覆写的区别

No.

区别点

重载

覆写

1

定义

方法名称相同,参数的类型或个数不同

方法名称、参数的类型或个数、返回值相同

2

权限

没有权限要求

被覆写的方法不能拥有比父类更严格的权限

3

范围

发生在一个类之中

发生在继承关系中

4

单词

OverLoading

Override

thissuper的区别

No.

区别点

this

super

1

使用

调用本类中的属性或方法

从子类调用父类中的属性或方法

2

构造

可以调用本类构造,且有一个构造要作为出口

从子类调用父类的构造方法,不管子类如何安排最终一定会去调用,默认调用的是父类中的无参构造方法

3

要求

调用构造的时候一定要放在构造方法首行

放在子类构造方法首行

使用superthis调用构造方法的语句是不可能同时出现的

4

特殊

表示当前对象

无此概念

 

抽象类和接口的区别

         接口和抽象类从使用上看非常的相似,那么下面通过以下的表格对两者进行区分:

No.

比较

抽象类

接口

1

关键字

使用abstract class声明

使用interface声明

2

定义

包含一个抽象方法的类

抽象方法和全局常量的集合

3

组成

属性、方法、构造、常量、抽象方法

全局常量、抽象方法

4

权限

抽象方法的权限可以任意

只能是public权限

5

使用

通过extends关键字继承抽象类

通过implements关键字实现接口

6

局限

抽象类存在单继承局限

没有此局限,一个子类可以实现多个接口

7

顺序

一个子类只能先继承抽象类再实现多个接口

8

设计模式

模板设计

工厂设计、代理设计

两者联合可以完成一个适配器设计

9

实际作用

只能做一个模板使用

作为标准、表示能力

10

使用

两者没有什么本质的区别,但是从实际上来看,如果一个程序中抽象类和接口都可以使用的话,则一定要优先考虑接口,因为接口可以避免单继承所带来的局限。

11

实例化

都是依靠对象多态性,通过子类进行对象实例化的

ArrayListVector的区别

         从代码的最终的操作形式上可以发现,代码的输出结果与之前是一样的,而且没有区别,但是两者的区别还在于其内部的组成上。

No.

区别点

ArrayList

Vector

1

推出时间

JDK 1.2之后

JDK 1.0的时候推出

2

线程处理

ArrayList采用异步处理

采用同步处理

3

性能

速度较快

速度相对较慢

4

安全性

非线程安全性的操作

属于线程安全的操作

5

输出

由于都是List接口的子类,所以都可以依靠size()get()两个方法完成循环输出

forIteratorListIterator

forIteratorListIteratorEnumeration

 

HashMapHashtable的区别

         HashMapHastable在使用上相似,那么两者的区别如下:

No.

区别点

HashMap

Hashtable

1

推出时间

JDK 1.2之后

JDK 1.0的时候推出

2

线程处理

采用异步处理

采用同步处理

3

性能

速度较快

速度相对较慢

4

安全性

非线程安全性的操作

属于线程安全的操作

5

保存null

允许key设置成null

不允许设置,否则出现NullPointerException

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值