Skip to content

Latest commit

 

History

History
24 lines (20 loc) · 2.5 KB

interview.md

File metadata and controls

24 lines (20 loc) · 2.5 KB

这里会整理网上网友分享的一些面试体验,一边参照,一边自勉。

电话面试吗:

  1. java集合框架介绍(答得不够完美)
  2. 缓存框架对比(redis&memorycache)(答得不够完美)
  3. 缓存实现需要注意的问题(答得不够完美)
  4. CMS垃圾收集器,优点以及缺点(答得还行)
  5. 数据库的隔离级别,以及解决的问题(答得还行)
  6. 动态代理实现的原理(答得还行)
  7. 微服务框架和组件,服务治理组件原理介绍(答得还行)
  8. 如何解决缓存穿透(答得不够完美)
  9. 有没有使用队列,如何做到高可用(答得不够完美)
  10. 索引的类型,B+索引(答得还行)
  11. tcp三次握手,四次挥手(答得还行)

一面一上来问了我1个数据安全的问题,不是很懂 HTTP协议怎样保证安全呢?

我说,现在不是有个https协议吗,银行和企业一般是采用这种协议,s是security的意思。他说,这个协议和http协议有什么区别啊?我说,https采用安全套接字ssl,链接过程需要认证,握手次数多于http中TCP链接的建立,要保证安全就必须手续复杂点啊,这个和我们的日常生活差不多啊,便利都意味着牺牲一定的安全性,需要在他们之间找到一个平衡点,还有http采用的是80端口,https采用是443端口。然后这个问题就算过了。

情景:“我们这边正在做一个邮件安全的项目,因为用户可能不注意把信用卡或者储蓄卡号放在邮件里发送出去了,这样会给用户带来很大的潜在安全问题,我们的任务是发现邮件里的信用卡或者储蓄卡号,用替代。现在简化一下,给你一个string,你检测下是否有银行卡号,如有用替代,若木有,不做处理”

我一听,貌似不是很难,和面试官交流了下要求,银行卡号的特征是:每4个数字一组,一共4组,每组中间用-隔开。然后又问了下能不能用STL啊,他说可以。

这个问题主要是检测数字,对数字出现的次数计数,对“-”出现的次数计数,判断是否是信用卡号,若是则用*替代。还有就是考虑异常情况。写完给面试官讲了下,异常情况我只判断了空串返回,面试官提示了下,你再想想还有哪些可能不是空串也可以返回呢,想了下不知道啊,说可以提示下不,他说如果字符串长度小于16呢,哦哦对了,小于16就不可能有信用卡号了。