Java高级工程师面试经验

JVM相关

①类加载过程
②类加载器,双亲委派机制,怎么打破双亲委派机制
③JVM内存模型;栈,堆内部的内存结构;新生代老年代的回收过程
④各种垃圾收集器的比较;CMS和G1的详细回收过程,优缺点
⑤JVM调优参数,常用的命令(jmap,jstack等),JVM可视化工具
⑥ClassLoader和LoadClass区别
⑦JVM优化,排查的过程

集合相关

①常用的List、Set、Map
②ArrayList和LinkedList区别,优缺点,线程安全性,扩容,ArrayList可变长度原理
有没有线程安全的list(CopyOnWriteArrayList)
③HashMap底层原理,1.7和1.8的区别;线程为什么不安全,举两个例子;计算hash的方法。为什么用红黑树,红黑树的性质,对红黑树旋转变色
④HashMap和Hashtable的区别,Hashtable的缺点;ConcurrentHashMap的1.7和1.8底层实现,扩容原理
⑤HashSet,TreeSet

多线程相关

①创建线程的方式(4种)
②线程状态(5种) 各种状态的切换(sleep,wait,join等)
③线程池参数,过程,手动实现线程池思路,各种阻塞队列的对比
④JUC包下,闭锁(CountDownLatch等),各种原子类,集合(CopyOnWriteArrayList,ConcurrentHashMap)原理
⑤volitile怎么保证可见性和有序性的;JMM内存模型;总线锁和缓存锁;MESI缓存一致性协议
⑥场景,比如有三个线程,实现三个线程顺序执行10次(wait/notity,Condition的await/signal,CountDownLatch的await控制);实现多线程累加数据库里面三百万的值

锁相关

①sychronized和Lock的区别
②Sychronized锁升级过程
③Lock锁原理,AQS,CLH,Condition
④读写锁

反射相关

①加载类的方式(4种)
②反射的实现,使用
③源码应用 Spring

Redis相关

①Redis的数据类型,各种数据类型的底层实现
②Redis的事务
③Redis的持久化
④缓存,更新数据库的过程,怎么处理缓存
⑤分布式锁,实现原理
⑥Redis集群
⑦缓存雪崩,缓存穿透,热点key的发现方式

Mysql相关

①索引原理(B+树),结构,索引失效
②主键索引,非主键索引
③覆盖索引,回表
④事务的4个特性
⑤隔离级别,怎么解决脏读,幻读
⑥Sql语句,优化,explain
⑦Mysql集群,主从的数据同步问题

RabbitMq

①原理
②延迟队列
③用mq的好处

Spring

①IOC,AOP
②代理模式,动态代理的类别
③SpringBoot的starter组件原理,自动装配的原理

SpringCloud

①CAP定理
②Eureka,zookeeper,nacos的比较,各种优缺点
③Rpc和http的区别
④Openfeign的实现原理
⑤Dubbo的调用过程,实现原理
⑥Dubbo、ribbon的负载均衡原理
⑦断路器的原理
⑧分布式事务 2pc,3pc
⑨配置中心,config或者nacos底层实现,热部署
⑩微服务,SOA

设计模式

①单例模式
②工厂模式,简单工厂,工厂方法模式
③装饰者模式
④代理模式,静态代理和动态代理(jdk和cglib)
⑤模板模式

其他

①Http和Https区别
②Http和Https各自的调用过程
③七层协议
④三次握手四次挥手
⑤https加密过程
⑥String,StringBuilder,StringBuffer

如果转载请注明来源

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页