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; } }}