阿里巴巴第一次面试20200221(提前批)
看中基础,因为简历都是深度学习相关,没有成熟的Java项目经历
1、自我介绍
2、SpringMVC 项目经历(我大三实习做的项目,早就忘记了,准备的MVC结构内容没问)
3、MySql如何查看表用的什么引擎 Mysql->show engines
4、数据库连接池有什么作用(类比线程池,增加连接复用,同一资源管理,降低时间空间开销)
1.资源重用,避免了数据库连接频繁建立、关闭的开销 2.更快的系统响应速度,直接从连接池中获取连接,响应速度加快 3.控制资源的使用。如果不使用连接池,每次访问数据库都需要创建一个连接,这样系统的稳定性受系统连接需 求影响很大,很容易产生资源浪费和高负载异常。
5、场景题:公司要为一个历史日志文件做一个数据库表格,用Innodb还是MyIsum好?
如果联合索引a属性有100情况,b属性有10000情况,主键索引应该建在那个上面?(引导了我一下,建在
b上好)
6、MyIsum和InnodB引擎的区别(从索引、事务扯到了B+树,分析了文件结构.indb .MyI .Myd)
7、常用的集合类(扯到了hashMap的数据结构,数组+链表+红黑树)
8、HashMap源码 put方法是如何实现的(equals和HashCode)
9、红黑树说一下(平衡二叉树,解决退化成链表的问题,降低树的高度,减少查询的复杂度)
10、java特性(面向对象、封装继承多态)
11、说一说多态(举了接口的例子,父类引用指向子类对象)
12、JVM虚拟机分区,哪些线程共享,哪些线程独享
13、常用的垃圾回收器,G1会不会导致Stop the World(准备的垃圾回收算法没问)
14、如果多个线程访问static变量会怎样(不能保证原子性,多个线程间数据不一致,想要同步加schronized(XXX.class){})
15、HashMap,ConcurrentHashMap,HashTable区别(谈到了ConcurrentHashMap分段--16锁定,HashTable整体锁定,线程处理较慢)
16、什么时候发生full gc(集合类失效引用没有及时清除,数据库、IO操作连接等未及时关闭等)
#阿里巴巴##校招##Java工程师##面经#