2022.9.9 顺丰一面
1、介绍MySQL索引(很笼统的问题,应该要从各个方面介绍,我只介绍了innodb的索引的底层数据结构)
2、spring在研发过程中承担的角色,解决了哪些问题(IOC和AOP,其实可以从JavaEE的三层架构来回答,spring在每一层都提供了解决方案,
- 表现层:spring MVC,
- 业务逻辑层:IOC,
- 数据访问层:spring的JDBCtemplate,
- AOP
- 整合其他框架
3、研发过程中用到了spring的哪些方面(只回答了IOC和AOP)
4、手写单例模式的实现(当时不会,下来学习了,结果后面的招银面试也面到了,所以面试查漏补缺很重要!!!)
5、手写排序算法(写了快排!随机基准数排序版本,写了一个change函数,交换两个数的位置)
6、问change函数可以不用第三个变量实现交换两个元素吗?(异或位运算)
7、synchronize关键字:
作用
加在静态方法上锁住的是什么对象(类对象)
面试官写代码,问我对不对
// 下面的代码能保证线程安全吗?? // 我回答的可以,因为锁住的是局部实例对象 static void test(){ Object o = new Object(); synchronize(o){ // ...业务代码 } }
// 库存 static int i = 100; // 会抛出异常吗 // 回答的会 static void test(){ Object o = new Object(); synchronize(o){ --i; if(i<0){ throw exception; } } }
static int i = 100; static Object o = new Object(); // 这样呢,能锁住对象o吗 // 回答的可以 static void test(){ synchronize(o){ --i; if(i<0){ throw exception; } } }#顺丰科技面试##顺丰科技##顺丰#