面试题整合
蚂蚁花呗
-
Java容器有哪些?哪些是同步容器,哪些是并发容器?
-
2.ArrayLlist和LinkedList的插入和访问的时间复杂度?
-
- java反射原理,注解原理?
-
4.新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算法?
-
5.HashMap在什么情况下会扩容,或者有哪些操作会导致扩容?
-
HashMap push方法的执行过程?
-
7.HashMap检测到hash冲突后,将元素插入在链表的末尾还是开头?
-
8.1.8还采用了红黑树,讲讲红黑树的特性,为什么人家一定要用红黑树而不是AVL、B树之类的?
-
https和http区别,有没有用过其他安全传输手段?
-
10.线程池的工作原理,几个重要参数,然后给了具体几个参数分析线程池会怎么做,最后问阻塞队列的作用是什么?
-
linux怎么查看系统负载情况?
-
12、请详细描述springmvc处理请求全流程?
-
- spring 一个bean装配的过程?
-
14.讲一讲Atomiclnteger,为什么要用CAS而不是synchronized?
美团
-
最近做的比较熟悉的项目是哪个,画一下项目技术架构图
-
JVM老年代和新生代的比例?YGC和FGC发生的具体场景?
-
jstack,jmap,jutil分别的意义?
-
如何线上排查JVM的相关问题?
-
线程池的构造类的方法的5个参数的具体意义?
-
单机上一个线程池正在处理服务如果忽然断电怎么办(正在处理和阻塞队列里的请求怎么处理)?
-
使用无界阻塞队列会出现什么问题?
-
接口如何处理重复请求?
百度
-
介绍一下集合框架?
-
hashmap hastable 底层实现什么区别?hashtable和concurrenthashtable呢?
-
hashmap和treemap什么区别?低层数据结构是什么?
-
线程池用过吗都有什么参数?底层如何实现的?
-
sychnized和Lock什么区别?sychnize 什么情况情况是对象锁?什么时候是全局锁为什么?
-
ThreadLocal是什么底层如何实现?写一个例子呗?
-
volitile的工作原理?
-
cas知道吗如何实现的?
-
请用至少四种写法写一个单例模式?
-
请介绍一下JVM内存模型??用过什么垃圾回收器都说说呗
-
线上发送频繁full gc如何处理? CPU使用率过高怎么办?
- 如何定位问题?如何解决说一下解决思路和处理方法
-
知道字节码吗?字节码都有哪些?Integer x =5, int y =5,比较x =y都经过哪些步骤?讲讲类加载机制呗都有哪些类加载器,这些类加载器都加载哪些文件?
-
手写一下类加载Demo
-
知道osgi吗?他是如何实现的???
-
请问你做过哪些JVM优化?使用什么方法达到什么效果???
-
classforName(“java.lang.String”)和
- String classgetClassLoader()
- LoadClass(java.lang. String")什么区别啊?
今日头条
-
HashMap.如果一直put元素会怎么样? hashcode全都相同如何? equals
-
ApolicationContext的初始化过程?初始化过程中发现循环依赖Spring,
-
GC 用什么收集器?收集的过程如何?哪些部分可以作为GC Root?
-
Volatile关键字,指令重排序有什么意义? synchronied,怎么用?
-
并发包里的原子类有哪些,怎么实现? cas在CPU级别用什么指令实现
-
Redis数据结构有哪些?如何实现sorted set ?这种数据结构在极端情况
-
系统设计题:一个推送场景,50条内容,定时推送,先推5%用户,一段,推给所有用户。设计相关库表,系统模块,需要可以落地,有伪代码
-
MvSql索引是什么数据结构?B tree有什么特点?优点是什么?
-
慢查询怎么优化?
-
项: cache,各部分职责,有哪些优化点
京东金融面试
1.Dubbo超时重试;Dubbo超时时间设置
2如何保障请求执行顺序
3.分布式事务与分布式锁(扣款不要出现负数)
4.分布式session设置
5.执行某操作,前50次成功,第51次失败
- a全部回滚
- b前50次提交第51次抛异常,
ab场景分别如何设置Spring(传播特性)
7.JVM内存模型
8.数据库垂直和水平拆分
9.MyBatis如何分页;她何设置缓存;MySQL分页
10 熟悉IO么,与NIO的区别,阻塞与非阻塞
美团
一、Jvm相关
1对象在jvm中是怎么存储的?
2对象头信息里面有哪些东西?
3 jvm内部如何划分?常量池在哪里?
4写一段小程序使栈溢出,堆溢出?
二、GC
1 GC Root如何确定,哪些对象可以作为GC Root?
2 GC如何分代的?没代用什么算法回收?
3 CMS 过程是怎样的?内部使用什么算法做垃圾回收?
4分代垃圾回收过程?
三、并发相关
1 java中有哪几种锁?
2 synchronized内部原理?
3 ReentrantLock内部实现?
4 HashMap.Hashtable,ConcurrentHashMap区别?内部实现?
5原子类内部如何实现的?
6 ArrayBlockingQueue和 LinkedBlockingQueue内部如何实现?
- 阻塞队列
四、数据库相关
1 innoDB索引数据结构?
2 BTree B+Tree区别?为什么使用B+Tree?
五、算法
1写程序判断一棵树是不是完全对称的二叉树?
2写程序判断两颗二叉树是不是相同?
六、其他
1 Comparable和Comparator区别?
2内存溢出和内存泄露分别指什么?
二轮技术面
一、项目介绍
二、开源架构
三轮技术面一、项目介绍二、开源框架
1 dubbo如何提供服务?有机器宕掉怎么检测出来?如何找到服务?
2zk如何管理服务和配置的?
3 tair 与redis有什么区别?
4 redis是单例的吗?
5 mysql的整体架构是怎样的?
6 innodb索引?
7 innodb主键索引和非主键索引区别?
8了解java的nio吗?
三、基础
1HashMap 与 concurrentHashMap比较?
2介绍一下 java多线程?
3线程间如何通信?
四、项目管理
1项目开发流程?
2如何推动了解整个项目情况?
蚂蚁金服
1、自我介绍、工作经历、技术栈
2、项目中你学到了什么技术?(把三项目具体描述了很久)
3、微服务划分的粒度
4、微服务的高可用怎么保证的?
5、常用的负载均衡,该怎么用,你能说下吗?
6、网关能够为后端服务带来哪些好处?
7、Spring Bean的生命周期
23、HashSet是不是线程安全的?为什么不是线程安全的?
24、Java中有哪些线程安全的 Map?
25、Concurrenthashmap是怎么做到线程安全的?
26、HashTable 你了解过吗?
27、如何保证线程安全问题?
28、synchronized、lock
29、volatile的原子性问题?为什么i++这种不支持原子性?从计算机原理的设计来讲下不能保证原子性的原因
30、happens before原理
31、cas操作
32、lock 和 synchronized 的区别?
33、公平锁和非公平锁
34、Java读写锁
35、读写锁设计主要解决什么问题?
必问
ArrayListHashMap
底层是什么东东,
JVM/GC
多线程与高并发(UC)
java集合类
5.1 JVM/GC的知识5.2JUC前提知识
超级熟悉Java8以后的新特性(Stream+LambdaExpress+函数式接口+方法引用)
Redis
1.在你的项目中,哪些数据是数据库和redis缓存双写一份的?如何保证双写一致性?
2.系统上线,redis缓存系统是如何部署的
3.系统上线,redis缓存给了多大的总内存﹖命中率有多高?抗住了多少QPS?数据流回源会有多少QPS?
4.热Key大Value问题,某个key出现了热点缓存导致缓存集群中的某个机器负载过高?如何发现并解决
5.超大value打满网卡的问题如何规避这样的问题
6.你过往的工作经历中,是否出现过缓存集群事故?说说细节并说说高可用保障的方案
7.平时如何监控缓存集群的QPs和容量
8.缓存集群如何扩容??
9.说下redis的集群原理和选举机制
10.Key寻址算法都有哪些?
11.Redis线程模型现场画个图说说
12.Redis内存模型现场画个图说说
13.redis的底层数据结构了解多少?
14.redis的单线程特性有什么优缺点?
15.你们怎么解决缓存击穿问题的?
MQ
1.消息队列的主要作用是什么?
⒉.你项目好好的情况下,为什么要引入消息队列?引入的理由是什么?3.项目里你们是怎么用消息队列的?2
4.你在项目中是如何保证消息队列的高可用
5.kafka、activemq、rabbitmq、rocketmq都有什么区别6.MQ在高并发情况下假设队列满了如何防止消息丢失7.消费者消费消息,如何保证MQ幂等性
8.谈谈你对死信队列的理解
9.如果百万级别的消息积压了,你们如何处理?
10.你们为什么不用其他的MQ,最终选择了RokcetMQ?
JVM
常见的垃圾回收算法
1.JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots
2.你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值
3.你平时工作用过的VM常用基本配置参数有哪些?
4.强引用、软引用、弱引用、虚引用分别是什么?
5.请谈谈你对oOM的认识
- -java.lang.StackOverflowError
- -java.lang.OutOfMemoryError: Java heap space
- -java.lang.OutOfMemoryError: GC overhead limit exceeded 超过开销限额
- java.lang.OutOfMemoryError: Direct buffer memory 直接缓冲存储器
- -java.lang.OutOfMemoryError: Metaspace 元空间
- java.lang.OutOfMemoryError: unable to create new native thread
- java.lang.OutOfMemoryError: Requested array size exceeds VM limit
6.GC回收算法和垃圾收集器的关系?另外,串行收集/并行收集/并发收集/STW是什么?
7.怎么查看服务器默认的垃圾收集器是那个?
生产上你是如何配置垃圾收集器的?谈谈你的理解?
8.G1垃圾收集器21
9.生产环境服务器变慢,诊断思路和性能评估谈谈?
10.假如生产环境出现CPu占用过高,请谈谈你的分析思路和定位(13
11.对于JDK自带的Jvm监控和性能分析工具用过哪些?一般你是怎么用的?
- jconsole.exe
- jps,类似Linux系统里面的Ps -ef命令
- jinfo
- jmap
- jstat
- jstack
12.JVM的字节码指令接触过吗?
JUC
1.请谈谈你对volatile的理解
2.cAS你知道吗?
3.原子类Atomiclnteger的ABA问题谈谈?原子更新引用知道吗?
4.我们知道ArrayList是线程不安全,请编码写一个不安全的案例并给出解决方案。
5.公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解﹖请手写一个自旋锁
6.CountDownLatch/CyclicBarrier/Semaphore使用过吗?
(17
7.阻塞队列知道吗?
(13
8.线程池用过吗? ThreadPoolExecutor谈谈你的理解?
27
9.线程池用过吗?生产上你如何设置合理参数(18
10.死锁编码及定位分析9
11.Java里面锁请谈谈你的理解,能说多少说多少(14