大厂面试题


最近学习起来感觉有些乱,没有方向感,怀着进大厂的梦想,决定先去试试水。
我很有自知之明地专门挑选难一点的大厂找虐,这样才有意义嘛!
一周面试下来,对大厂Java高级的要求做出总结
由于时间安排,我把字节跳动、滴滴还有一起教育推掉了,毕竟是试水,我已经被虐得体无完肤,没必要再自残了。
设计的企业有:阿里、快手、转转、用友(较简单,不做展示)。还有一个企业不记得名称了(纯业务的面试,没印象)
快手
一面 
Switch数据类型支持哪些
Java有哪些锁?区别在哪?底层如何实现的?为什么非公平锁效率高?
Java内存模型
Java内存结构
线程池使用场景及其核心参数说明、拒绝策略(拒绝策略不理想)
Threadlocal原理和使用场景(不理想)
实现多线程通讯
Mybatis初始化和执行原理
Spring mvc初始化和执行原理
Springboot如何自定义starter
项目中使用了springcloud哪些组件及其原理
Redis数据类型
Redis淘汰策略
Redis集群方式
Redis中string底层结构(不理想)
MQ工作方式
MySQL数据库引擎比较(不理想)
事务隔离级别说明
 
项目中使用哪些设计模式?(策略,模板,观察者)
批量导出的业务1000个,如何实现(多线程、压缩传输)
什么场景会出现栈溢出
一般怎么优化慢查询
什么情况下会使得索引失效
Redis集群时分布式锁的问题(主节点锁信息未同步至从节点,主宕机)(不理想)
 二面
Redis分布式锁中加锁与解锁的详细细节询问,过期如何续命(不理想)
Spring的ApplicationEvent的使用场景
SpringMVC拦截器和过滤器区别(不理想)
一个项目中可以有多个dispatcherServelt吗?为什么?(不理想)
SpringAOP涉及到什么设计模式?底层原理
SpringBoot配置文件加载优先级(不理想)
SpringBoot启动原理
多层接口传参相同的问题怎么解决(估计是问ThreadLocal)(不理想)
Redis集群有哪些方式
MySQL事务隔离级别
MySQL聚簇索引(不理想)
给定业务场景写sql(不理想)
重写和重载的测试题,参数列表相同,只是泛型不同,会不会报错
写一个单例(我写了最简单的饿汉式,但是告诉了人家,其他的实现方式,及如何防止反射反序列化破坏)
 三面
很不幸,鄙人倒在了这一环节
 
ArrayList底层原理
ArrayList扩容、删除、添加原理
线程池核心参数说明
手写一个定时的线程池(不理想)
Mysql聚簇索引和非聚簇索引说明(不理想)
Java自带的序列化方式(不理想)
项目使用了SpringCloud哪些组件
Eureka属于可用还是一致?为什么
Eureka实现服务治理的原理
Ribbon原理
ZK集群原理
Spring注解生效的原理(AOP底层原理)
给定一个业务场景,手写SQL(不理想)
项目中如何使用策略模式
 阿里
尽管阿里一面没过,但这是我目前面试最舒服的一次,完全按照简历上的知识去由浅至深面试
 
HashMap底层数据结构和原理
ConcurrentHashMap线程安全的原理
Sync和Lock的区别,底层原理
CAS中ABA如何解决
类加载机制中双亲委派(不理想)
ThreadLocal底层原理
Java线程池关键参数及其拒绝策略说明
Jvm内存结构详细阐述
MySQL索引底层结构(不理想)
聚簇索引和非聚簇索引
如何优化索引查询
组合索引的使用场景(不理想)
MySQL隔离级别
脏读、幻读的定义
AOP底层原理
JDK动态代理和CGlib动态代理对比,各自底层的实现原理
FactoryBean和BeanFactory的区别
SpringMVC的拦截器和Filter的异同,自己配置过吗?(不理想)
Nginx的负载均衡方式有哪些?正向代理和反向代理的区别
RPC框架中服务消费者如何拿到服务提供者的请求信息,各自职责(估计是在问心跳包)(不理想)
注册中心的治理
Hystrix熔断器的工作原理,熔断半开是指什么(不理想)
Ribbon使用过吗?
Kafka消费者,生产者,分区,topic的关系是什么,消费者与分区的数量的对应关系是什么
分布式事务如何解决的?事务消息和普通消息的区别
BASE理论和CAP理论是指什么
ES中倒排索引和普通索引的区别(不会)
Mybatis中二级缓存和一级缓存的区别(我把Mybatis整个流程阐述了一次)
Netty中粘包和拆包是指什么?
TCP中为什么握手是三次而挥手是四次?(不理想)
转转
用过什么设计模式?描述一下场景
SpringBean生命周期
事务的原理
Spring声明式事务为什么能每次拿到相同的connection(估计是在问ThreadLocal)(不理想)
Springboot的starter组件的结构是什么样的
HashMap1.7和1.8的区别在哪
Sync和ReentrantLock的区别
公平锁和非公平锁的区别
给了一个实际出现线程安全的场景,判断哪些操作会出现阻塞(不理想,没理解问题)
JVM内存结构的介绍
垃圾回收算法有哪些?重点说说复制算法
常用的垃圾回事器有哪些?CMS的原理阐述一下
Netty使用过吗?讲下原理
粘包和拆包的解决方案有哪些?
使用过哪些Redis的数据结构
MQ如何解决分布式事务
消息幂等性如何解决
消息顺序消费如何解决,哪些MQ有这个特性
ThreadLocal的原理(不理想)
Redis实现分布式锁中,过期时间如何设置的(估计是在问NX和PX如何保持一致性)(不理想)
线程池有哪些参数是自己用过的,具体的使用场景(不理想)
匿名内部类使用外部变量为什么必须是final修饰的(不理想)
一条TCP连接上可以发多少个HTTP请求(不知道)
看一段代码(SpringAOP使得this失效)
手写消费者和生产者(不理想)
附上个人简历中配置的个人技能
熟悉常用设计模式:策略、责任链、单例、装饰者、代理、观察者、适配器、外观/门面
 
研究过Mybatis3源码,熟悉sqlsession执行流程、熟悉一级缓存、二级缓存原理
 
研究过Spring5注解方式启动Spring的源码,熟悉Springbean生命周期、SpringAOP底层原理、
Spring事务底层原理、Spring循环依赖解决的原理
 
研究过SpringMVC5的源码,可手动仿真SpringMVC框架
 
研究过Springboot2的启动源码,熟悉Springboot核心设计理念,可自定义starter组件,熟悉
@SpringBootApplication底层原理
 
熟悉Java8新特性
 
熟悉常用集合(ArrayList、LinkedList、HashMap1.7、HashMap1.8、ConcurrentHashMap1.7、
ConcurrentHashMap1.8)原理,并研究过源码
 
可手写二叉树、了解红黑树旋转变色规则
 
熟悉Nginx负载均衡、动静分离、反向代理、静态文件压缩原理
 
了解网站跨域问题及其相应解决方案
 
了解Nginx+Lvs+Keep-alive实现高可用的原理
 
熟悉多线程(通讯、锁,CAS机制)、Java内存模型,可手写Java线程池
 
熟悉Java内存结构,了解常用垃圾回收算法、垃圾回收器以及内存溢出和内存泄漏等问题
 
熟悉Zookeeper使用,了解Zookeeper工作原理,分布式锁原理、分布式集群原理、选举策略、数据最终一致性原理。
 
了解MySQL中的事务隔离级别和常见的锁(共享、排它、意向、记录、间隙、临键、行锁、表锁等)
 
研究过Tomcat8底层源码,可在微服务架构下优化Tomcat8
 
熟悉Netty框架,了解BIO、NIO、TCP/UDP原理,了解OSI七层网络模型,了解请求粘包、拆包原因和解决方案,了解序列化机制。
 
熟悉SpringCloud框架,了解服务治理、服务注册发现、服务降级、熔断、隔离等Hystrix服务保护机制的原
理,熟悉Ribbon负载均衡、Config配置中心、Zuul网关、Swagger接口调试
 
熟悉Redis淘汰策略、事务、持久化机制、分布式锁、单线程高效、自动过期、与MySQL保持一致性等原理
 
熟悉Redis穿透、击穿、雪崩、集群、主从复制、哨兵选举、cluster分片、动态扩容、缩容、布隆过滤器等原理
 
熟悉常用消息队列RabbitMQ/Kafka/RocketMQ,了解其解决分布式事务,消息幂等,顺序消费,事务消息以及
常用工作方式等原理

你可能感兴趣的:(java)