一:Java模块:
- hashmap
- Arraylist和linkedlist
- voliate
- 线程池,如何根据CPU的核数来设计线程大小,如果是计算机密集型的呢,如果是IO密集型的呢?
- countdownlatch和CyclicBarrier底层实现原理
- 线程状态以及API怎么操作会发生这种转换
二:JVM模块
面试官说只问三个问题:
1、内存模型以及分区,需要详细到每个区放什么
2、堆里面的分区:Eden,survival ,老年代,各自的特点。
3、垃圾回收算法,什么时候回收。
三:分布式:
1、redis与memached选型,你更倾向于选择哪个,为什么?
2、分布式事务解决,你知道我们阿里巴巴是怎么做的吗?
3、消息队列比较和选型?
5、CAP
四:Spring框架必考
web框架面试问得最多的就是spring,这个阿里、百度、美团都问的贼多,都会问很多关于:IOC/AOP,spring事务、启动方式等。
五:Java虚拟机必考
JVM必考,问得最多:
Java虚拟机JVM的数据存储
Java内存区域,OOM
垃圾回收算法,垃圾收集器
类加载机制,类加载器
虚拟机字节码执行引擎(重写重载底层等)
Java内存模型JMM等
六:分布式缓存面试题目
架构设计这块都会问分布式缓存,redis、memcached的优劣,使用场景,命中率等问题,特别是redis问得非常多,比如:
redis的集群使用、回收算法、存储类型、分区、session共享等问题。
七:JVM调优
比如常见的工具:Jconsole,jProfile,VisualVM使用
线程监控
内存监控
垃圾监控
内存泄漏等
这些问题主要都是考察你对数据存储和回收是否足够了解。
关注公众号“IT老油条”免费领取资料:分布式架构、高可扩展、高性能、高并 发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、、Mycat、Netty、Kafka、Mysql 、Zookeeper、Tomcat、Docker、Dubbo、Nginx)。