面试(2)——StringBuffer StringBuilder String /==与equals

         最近有小伙伴问我面试的时候,经常会问些什么问题,其实面试的时候,面试官无非就是面试一些基础,怎么问呢,就是会根据你简历上所写的技术点进行询问,由浅到深。你可能会说,那这样我面试的时候少写一些,那问你的知识点少了,就会感觉你的知识存储量不多。如果写的多了,有很多不会的,那面试官问到你的时候,你不知道,就是一个大型的社死现场。

        那怎么选择呢?可以选择自己很熟悉的,理解的以及了解的,不会的东西就不要写了。如果发现会的很少,那就再研究一下自己了解一点的,把它转成理解的。

        可能你写了很多了,但是面试官只问了一两个,这一两个可能就是会往深了挖。

        我在这里准备了一些高频面试的知识点,可能会有遗漏啥的,大家可以自行扩充。有的公司可能会问到,java基础知识,集合容器,spring全家桶,mysql数据库,mybatis,ssm框架,redis缓存,MongoDB数据库,linux系统的操作(常用的语法命令,目录结构)以及rocketmq消息队列,还有可能问一些elasticsearch等。大家可以根据这些知识点,去找自己会的技术。

当然我所整理的题目只是一个白话的问题,面试官肯定会委婉一下,你只要听懂了要问的是什么就好了

面试题1:你了解StringBuffer StringBuilder String 吗?他们三者的区别是什么?

        1.StringBuilder执行效率高于StringBuffer高于String.
        2. String 是-一个常量,是不可变的,所以对于每一次+=赋值 都会创建一一个新的对象,StringBuffer 和StringBui lder都是可变的,当进行字符串拼接时采用append方法,在原来的基础上进行追加,所以性能比String要高,又因为StringBuffer是线程安全的而StringBuilder是线程非安全的,所以StringBuilder的效率高于StringBuffer。
        3.对于大数据量的字符串的拼接,采用StringBuffer, StringBuilder。

你了解他们的原理吗:

        String:String 类不可变,内部维护的char[]数组长度不可变,为final修饰,String 类也是final修饰,不存在扩容。字符串拼接,截取,都会生成一个新的对象。频繁操作字符串效率低下,因为每次都会生成新的对象。
        StringBuilder:StringBuilder类内部维护可变长度char[],初始化数组容量为16,存在扩容,其 append拼接字符串方法内部调用System的native方法,进行数组的拷贝,不会重新生成新的StringBuilder对象。非线程安全的字符串操作类,其每次调用toString 方法而重新生成的String对象,不会共享StringBuilder对象内部的char[],会进行一次char[]的copy操作。

面试题2:你来说一下= =和equals区别?

1.==:在比较基本数据类型的时候,比较的是数据的值:比较引用数据类型时,比较的是地址值。
2.equals方法在重写之前,比较的是俩个对象的地址值;在重写之后.比较的是属性值

面试题3:那重写 equals需要重写hashCode吗?

        这肯定是需要的。好比咱们有两个相同值的User对象,假如只重写equals而不重写hashcode,那么User类的hashcode方法就是Object默认的hashcode方法,由于默认的hashcode方法是根据对象的内存地址经哈希算法得来的,那么两者的hashcode不一定相等。

面试题4:你能说出java 的基本数据类型

数据类型        位       大小
byte (字节)       l        (8位)
shot (短整型)     2       (16 位)
int (整型)        4       (32位)
long(长整型)     8       (32 位)
float(浮点型)     4       (32 位)
double (双精度)   8       (64位)
char (字符型)     2       (16 位)
boolean (布尔型)   |

附加:
        String是基本数据类型吗? (String不是基本数据类型)
        String的长度是多少,有限制? (长度受内存大小的影响)

我就是针对于基础的面试题稍微整理了一下,具体的怎么实现啊底层代码是什么,我就不去拔了。我就整理一下概念。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值