day13的总结

55 阅读1分钟

面试题 结论:Integer类型有一个缓冲区,保存-128~127之间的数字

  • 如果在这个范围内的数字,那么直接从缓冲数组中获取,否则重新创建Integer对象返回

面试题 == 和 equals的区别

  • 两个东西都是用于比较的
  • == 可以用于基本类型和引用类型
    • ==在基本类型的比较中,比较的值是否相等,如果相等返回true,否则返回false
    • ==在引用类型的比较中,比较的地址是否相等,如果相等返回true,否则返回false
  • equals只能用于引用类型的比较
    • equals方法是Object类提供的方法,其底层实现是==比较,所以在没有重写父类的equals方法时。比较的也是地址。如果希望两个对象的属性一样,就认为两个对象是相同的对象,那么需要重写equals方法,但是重写了equals的同时也需要重写hashcode方法,因为java中约定两个对象相等,那么两个对象的hash值也应该相等
      面试题2 /** * String、StringBuffer、StringBuilder的区别 * String是字符串常量类一旦定义不能改变 * StringBuffer、StringBuilder都是可以变的字符串序列 *
      * 在做大量的字符串拼接的时候,String相当于从新定义新的字符串而后两者是在的基础上追加, * 所以在做大量的字符串拼接时候应该选择使用后两者 *
      * StringBuffer是线程安全的,所以效率相对低 * StringBuilder是线程不安全的,所以效率高 */