java中**与**的区别

目录

==与equals的区别

方法重载与方法重写的区别

静态成员变量与非静态成员变量的区别

throws与throw区别

final 和 finally{   }区别

ArrayList和LinkedList的区别,  ArrayList和vector区别

String类、StringBuffer类与StringBuilder类的区别 


==与equals的区别

==

如果是基本数据类型,则比较基本数据类型的值;

如果是引用数据类型,则比较引用变量所指向对象的地址

equals

Object类中equals方法比较的是引用变量所指向对象的地址

一般情况下重写之后比较的是对象的值

方法重载与方法重写的区别

方法重载:类中出现了多个名称相同的方法,可通过参数的个数、类型、顺序来区分所调用的方法。方法的返回值与重载无关,普通成员方法也可以重载。若类中定义了有参的构造方法,那么默认无参的构造方法就不存在了,若有需要必须定义出来。

方法重写:当父类的方法实现不能满足子类需求时,可在子类中对父类的方法进行重写。重写方法的结构必须与父类保持一致(方法名一致,参数一致,返回值一致,访问权限大于等于父类),构造方法、静态方法不能重写,成员变量不存在重写。

静态成员变量与非静态成员变量的区别

静态成员变量随着类的加载而加载,且内存中只有一份,通过某个对象改变静态变量的值,这个类其他所有对象中这个静态变量的值就跟着变量。

非静态成员变量随着对象的创建而加载,修改某个对象的变量,其他对象的变量不会随之改变。

throws与throw区别

throws: 跟在方法声明后面,后面跟的是异常类名,抛出异常后,由方法调用者去处理,throws声明方法可能会出现某种异常。

 throw: 用在方法体内,后面跟的是异常类对象名,用来抛出一个异常对象,由方法体中语句来处理, throw是抛出异常,方法中相当于出现了异常。

final 和 finally{   }区别

final用于声明属性、方法、类和局部变量。被final修饰的类不能被其他类继承,被其修饰的方法不能被重写,被其修饰的变量只能被赋值一次。

finally块通常放在try、catch后面,其中的语句一定会被执行,正常执行或处理异常后必须执行的语句写在finally中。

ArrayList和LinkedList的区别,  ArrayList和vector区别

ArrayList底层的实现数组,而LinkedList是双向链表。ArrayList查询快,添加慢。LinkedList查询慢,但是在插入删除时比较高。

Vector多线程是安全的,而ArrayList不是。Vector类中的方法有synchronized进行修饰,Vector在效率上无法与ArrayList相比;ArrayList存储空间不够时会扩充为原来的1.5倍,Vector会扩充为原来空间的2倍。

String类、StringBuffer类与StringBuilder类的区别 

String:字符串常量,适用于少量的字符串操作的情况

StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况

StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况,是线程安全的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值