JAVA 中存在的区别汇总

重载和重写的区别

区别点 重载 重写(覆盖、复写)
定义 方法名相同,但参数的类型、个数、顺序不同 方法名相同、返回值类型相同、参数列表也完全相同
发生范围 在一个类中 发生在继承类
修饰符 没此限制 被子类重写的方法不能拥有比父类更加严格的权限

抽象类和接口的区别

区别点 抽象类接口
定义包含一个抽象构造方法 抽象方法和全局常量的集合
组成构造方法,抽象方法,普通方法,常量,变量常量,抽象方法
关键字abstract classinterface
使用子类继承抽象类(extends)子类实现接口(implements)
关系抽象类可以实现多个接口接口不能继承抽象类,但是允许继承多个接口
设计模式模板设计模式工厂模式,代理设计
局限性抽象类有单继承的局限性接口没有此局限性
实际作为一个模板是作为一种标准或能力
省略性抽象方法的修饰符不可以省略抽象方法和全局常量的修饰符可以省略
对象都通过对象的多态性产生实例化对象
选择如果抽象类和接口可以同时使用的话,优先选择接口,因为接口避免了单继承的局限性
特殊性一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类
修饰符下面修饰符不能与abstract同时使用:static,final,native, private,strictfp,synchronized

this和super的区别

区别点 thissuper
属性的访问 访问本类中的属性。如果本类中没有此属性,则从父类中查找 访问父类中的属性
方法 访问本类中的方法。如果本类中没有此方法,则从父类中查找 访问父类中的方法
构造方法 调用本类中的构造方法,必须放在构造方法的首行 调用父类中的构造方法,必须放在子类构造方法的首行
特殊性 表示当前对象 没有此概念

==与equals()的区别

equals()==
只能比较引用类型既能比较引用类型又能比较基本类型
equals()方法从Object类继承,即比较对象引用的值比较基本数据类型:相当于算术等号
一般都被子类方法覆盖,不再比较引用的值比较引用数据类型:比较引用的值,不能被覆盖。
是一个方法二元运算符

访问权限之间的区别

 同一个类同一个包不同包的子类不同包的非子类
Private   
Default  
Protected 
Public

进程与线程的区别

进程每个进程都有独立的代码和数据空间,进程的切换会有很大的开销
线程同一类线程共享代码和数据空间,每个线程有独立运行的栈和程序计数器,线程切换的开销小
多线程在操作系统中能同时运行多个任务(程序)
多进程在同一应用中有多个顺序同时执行

String类和StringBuffer类的比较

String类StringBuffer类
java中定义了String与StringBuffer两个类来封装对字符串的各种操作
String类与StringBuffer类都被放到了java.lang包中
String类对象中的内容初始化不可以改变StringBuffer类对象中的内容可以改变

StringBuffer类和StringBuilder类的比较

区别点StringBuffer类StringBuilder类
 StringBuffer和StringBuilder都是长度可变的字符串。
操作两者的操作基本相同
线程安全StringBuffer类的线程是安全的StringBuilder类是线程不安全的
推出时间StringBuffer在JDK1.0中就有StringBuilder时在JDK5.0后才出现的
  StringBuilder的一些方法实现要比StringBuffer快些

static和非static的区别

非staticstatic
使用非static声明的方法可以调用static声明的方法或属性static声明的方法不能调用非static声明的方法或属性

字节流和字节流的区别

字节流字符流
字节流在操作的时候本身不会用到缓冲区,是与文件本身直接操作的字符流操作的时候使用了缓冲区
字节流在硬盘上保存文件或进行传输的时候是以字节形式传输的,图片也是以字节流形式传输的字符流只有在内存中进行的,因此在开发中使用字节流操作的情况较多

ArrayList与Vector的区别

区别点ArrayListVector
推出时间JDK1.2之后推出的,属于新的操作类JDK1.0时推出的,属于旧的操作类
性能采用异步处理方式,性能更高采用同步处理方式,性能较低
线程安全属于非线程安全的操作类属于线程安全的操作类
输出只能使用foreach、Iterator输出可以使用Iterator、foreach、Enumeration输出

ArrayList与LinkedList的比较

区别点ArrayListLinkedList
存储结构ArrayList是线性顺序存储LinkedList对象间彼此串连起来的一个链表
操作性能ArrayList适合随机查询的场合LinkedList元素的插入和删除操作性高
从功能上 LinkedList要多一些

HashMap与Hashtable的比较

区别点HashMapHashtable
推出时间JDK1.2之后推出的,属于新的操作类JDK1.0时推出的,属于旧的操作类
性能采用异步处理方式,性能更高采用同步处理方式,性能较低
线程安全属于非线程安全的操作类属于线程安全的操作类
设置空值允许设置null值不能设置null,如果设置则出现NullPointerException异常

扫一扫,打赏我
Fanyun Fanyun
Copyright©1993 - Now. 瞎塔码搞