2021年6月面试题Java后台(字节、招银、花旗、携程)

2021年6月面试题Java后台(字节、招银、花旗、携程)

leo 2761 2021-07-01

招银网络科技(深圳)

技术面和HR一起面。

自我介绍、项目。

技术问题:

  • 介绍下生产者消费者模型。
  • 通过怎样的设计可以提高消费速度。
  • 生产者消费者模型中怎么避免重复消费、遗漏消费。
  • 线程run方法和start方法的区别。
  • 说下冒泡排序思路,有没有更快的排序算法,说下实现思路。

问题相对较少。项目占了不少时间,全程大概一个小时。

花旗金融(上海)

一面:

自我介绍(英文)。

项目细节(英文)。

问项目问题(中文)。

技术问题(中文):

  • 常用的集合类有哪些。
  • HashMap中put方法的流程大致说下。
  • HashMap底层结构是什么。
  • JDK1.8中你使用了哪些新特性。
  • 你的项目中Redis用来做什么,怎样设计的,为什么这么设计。
  • Hibernate和MyBatis的区别。
  • Spring Boot相比Spring有什么差别。
  • 使用过事务吗,Spring中怎么使用的,都添加了@Transactional注解的方法相互调用,会发生什么。
  • AOP是什么,Spring AOP怎么实现的。
  • 数据库中join和left join的区别。
  • MySQL中有哪些类型的索引。
  • 线程访问共享资源有哪几种方式保证线程安全。
  • ThreadLocal知道吗。
  • 线程池参数为什么指定为XX。

用时大概一小时。

二面:

项目介绍(中文)。

技术问题(中文):

  • Spring中注解是怎么生效的,原理是什么。
  • 怎么逆序一个byte数组。
  • 数据库索引哪些情况下会失效。
  • Java启动参数你知道哪些。
  • 项目中用到过哪些设计模式。
  • 怎么实现单例模式的。
  • 项目中遇到过最难的事情。

你在目前公司工作的感受、企业文化怎么样(英文)。

用时大概半小时。

字节

一面:

自我介绍。

项目。

技术问题:

  • Redis单进程怎么做到高并发的。
  • 什么是IO多路复用。
  • Redis Cluster集群怎么实现数据一致性。
  • Redis从节点会处理查询请求吗,为什么向从节点查询数据。
  • 缓存穿透、缓存击穿、缓存雪崩等情况了解吗,怎么解决。
  • 进程和线程的关系、区别。
  • 线程共享进程的哪些资源。
  • 线程、进程为什么需要调度。
  • kafka消费者组是怎么实现的。
  • MySQL最大能存储多少数据,为什么。
  • MySQL有哪些非聚集索引实现。
  • MySQL怎么实现可重复读的。

算法题:

440. 字典序的第K小数字(hard)

用时大概一小时(做题半小时左右)。

携程

一面:

自我介绍。

项目。

技术问题:

  • Kafka 中 Offset 是什么。
  • Kafka 中 Leader 和 Follower 有什么区别。
  • 从 Leader 节点读和 从 Follower 节点读有什么区别。
  • Kafka 中怎么保证消息消费的幂等性。
  • 同一消费者组中多个消费者同时消费,存在什么问题。
  • Rabbitmq 怎么实现消息持久化的。
  • Spring 中事务用过吗,什么情况下会导致事务失效。
  • 分布式事务知道吗。
  • Redis 哨兵知道吗,解决了什么问题。
  • 缓存击穿怎么解决,布隆过滤器原理。
  • 布隆过滤器判断存在就一定存在吗。
  • 多线程下使用 HashMap。
  • ConcurrentHashMap 实现线程安全的原理。
  • 线程池有使用过吗,有哪些核心参数,核心线程什么时候创建。
  • ThreadLocal 有使用过吗,原理是什么,使用时需要注意什么。
  • 大概讲讲 Java GC。
  • GC后内存还是不足会怎么样。
  • G1 垃圾收集器在进行垃圾回收时会存在超时的情况吗。
  • G1 垃圾收集器是怎么保证一定的停顿时间的。

用时大概 40 分钟。

二面:

技术问题:

  • 你对计算机网络的理解。
  • 传输层有哪些协议。
  • TCP与UDP的区别。
  • TCP连接怎么建立的。
  • 为什么需要三次握手,两次行不行。
  • 怎么理解TCP中的”连接“。
  • TCP如何保证可靠传输的。
  • TCP拥塞控制怎么实现的。
  • 数据包中可不可以用mac地址替换ip地址。
  • Java中集合类用过哪些,原理了解吗。
  • 数组和链表的特点、区别。
  • 不考虑顺序性的情况下,数组中插入/删除元素,怎么避免大量移动元素。
  • Netty有什么特性。
  • 你怎么理解NIO,原理是什么。
  • Redis是单线程的指的是什么。
  • 线程池的拒绝策略有哪些,你们用的是什么。
  • 用过哪些设计模式。

用时大概50分钟。