关于面试知识题:== 和equals的区别,String、StringBuffer、StringBuilder 的区别,静态变量和实例变量的区别

一:== 和equals的区别

1 :==号是运算符,比较的是基本数据类型或者引用数据类型中值是否相等 .

2 : equals是Object 类的方法,比较的是引用数据类型的地址值,要想比较对象内容是否相等,需要重写equals方法.

二:String、StringBuffer、StringBuilder 的区别

1 :使用效率:

StringBuffer 和 StringBuilder比string执行效率高:String 对象是不可变的,而 StringBuffer 和 StringBuilder是可变字符序列.每次对String对象进行的操作实际上是一个不断创建新的对象并且将旧的对象回收的一个过程,执行速度慢,而StringBuffer和StringBuilder 是对对象本身的操作,不会生成新的对象,执行速度快.

2:线程安全性:

String 和StringBuffer的线程比StringBuilder线程安全:因为String 有 final 修饰,是不变的,安全性简单;StringBuffer类中方法都添加了synchronized锁,用来保证线程安全,而StringBuilder没有做任何线程安全处理.

3:使用范围:

-操作少量的数据 适合用 String
–单线程操作字符串缓冲区下操作大量数据适合用 StringBuilder
–多线程操作字符串缓冲区下操作大量数据 适合用 StringBuffer

三:静态变量和实例变量的区别

1 存储区域不同:静态变量存储在静态存储区域,实例变量存储在堆中,会被释放。
2 静态变量与类相关:实例变量与对象相关。
3 生命周期不同,静态变量在类启动时就分配指定内存;实例变量在被对象调用后才分配内存,调用结束时内存释放

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值