Skip to content

Commit 229c25f

Browse files
committed
面试:阿里一面总结
1 parent f3695f9 commit 229c25f

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
```
1010
.
1111
|-- interview
12+
| |-- 阿里一面总结.md
1213
| |-- 岗位要求总结及待学习技术汇总.md
1314
| |-- 面试相关知识总结.md
1415
| `-- 面试题目分类及举例.md

interview/阿里一面总结.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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

Comments
 (0)