阿里java研发面经,三面共25个问题

废话不多说,直接上干货:

1、Java容器:List,Set,Map 2、Map的遍历方式 3、HashMap扩容为什么是扩为两倍? 4、Java线程同步机制(信号量,闭锁,栅栏) 5、对volatile的理解:常用于状态标记 6、八种基本数据类型的大小以及他们的封装类(顺带了解自动拆箱与装箱) 7、线程阻塞几种情况?如何自己实现阻塞队列? 8、Java垃圾回收 可达性分析->引用级别->二次标记(finalize方法)->垃圾收集 (4个)->回收策略(3个)->垃圾收集器(GMS、G1)。 可达性分析的根结点: 9、java内存模型 10、TCP/IP的理解 11、进程和线程的区别 12、http状态码含义 13、ThreadLocal(线程本地变量),如何实现一个本地缓存 14、JVM内存区哪里会出现溢出? 15、双亲委派模型的理解,怎样将两个全路径相同的类加载到内存中? 16、CMS收集器和G1收集器 17、TCP流量控制和拥塞控制 18、服务器处理一个http请求的过程 19、例举几个Mysql优化手段 20、数据库死锁定义,怎样避免死锁 21、spring的aop是什么?如何实现的 22、面向对象的设计原则 23、策略模式的实现 24、操作系统的内存管理的页面淘汰 ,介绍下LRU(最近最少使用 ) 25、B+树的特点与优势

经验分享 程序员 微信小程序 职场和发展