您的位置:首页 > 编程语言 > Java开发

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

2011-06-22 16:05 344 查看

重载及覆写的区别

No.
区别点
重载
覆写
1
定义
方法名称相同,参数的类型或个数不同
方法名称、参数的类型或个数、返回值相同
2
权限
没有权限要求
被覆写的方法不能拥有比父类更严格的权限
3
范围
发生在一个类之中
发生在继承关系中
4
单词
OverLoading
Override

this与super的区别

No.
区别点
this
super
1
使用
调用本类中的属性或方法
从子类调用父类中的属性或方法
2
构造
可以调用本类构造,且有一个构造要作为出口
从子类调用父类的构造方法,不管子类如何安排最终一定会去调用,默认调用的是父类中的无参构造方法
3
要求
调用构造的时候一定要放在构造方法首行
放在子类构造方法首行
使用super和this调用构造方法的语句是不可能同时出现的
4
特殊
表示当前对象
无此概念

抽象类和接口的区别

接口和抽象类从使用上看非常的相似,那么下面通过以下的表格对两者进行区分:
No.
比较
抽象类
接口
1
关键字
使用abstract class声明
使用interface声明
2
定义
包含一个抽象方法的类
抽象方法和全局常量的集合
3
组成
属性、方法、构造、常量、抽象方法
全局常量、抽象方法
4
权限
抽象方法的权限可以任意
只能是public权限
5
使用
通过extends关键字继承抽象类
通过implements关键字实现接口
6
局限
抽象类存在单继承局限
没有此局限,一个子类可以实现多个接口
7
顺序
一个子类只能先继承抽象类再实现多个接口
8
设计模式
模板设计
工厂设计、代理设计
两者联合可以完成一个适配器设计
9
实际作用
只能做一个模板使用
作为标准、表示能力
10
使用
两者没有什么本质的区别,但是从实际上来看,如果一个程序中抽象类和接口都可以使用的话,则一定要优先考虑接口,因为接口可以避免单继承所带来的局限。
11
实例化
都是依靠对象多态性,通过子类进行对象实例化的

ArrayList和Vector的区别

从代码的最终的操作形式上可以发现,代码的输出结果与之前是一样的,而且没有区别,但是两者的区别还在于其内部的组成上。
No.
区别点
ArrayList
Vector
1
推出时间
JDK 1.2之后
JDK 1.0的时候推出
2
线程处理
ArrayList采用异步处理
采用同步处理
3
性能
速度较快
速度相对较慢
4
安全性
非线程安全性的操作
属于线程安全的操作
5
输出
由于都是List接口的子类,所以都可以依靠size()和get()两个方法完成循环输出
for、Iterator、ListIterator
for、Iterator、ListIterator、Enumeration

HashMap与Hashtable的区别

HashMap和Hastable在使用上相似,那么两者的区别如下:
No.
区别点
HashMap
Hashtable
1
推出时间
JDK 1.2之后
JDK 1.0的时候推出
2
线程处理
采用异步处理
采用同步处理
3
性能
速度较快
速度相对较慢
4
安全性
非线程安全性的操作
属于线程安全的操作
5
保存null
允许key设置成null
不允许设置,否则出现NullPointerException
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: