java程序员面试试题与解析(java高级工程师开放面试题集之二)(1)

临近年关,不少人蠢蠢欲动,有童鞋问我java后端面试会面试什么?

作为一个java后端老鸟,跌打滚爬多次被面试和面试别人,总结了一些经验,希望对大家有所帮助。

特别说明,仅仅针对工作两年以上的java后端开发。以开放性题目为主,没有标准答案。

上篇<java高级工程师开放面试题集<一>>

本次是第二篇:

6.缓存相关

如何设计实现LRU缓存?

Least Recently Used,最近最少使用缓存。

思路:

6.1.每个key 需要有value,最近的使用时间戳

6.2.面向对象思想,Node{key,value,timestamp}组成线程安全的链表ConcurrentLinkedQueue

7.设计相关

如何设计一个停车场系统?

思路:

7.1 user-case图 涉及的人:用户(普通用户/特权用户),车(小汽车/货车等),停车场普通管理员,停车场系统管理员,车位信息

7.2 功能: 用户停车导航,缴费,历史记录;车包含车牌,类型和用户关联;停车场普通管理员提供停车车位,导航和收费,车位的维护;停车场系统管理员停车场利用率,收费情况,维护费用,盈利报表等

7.3 关键点:评估系统的费用,硬件的费用。

8.安全相关

如何设计一个安全的api接口给第三方使用?

8.1 http和https 证书

8.2 防篡改 md5,sha1,sha256 签名

8.3 加密,对称加密des和非对称加密rsa

8.4 可以参考http://open.taobao.com/doc.htm?docId=73&docType=1 淘宝开发平台

9.linux相关

一个日志文件约为10亿行记录,如何错误日志?

grep 命令,sed命令

10.如何设计一个秒杀系统?

秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。

并发量分别在0~100,100~1000,1000~10000,10000~100000的设计方案,这些设计方案的不同点是什么?相同点是什么?

设计思路:

1.防火墙如何限流,黑板名单 ,可以参考:阿里云DDoS高防IP:https://www.aliyun.com/product/ddos?spm=5176.224200.selected.8.c83b6ed62UXXwQ

2.CND 可以参考阿里云CDN:https://www.aliyun.com/product/cdn?spm=5176.7946143.selected.6.4fe26d63MEHgHU

3. LB负载层 可以参考阿里云:https://www.aliyun.com/product/slb?spm=5176.7933777.selected.10.475d56f5Xu5uLk

4. 前端:页面静态化 禁止重复提交

5.后端:限流 削峰 异步处理 预处理

参考架构方案:

java程序员面试试题与解析(java高级工程师开放面试题集之二)(2)

今天先写道这里。

,