招银网络科技(深圳)
技术面和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分钟。