腾讯资深架构师 精心整理 刷掉 90% 候选人的BATJ面试题
前言
BATJ是百度、阿里巴巴、腾讯、京东四大互联网公司简称。
- 以BATJ为代表的大型企业是中国人工智能投资市场的重要“参与者”。
- 阿里巴巴加大对科技型企业的投资,涵盖计算机视觉、语音识别、自然语言处理等技术领域。
- 腾讯采取覆盖式的游戏方式,以***业为战略,涉及汽车运输、医疗保健、金融和智能家居等多个行业。
- 百度的投资采取“少而精”的策略。投资和收购同时进行,涉及汽车运输、智能家居和新零售工业。
- 京东有大量投资企业,覆盖面广的面粉行业。它专注于自动驾驶领域,也涉及家庭和医疗行业。
- 亚洲目前有60多家“独角兽”企业,价值超过10亿美元,其中41家由中国四大金刚BATJ投资。
要进BATJ的难度可想而知,下面分享给大家分享一下腾讯资深架构师 精心整理的 刷掉90% 候选人的BATJ面试题
话不多说直接进入主题
BATJ面试题
- hashmap hastable 底层实现什么区别?hashtable和concurrenthashtable呢?
- hashmap和treemap什么区别?低层数据结构是什么?
- 线程池用过吗都有什么参数?底层如何实现的?
- sychnized和Lock什么区别?sychnize 什么情况情况是对象锁? 什么时候是全局锁为什么?
- ThreadLocal 是什么底层如何实现?写一个例子呗?
- volitile的工作原理?
- cas知道吗? 如何实现的?
- 请用至少四种写法写一个单例模式?
- 请介绍一下JVM内存模型??用过什么垃圾回收器都说说呗
- 线上发送频繁full gc如何处理? CPU 使用率过高怎么办?
- 如何定位问题?如何解决说一下解决思路和处理方法
- 讲讲类加载机制呗都有哪些类加载器,这些类加载器都加载哪些文件?
- 手写一下类加载Demo
- 知道osgi吗? 他是如何实现的???
- 请问你做过哪些JVM优化?使用什么方法达到什么效果?
- classforName("java.lang.String")和String classgetClassLoader() LoadClass("java.lang.String") 什么区别啊?
- 探查Tomcat的运行机制即框架?
- 分析Tomcat线程模型?
- Tomcat系统参数认识和调优?
- MySQL底层B+Tree机制?
- SQL执行计划详解?
- 索引优化详解?
- SQL语句如何优化?
- spring都有哪些机制?AOP底层如何实现的啊IOC呢?
- cgLib知道吗?他和jdk动态代理什么区别?手写一个jdk动态代理呗?
- 使用mysq1索引都有哪些原则? ?索引什么数据结构? 3+tree 和B tree 什么区别?
- MySQL有哪些存储引擎啊?都有啥区别? 要详细!
- 设计高并发系统数据库层面该怎么设计??数据库锁有哪些类型?如何实现呀?
- 如何设计可以动态扩容缩容的分库分表方案?
- 用过哪些分库分表中间件,有啥优点和缺点?讲一下你了解的分库分表中间件的底层实现原理?
- 我现在有一个未分库分表的系统,以后系统需分库分表,如何设计,让未分库分表的系统动态切换到分库分表的系统上?TCC? 那若出现网络原因,网络连不通怎么办啊?
- RPC通信原理,分布式通信原理
- 分布式寻址方式都有哪些算法知道一致性hash吗?手写一下java实现代码??你若userId取模分片,那我要查一段连续时间里的数据怎么办???
- 如何解决分库分表主键问题?有什么实现方案??
- redis和memcheched 什么区别?为什么单线程的redis比多线程的memched效率要高啊?
- reids的主从复制是怎么实现的redis的集群模式是如何实现的呢redis的key是如何寻址的啊?
- 使用redis如何设计分布式锁?使用zk可以吗?如何实现啊这两种哪个效率更高啊??
- 知道redis的持久化吗都有什么缺点优点啊? ?具体底层实现呢?
- redis过期策略都有哪些LRU 写一下java版本的代码吧??
- 说一下dubbo的实现过程注册中心挂了可以继续通信吗??
- dubbo支持哪些序列化协议?hessian 说一下hessian的数据结构PB知道吗为啥PB效率是最高的啊??
- 知道netty吗'netty可以干嘛呀NIO,BIO,AIO 都是什么啊有什么区别啊?
- 为什么要进行系统拆分啊?拆分不用dubbo可以吗?dubbo和thrift什么区别啊?
- 为什么使用消息队列啊?消息队列有什么优点和缺点啊?
- 如何保证消息队列的高可用啊?如何保证消息不被重复消费啊
- kafka ,activemq,rabbitmq ,rocketmq都有什么优点,缺点啊???
- 如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路
- TCP三次握手,四层分手的工作流程画一下流程图为什么不是四次五次或者二次啊?
- 画一下https的工作流程?具体如何实现啊?如何防止被抓包啊??
- 源码中所用到的经典设计思想及常用设计模式
- 系统架构如何选择合适日志技术(log4j、log4j2、slf4j、jcl…….)
- springAOP的原理,springAOP和Aspectj的关系,springAOP的源码问题
- dubbo框架的底层通信原理
- RPC通信原理,分布式通信原理
- 如何利用springCloud来架构微服务项目
- 如何正确使用docker技术
- springMVC的底层原理、如何从源码来分析其原理
- mybaits的底层实现原理,如何从源码来分析mybaits
- mysql的索引原理,索引是怎么实现的
- 索引的底层算法、如何正确使用、优化索引
- springboot如何快速构建系统
- zk原理知道吗?zk都可以干什么?Paxos算法知道吗?说一下原理和实现?
- 如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路
- 分布式事务知道吗? 你们怎么解决的?
- 请问你做过哪些JVM优化?使用什么方法达到什么效果?
- 哪些情况下的对象会被垃圾回收机制处理掉?
- 讲一下常见编码方式?
- utf-8编码中的中文占几个字节;int型几个字节?
- 静态代理和动态代理的区别,什么场景使用?
- Java的异常体系
- 谈谈你对解析与分派的认识。
- 修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法?
- Java中实现多态的机制是什么?
- 如何将一个Java对象序列化到文件里?
- 说说你对Java反射的理解
- 说说你对Java注解的理解
- 说说你对依赖注入的理解
- 说一下泛型原理,并举例说明
- Java中String的了解
- String为什么要设计成不可变的?
- Object类的equal和hashCode方法重写,为什么?
- MVC MVP MVVM原理和区别
- 你所知道的设计模式有哪些?
- 项目中常用的设计模式
- 手写生产者/消费者模式
- 写出观察者模式的代码
- 适配器模式,装饰者模式,外观模式的异同?
- 用到的一些开源框架,介绍一个看过源码的,内部实现过程。
- 谈谈对RxJava的理解
- RxJava的功能与原理实现
- RxJava的作用,与平时使用的异步操作来比的优缺点
- 说说EventBus作用,实现方式,代替EventBus的方式
- 从0设计一款App整体架构,如何去做?
- 说一款你认为当前比较火的应用并设计(比如:直播APP,P2P金融,小视频等)
- 谈谈对java状态机理解
- Fragment如果在Adapter中使用应该如何解耦?
- Binder机制及底层实现
- 对于应用更新这块是如何做的?(解答:灰度,强制更新,分区域更新)?
- 实现一个Json解析器(可以通过正则提高速度)
从上面可以看出,大厂问的最多的就是原理,源码,底层,框架等等
到这里光高死记硬背是行不通的,还要有一定的经验支撑,不然很多问题你都没办法回答
在这里简历很重要,很多时候面试官都是根据简历来问的,看你对自己简历上的知识点,项目的熟悉程度吧,不懂的一定不要乱写