Java面试题集合

JDK 集合、BIO/NIO、annotation 等 虚拟机 内存模型、类加载原理 数据库 索引、事务、死锁 等 并发 并发优缺点、内存可见性(volatile)、锁、同步、线程池框架 网络 TCP/HTTP 常见设计模式 JDK ConcurrentHashMap如何提高并发度、NIO的原理(零拷贝、堆外内存),优缺点虚拟机 包冲突,类冲突的形成原理及解决办法(可能会引申JDK9的模块化设计)、TCCL的存在价值分布式 一致性哈希、RPC原理和设计(通信协议、序列化方式、超时机制等)、负载均衡、分布式缓存架构设计、分布式消息、分布式事务、paxos(这个可能只有在技术专业型很强的职位上会去问)数据库 数据库性能优化(慢sql、索引优化、大事务、内核参数调优),也可能会把一些工作中碰到的诡异场景抛出来问并发 非阻塞锁(CAS)、并发对编译器优化的影响、线程池调优、也肯会把工作中碰到的并发问题抛出来问技术趋势、docker、微服务等新技术发展历史、带来的福利 我是面试官我就把 Object的9个方法每个方法问一遍hashcode equals 聊到集合类 hashmap,接着就是 concurrenthashmap ,谈到并发,那就问问 多线程的那三个方法,然后聊聊并发相关的 各种锁啦,volatile关键字, 然后聊聊finalize方法,就又扯到了JVM,JVM又能问好久,聊到JVM就问问反射呗,引申出框架的东西,然后框架的原理说说吧;框架聊完了就到项目了; 如果一路都答得很顺利,这个人基本是靠谱的。 hashmap估计能问死很多人吧。1. hashcode跟equals2. hashmap的实现原理3. 如何扩容,为什么要扩容4. 1.6 1.7 1.8之间的区别5. 1.8用了树解决冲突,既然是树就有排序,那是怎么排序的6. 1.8为什么要换成树,什么是hash碰撞攻击7. concurrenthashmap原理8.concurrenthashmap在读写并发的时候,什么时候可见,什么时候不可见9.怎么实现一个简单lrumap 10.如果上面都答出来,那还可以问在一个高并发场景下面hashmap触发一次扩容导致rt爆长,请问有什么好的解决方案 String,StringBuffer,StringBuilder有什么不同?String和StringBuffer的实现?Volatile关键字作用?除了保证数据可见性,还有其他什么使用方式?JVM内存分布?JDK1.6,1.7,1.8有什么区别?ThreadLocal做什么的?如何使用?源码是如何实现的?get()方法?HashMap的实现?为什么HashMap扩容是2的幂次方?HashMap中计算hash值是如何实现的?为什么要重写hashCode和equals方法?为什么要一起重写?ConcurrentHashMap源码?JDK1.6,1.7,1.8中分别有什么不同?分布式程序调用链生产环境如何定位内存溢出?CPU使用率过高?Linux命令?Netty
原文地址:https://www.cnblogs.com/sunrunzhi/p/8655409.html