@@ -8,7 +8,72 @@ Senior Java engineer interview exams in 2019
88
99### 面试题来自本人的程序员朋友面试经历,经本人和开源爱好者汇总
1010
11- * 呆萝卜
11+ * 拍拍贷
12+ * [ 使用HashMap的时候如何避免内存泄漏] ( readme/hashmap-memory-leak.md )
13+
14+ <hr />
15+
16+ * 虎扑体育
17+
18+ ``` text
19+ 一、选择题
20+
21+ 1. 以下算法中能恢复明文的加密算法有()
22+ A. BASE64
23+ B. RSA
24+ C. AES
25+ D. SHA256
26+ E. DES
27+ F. Blowfish
28+
29+ 答案(ABCEF)
30+ 解析
31+ A. BASE64属于一种编码方式,可以逆向编码,也就可以恢复明文 (可逆)
32+ B. RSA 由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的(非对称加密)
33+ 可以恢复明文 (可逆)
34+ C. AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高; (可逆)
35+ D. SHA256 是一种hash加密( 不可逆)
36+ E. DES (Data Encryption Standard) 对称加密 (可逆)
37+ F. Blowfish算法是一个64位分组及可变密钥长度的对称密钥分组密码算法 (可逆)
38+
39+ 结论:除了Hash加密算法不可逆,其它的对称加密和不对称加密还有字符编码算法都是可逆的算法。
40+ Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新
41+ 获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
42+ 常见的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1、SHA-256
43+
44+ 二、判断题
45+ 1. 如果两台主机的MAC地址相同,则无法互相通信()
46+ 答案: 未知
47+ 2. 在设计网站的登录功能的时候,为防止密码在传输过程中被非法窃取,可以通过MD5算法在浏览器端加密后传到服务器端。
48+ 服务器端通过把密码进行解密后与数据库中存储的密码进行比对一致则登录成功()
49+ 答案:错误
50+ 3. 一个进程中有多个线程,每个线程没有独立的地址空间()
51+ 答案:错误
52+ 4. MySQL的InnerDB和MyISAM引擎都支持事务()
53+ 答案:错误
54+ 5. 数据库索引可以提高增删改查等操作的速度()
55+ 答案:错误
56+ 6. 快速排序在平均情况下比冒泡排序快,不过在某些情况下冒泡排序可能比快速排序快()
57+ 答案:正确
58+
59+ 三、问答题
60+ 1、生成10个[100,200]的随机数(优先使用JDK8新特性)
61+
62+
63+ 2、将以下字符串按逗号分割成List,去除每个成员项首位空格,过滤空白项,合并重复项
64+ ,逆序排列。(优先使用JDK8新特性)
65+ String s = " z111,c888,n222,,,g000, t333,a999,c888 ,p000 ,z111 ";
66+
67+
68+ 3、一天有一个年轻人来到王老板的店里买了一件礼物这件礼物的成本是18元, 标价是21元。结果这个年轻人
69+ 掏出100元要买这件礼物。 王老板当时没有零钱,用100元向街坊换了100元的零钱,找给年轻人79元。但是街坊
70+ 发现那个100元是假钞,老板无奈还了街坊100元。现在问题是:王老板在这次交易中国呢到底损失了多少钱?
71+ 答案:答案不难,让读者自己体会😄
72+
73+ ```
74+ <hr />
75+
76+ * 呆萝卜(O2O电商App)
1277
1378 * [ 1万并发量的秒杀系统怎么实现] ( readme/seckill-architect.md )
1479
@@ -197,74 +262,13 @@ Senior Java engineer interview exams in 2019
197262 答案: finalize()方式是Object内置的方法,在JVM GC操作前会回调的。
198263
199264<hr />
200-
201- * 某知名互联网公司
202-
203- ``` text
204- 一、选择题
205-
206- 1. 以下算法中能恢复明文的加密算法有()
207- A. BASE64
208- B. RSA
209- C. AES
210- D. SHA256
211- E. DES
212- F. Blowfish
213-
214- 答案(ABCEF)
215- 解析
216- A. BASE64属于一种编码方式,可以逆向编码,也就可以恢复明文 (可逆)
217- B. RSA 由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的(非对称加密)
218- 可以恢复明文 (可逆)
219- C. AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高; (可逆)
220- D. SHA256 是一种hash加密( 不可逆)
221- E. DES (Data Encryption Standard) 对称加密 (可逆)
222- F. Blowfish算法是一个64位分组及可变密钥长度的对称密钥分组密码算法 (可逆)
223-
224- 结论:除了Hash加密算法不可逆,其它的对称加密和不对称加密还有字符编码算法都是可逆的算法。
225- Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新
226- 获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
227- 常见的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1、SHA-256
228-
229- 二、判断题
230- 1. 如果两台主机的MAC地址相同,则无法互相通信()
231- 答案: 未知
232- 2. 在设计网站的登录功能的时候,为防止密码在传输过程中被非法窃取,可以通过MD5算法在浏览器端加密后传到服务器端。
233- 服务器端通过把密码进行解密后与数据库中存储的密码进行比对一致则登录成功()
234- 答案:错误
235- 3. 一个进程中有多个线程,每个线程没有独立的地址空间()
236- 答案:错误
237- 4. MySQL的InnerDB和MyISAM引擎都支持事务()
238- 答案:错误
239- 5. 数据库索引可以提高增删改查等操作的速度()
240- 答案:错误
241- 6. 快速排序在平均情况下比冒泡排序快,不过在某些情况下冒泡排序可能比快速排序快()
242- 答案:正确
243-
244- 三、问答题
245- 1、生成10个[100,200]的随机数(优先使用JDK8新特性)
246-
247-
248- 2、将以下字符串按逗号分割成List,去除每个成员项首位空格,过滤空白项,合并重复项
249- ,逆序排列。(优先使用JDK8新特性)
250- String s = " z111,c888,n222,,,g000, t333,a999,c888 ,p000 ,z111 ";
251-
252-
253- 3、一天有一个年轻人来到王老板的店里买了一件礼物这件礼物的成本是18元, 标价是21元。结果这个年轻人
254- 掏出100元要买这件礼物。 王老板当时没有零钱,用100元向街坊换了100元的零钱,找给年轻人79元。但是街坊
255- 发现那个100元是假钞,老板无奈还了街坊100元。现在问题是:王老板在这次交易中国呢到底损失了多少钱?
256- 答案:答案不难,让读者自己体会😄
257-
258- ```
259265
260266* 上海票牛网(感觉问的问题是最难的公司)
261267
262268 * 1.[ Spring bean依赖注入的时候怎么解决bean之间的循环引用问题] ( https://www.cnblogs.com/bhlsheji/p/5208076.html )
263269
264270 * 2.如何自己去实现一个WEB框架,怎么实现类似于SpringMVC里的@RequestMapping ,用什么匹配算法速度最快
265271
266- * 拍拍贷
267- * [ 使用HashMap的时候如何避免内存泄漏] ( readme/hashmap-memory-leak.md )
268272
269273## 更多Java面试题
270274
0 commit comments