|
| 1 | +# 阿里一面总结 |
| 2 | + |
| 3 | +一面大概 1 个小时(思考怎么回答 + 说废话的时间稍微长一点 -_-),面试官是阿里技术部的。 |
| 4 | + |
| 5 | +面试评价: |
| 6 | +1. 技术不错,如果后面的面试通过的话会有我的同事联系你; |
| 7 | +1. 几点不足: |
| 8 | + 1. 回答问题时不要有多余的字符,现在大概一个小时了,一般来说是不需要这么长时间的。 |
| 9 | + 1. 回答时不要拓展太多,不然如果深入问的话问不出来东西,会有些影响。 |
| 10 | + 1. 问到的问题不清楚的话不要猜,直接说明即可,不然会把面试引到错误的方向 |
| 11 | + |
| 12 | + |
| 13 | +面试没有自我介绍,直入正题谈项目。以下是面试过程中问到的问题(尽量回忆吧,因为有点激动有些问题可能会漏掉) |
| 14 | + |
| 15 | +面试题基本都是基础,不涉及 GC ,不涉及分布式等。 |
| 16 | + |
| 17 | +--- |
| 18 | + |
| 19 | +1. 谈谈你印象最深的一个项目。 |
| 20 | +1. JSP 和 Servlet 有什么区别? |
| 21 | +1. 既然 JSP 会转换成 Servlet, 那为什么要多这一步?直接用 Servlet 不行吗? |
| 22 | +1. 每一个 request 对应的 Servlet 是直接 new 出来还是只是用同一个? |
| 23 | +1. Session 相关的问题问了几个有点乱不太能想起来,这个问题是由之前的回答里面提到 Session 引出来的。 |
| 24 | +1. Java 集合框架的源码有没有看过? |
| 25 | +1. `ArrayList` 和 `linkedList` 底层是怎么实现的?各自的特点是什么? |
| 26 | +1. `HashMap` 有没有看过?他是怎么实现的? |
| 27 | +1. `HashMap` 是不是线程安全的? |
| 28 | +1. 如果我想要用线程安全的 `HashMap` 应该怎么做? |
| 29 | + 1. 使用 Wrapper,进行一下封装。 |
| 30 | + 1. 使用 `Sychronized` 关键字锁定 `HashMap` 对象。 |
| 31 | +1. `voliate` 有没有用过?他的原理是什么? |
| 32 | +1. 把 `bean` 交给 Spring 管理跟之前直接 `new` 的方式相比有什么好处? |
| 33 | +1. 编写完配置文件以后我们就可以直接使用 `bean` 了, Spring 是如何做到的? |
| 34 | + - 首先扫描配置文件,将 `bean` 放入 IOC 容器中,当使用的时候直接从 IOC 中取就可以了。 |
| 35 | +1. 配置文件扫描 Spring 是如何做到的? |
| 36 | + 1. 使用专门处理 XML 的库。 |
| 37 | +1. 你知道 Spring 处理 XML 用的是什么库吗? |
| 38 | +1. 你用过处理 XML 的库吗? |
| 39 | + - 处理 XML 的库我目前知道的有两种,一种是 java 语言自带的库,另一种是 `JDOM`,我在之前的一个系统中使用过 `JDOM` 来处理连接数据库的配置文件。 |
| 40 | +1. Spring 是如何获取对象的? |
| 41 | + - IOC 中获取类,然后反射调用构造器; |
| 42 | +1. 处了简历上提到的框架之外有没有用过其他的框架?他们之间有什么不同? |
| 43 | +1. 使用 Mybatis 与直接使用 JDBC 的方式相比有什么好处? |
| 44 | + 1. 最直观的感受就是代码量减少了很多。使用 JDBC 的话需要检查参数,注入参数,从记录转成 Java 对象,使用 Mybatis 的话这些都不用做了,就写一个接口然后在配置文件中写 SQL 即可。 |
| 45 | + 1. 第二点就是 JDBC 中的事务需要手动处理,而使用 Mybatis 的话他会自动就帮你做了。 |
| 46 | +1. 你知道 Mybatis 的事务是由什么框架实现的吗? |
| 47 | +1. 项目中有没有使用连接池,连接池的原理是什么? |
| 48 | +1. 什么样的数据库设计是符合要求的(从范式的角度)? |
| 49 | +1. 给你一个 SQL, 你的同事说这个 SQL 的效率有点低,你会怎么优化? |
| 50 | + 1. 首先考虑 SQL 本身是否能够优化,如果是多张表直接连接的话那是肯定能够优化的,我们可以把每张表的符合要求的数据通过 `where` 子句查询出来,然后进行连接。 |
| 51 | + 1. 如果是单张表的话 SQL 方面我暂时想不到什么优化的方法,如果要提高效率的话只能通过向表中添加索引的方式来优化。 |
| 52 | +1. 为什么添加索引能优化查询? |
| 53 | +1. 既然索引能优化查询,那我多添加几个索引可不可以?为什么? |
| 54 | +1. 如果多个字段设为一个索引 a,b,c,查询的时候只使用 a,b 来查询这样可以吗? |
| 55 | +1. 连接池中的连接是长连接还是短连接?为什么? |
| 56 | +1. 连接池中的连接是基于什么协议的连接?为什么? |
| 57 | +1. 怎样建立 TCP 连接,怎样断开 TCP 连接? |
| 58 | +1. 为什么要三次握手,为什么要四次挥手? |
| 59 | +1. 最近在看什么书?有没有学一些新技术? |
| 60 | + |
0 commit comments