Redis使用总结

Java题目详解:

✔ String StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的? @done (19-09-16 13:01)

1️⃣ 可变性:String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[],所以 String 对象是不可变的,而StringBuilder 与 StringBuffer 没有用 final 关键字修饰,所以这两种对象都是可变的。
2️⃣ 线程安全性:String 中的对象是不可变的,也就可以理解为常量,线程安全,StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。StringBuilder 并没有对方法进行加同步锁,所以是非线程安全的。
3️⃣ 速度:StringBuilder>StringBuffer>String ,,原因:每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象、StringBuffer线程安全,加锁了,线程安全但牺牲了速度。

✔ equals和==的区别 @done (19-09-16 13:01)

1️⃣ == : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象(基本数据类型==比较的是值,引用数据类型==比较的是内存地址)。
2️⃣ equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况:

❑ 你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?

  转载请注明: Hi 高虎 Redis使用总结

  目录