工作时间参考: 17 年开始工作, 18 年 6 月份毕业, 算上实习一年半工作经验. 近一个半月, 先后参加了很多公司的面试, 有失败, 也有成功. 面试题如下:
1, 蘑菇街:
Java1.8 新特性 --Lambda 表达式
Redis 的相关操作
项目中 Redis 表的设计
Redis 的数据过期策略
常见的数据结构
遍历 Map 的几种方式
MySQL,Redis 的设计思路
业务逻辑的梳理
main 方法用 private 修饰会怎样?
ArrayList 和 LinkedList 的区别
多线程死锁怎么解决
数据库里有海量数据, 在不建索引的条件下, 用 Java 代码实现快速查找出某个字段的最大一百条
2, 微医集团:
Map-- 自己尽情扩展
用过的线程池和线程
设计模式 -- 单例模式和观察者模式
数据库优化以及常用 sql 语句调优
jvm 调优, 如何防止 OOM
日志 --log4j2
缓存算法如何实现
maven 命令解决 jar 包冲突
常用 Linux 命令
Spring Cloud--OAuth2,Hystrix 以及其他组件
Kafka 原理
Redis 相关操作以及原理
用过的消息队列
介绍 zookeeper
BIO,NIO,AIO 的使用场景和实现原理
spring boot 的加载原理以及加载过程
spring ApplicationContext 和 BeanFactory
3, 蚂蚁金服:
MySQL 索引
Redis 分布式事务锁
线程池常用参数的配置, 以及最大线程数根据什么来确定
spring AOP 怎么拦截, 原理
什么时候要重写 hashCode 和 equals 方法
乐观锁和悲观锁
Java 内存模型
设计模式
如何释放线程, 分别要注意什么
ArrayList 实现原理, 相对于数组的好处
LinkeList 的实现原理, 为什么用双向链表
HashMap 的实现原理
concurrentHashMap 的实现原理, jdk1.7 和 jdk1.8 实现有什么区别
用过的锁 --sychronized 和 Lock, 为什么说 sychronized 是重量锁, 效率低在哪
NIO 的原理以及使用
循环依赖
蚂蚁面试官的建议: 1, 平时做项目的时候要有自己的想法, 而不是单纯的按照需求文档来开发, 多想想为什么要那么设计, 好在哪, 亮点在哪; 2, 多看源码, 看源码的设计思路, 如果是自己, 会怎么去设计; 3, 多了解数据结构的实现和新技术的实现原理.
4, 大搜车:
String,StringBuilder,StringBuffer 的实现原理 -- 源码
Spring 的 BeanFactory 和 ApplicationContext 的区别
Spring Bean 的生命周期
Elasticsearch,Logstash,Kibana
Kafka 原理
Redis 的优点, 原理
单例模式的几种实现方式, 每种都有哪些问题
volatile 关键字
重载, 重写的区别
Object 里面常见的方法
静态方法加锁和普通方法加锁有什么区别
类的加载过程
jvm 模型介绍以及如何调优
5, 百世集团, 穆天机器人, 创泰科技:
手写代码:
1, 去除一个数组里面的重复元素;
2, 一个数组里只有 0 和 1, 求 0 到 1 的最远距离 (eg:[0, 1, 0, 0, 1] -> 返回 2)
建模一个人去饭店吃饭的全过程
Collection 介绍 -- 自由发散
Map 介绍 --HashMap 和 ConcurrentHashMap 的区别及源码分析
线程, 数据同步
MySQL 调优
jQuery 调优
Dubbo 和 Spring Cloud
Redis 存储的数据类型
spring 的 IoC 和 AOP
实现线程的几种方式
spring 的事务
6, 浙江大华:
线程: start 和 run 方法的区别;
线程池参数
有哪几种链表, 每种有什么实例
spring boot 启动过程
Redis 持久化方式
缓存算法
什么时候会发生 GC,jvm 调优
Kafka+ELK 的日志系统的搭建过程
集群中选举策略的原理
Elasticsearch 数据的存储格式
spring 的定时任务
Redis 的过期策略
spring cloud-- 熔断器 Hystrix
来源: http://www.bubuko.com/infodetail-3001118.html