比亚迪面试,全程八股!

2023年 11月 30日 68.8k 0

比亚迪最近几年凭借着其新能源汽车的板块大火了一把,无论是名声还是股价都涨得嘎嘎猛,但是迪子招聘编程技术岗位的人员却有两个特点:

  • 面试难度低,对学校有一定的要求。
  • 薪资给的和面试难度一样低。
  • 但不管怎么,迪子也算是国内知名公司了,所以今天咱们来看看,他的校招 Java 技术岗的面试题都问了哪些知识点?面试题目如下:

    1、int和Integer有什么区别?

    参考答案:int 和 Integer 都是 Java 中用于表示整数的数据类型,然而他们有以下 6 点不同:

    • 数据类型不同:int 是基础数据类型,而 Integer 是包装数据类型;
    • 默认值不同:int 的默认值是 0,而 Integer 的默认值是 null;
    • 内存中存储的方式不同:int 在内存中直接存储的是数据值,而 Integer 实际存储的是对象引用,当 new 一个 Integer 时实际上是生成一个指针指向此对象;
    • 实例化方式不同:Integer 必须实例化才可以使用,而 int 不需要;
    • 变量的比较方式不同:int 可以使用 == 来对比两个变量是否相等,而 Integer 一定要使用 equals 来比较两个变量是否相等;
  • 泛型使用不同:Integer 能用于泛型定义,而 int 类型却不行。
  • 2、什么时候用 int 和 Integer?

    参考答案:int 和 Integer 的典型使用场景如下:

    • Integer 典型使用场景:在 Spring Boot 接收参数的时候,通常会使用 Integer 而非 int,因为 Integer 的默认值是 null,而 int 的默认值是 0。如果接收参数使用 int 的话,那么前端如果忘记传递此参数,程序就会报错(提示 500 内部错误)。因为前端不传参是 null,null 不能被强转为 0,所以使用 int 就会报错。但如果使用的是 Integer 类型,则没有这个问题,程序也不会报错,所以 Spring Boot 中 Controller 接收参数时,通常会使用 Integer。
    • int 典型使用场景:int 常用于定义类的属性类型,因为属性类型,不会 int 不会被赋值为 null(编译器会报错),所以这种场景下,使用占用资源更少的 int 类型,程序的执行效率会更高。

    3、HashMap 底层实现?

    HashMap 在 JDK 1.7 和 JDK 1.8 的底层实现是不一样的。

    • 在 JDK 1.7 中,HashMap 使用的是数组 + 链表实现的。
    • 而 JDK 1.8 中使用的是数组 + 链表或红黑树实现的。

    HashMap 在 JDK 1.7 中的实现如下图所示:

    HashMap 在 JDK 1.8 中的实现如下图所示:

    4、HashMap 如何取值和存值?

    参考答案:HashMap 使用 put(key,value) 方法进行存值操作,而存值操作的关键是根据 put 中的 key 的哈希值来确定存储的位置,如果存储的位置为 null,则直接存储此键值对;如果存储的位置有值,则使用链地址法来解决哈希冲突,找到新的位置进行存储。

    HashMap 取值的方法是 get(key),它主要是通过 key 的哈希值,找到相应的位置,然后通过 key 进行判断,从而获取到存储的 value 信息。

    5、SpringBoot 如何修改端口号?

    参考答案:在 Spring Boot 中的配置文件中设置“server.port=xxx”就可以修改端口号了。

    6、如何修改 Tomcat 版本号?

    参考答案:在 pom.xml 中添加 tomcat-embed-core 依赖就可以修改 Spring Boot 中内置的 Tomcat 版本号了,如下图所示:

    但需要注意的是 Spring Boot 和 Tomcat 的版本是有对应关系的,要去 maven 上查询对应的版本关系才能正确的修改内置的 Tomcat 版本号,如下图所示:

    7、SpringBoot如何配置Redis?

    参考答案:首先在 Spring Boot 中添加 Redis 的框架依赖,然后在配置文件中使用“spring.redis.xxx”来设置 Redis 的相关属性,例如以下这些:

    spring:
      redis:
        # Redis 服务器地址
        host: 127.0.0.1
        # Redis 端口号
        port: 6379
        # Redis服务器连接密码,默认为空,若有设置按设置的来
        password:
        jedis:
          pool:
            # 连接池最大连接数,若为负数则表示没有任何限制
            max-active: 8
            # 连接池最大阻塞等待时间,若为负数则表示没有任何限制
            max-wait: -1
            # 连接池中的最大空闲连接
            max-idle: 8

    8、MySQL 左连接和右连接有什么区别?

    参考答案:在 MySQL 中,左连接(Left Join)和右连接(Right Join)是两种用来进行联表查询的 SQL 语句,它们的区别如下:

    • 左连接:左连接是以左边的表格(也称为左表)为基础,将左表中的所有记录和右表中匹配的记录联接起来。即使右表中没有匹配的记录,左连接仍然会返回左表中的记录。如果右表中有多条匹配记录,则会将所有匹配记录返回。左连接使用 LEFT JOIN 关键字来表示。
    • 右连接:右连接是以右边的表格(也称为右表)为基础,将右表中的所有记录和左表中匹配的记录联接起来。即使左表中没有匹配的记录,右连接仍然会返回右表中的记录。如果左表中有多条匹配记录,则会将所有匹配记录返回。右连接使用 RIGHT JOIN 关键字来表示。

    例如以下图片,左连接查询的结果如下图所示(红色部分为查询到的数据):

    右连接如下图红色部分:

    9、内连接没有匹配上会怎么?

    参考连接:内连接使用的是 inner join 关键字来实现的,它会匹配到两张表的公共部分,如下图所示:

    所以,如果内连接没有匹配上数据,则查询不到此数据。

    小结

    以上是比亚迪的面试题,但并不是说比亚迪的面试难度一定只有这么低。因为面试的难度通常是根据应聘者的技术水平决定的:如果应聘者的能力一般,那么通常面试官就会问一下简单的问题,然后早早结束面试;但如果应聘者的能力比较好,面试官通常会问的比较难,以此来探寻应聘者的技术能力边界,从而为后续的定薪、定岗来做准备,所以大家如果遇到迪子的面试也不要大意。

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论