7.26面试题

1. ==和equals的区别

基本类型和封装类比较 == 是封装类自动拆箱
简单类型 == 是比较内容
常量池 是byte的范围 (-128-127)

equals 默认引用的是object的方法 先比较类型 ,再比较内容。

2. String和StringBuilder的区别?

string 对象时恒定不变的,stringBuider对象表示的字符串是可变的。
每次对string的修改 都会产生一个新的String对象(一个新的空间)
Stringbuffer 每次对他的修改 都是再原来的地址上修改。
大量拼接的 用Stringbuilder 接值的时候用String

3. StringBuffer和StringBuilder的区别?

线程不安全的的条件
a:多线程
b:有共享对象
c:共享对象有状态,共享对象可变的
d:没加索
单反违反上面四个条件,都是线程安全的。
StringBuilder 单线程是安全的
1.线程安全

StringBuffer:线程安全,StringBuilder:线程不安全。因为 StringBuffer 的所有公开方法都是 synchronized 修饰的,而 StringBuilder 并没有 synchronized 修饰。

2.缓冲区

StringBuffer 每次获取 toString 都会直接使用缓存区的 toStringCache 值来构造一个字符串。

StringBuilder 则每次都需要复制一次字符数组,再构造一个字符串。

所以, StringBuffer 对缓存区优化,不过 StringBuffer 的这个toString 方法仍然是同步的

3.性能

既然 StringBuffer 是线程安全的,它的所有公开方法都是同步的,StringBuilder 是没有对方法加锁同步的,所以毫无疑问,StringBuilder 的性能要远大于 StringBuffer。

4. TreeSet和HashSet的区别?

因为都是set的子类,Set具有元素不可重复性,所以TreeSet和hashset都不可放2个相同的元素
TreeSet底层是TreeMap实现的 ,很多api都是利用TreeMap来实现的
HashSet底层是HashMap实现的,很多api都是利用HashMap来实现的

5. Collection和Collections的区别?

java.util.Collection是一个集合接口

它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。

Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。

java.util.Collections 是一个包装类

Collections类的定义:public class Collections extends Object

它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。

Collections类与Collection没有直接的关系,但是与集合中的各个接口都有操作的方法支持

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值