这里会整理网上网友分享的一些面试体验,一边参照,一边自勉。
- java集合框架介绍(答得不够完美)
- 缓存框架对比(redis&memorycache)(答得不够完美)
- 缓存实现需要注意的问题(答得不够完美)
- CMS垃圾收集器,优点以及缺点(答得还行)
- 数据库的隔离级别,以及解决的问题(答得还行)
- 动态代理实现的原理(答得还行)
- 微服务框架和组件,服务治理组件原理介绍(答得还行)
- 如何解决缓存穿透(答得不够完美)
- 有没有使用队列,如何做到高可用(答得不够完美)
- 索引的类型,B+索引(答得还行)
- tcp三次握手,四次挥手(答得还行)
一面一上来问了我1个数据安全的问题,不是很懂 HTTP协议怎样保证安全呢?
我说,现在不是有个https协议吗,银行和企业一般是采用这种协议,s是security的意思。他说,这个协议和http协议有什么区别啊?我说,https采用安全套接字ssl,链接过程需要认证,握手次数多于http中TCP链接的建立,要保证安全就必须手续复杂点啊,这个和我们的日常生活差不多啊,便利都意味着牺牲一定的安全性,需要在他们之间找到一个平衡点,还有http采用的是80端口,https采用是443端口。然后这个问题就算过了。
情景:“我们这边正在做一个邮件安全的项目,因为用户可能不注意把信用卡或者储蓄卡号放在邮件里发送出去了,这样会给用户带来很大的潜在安全问题,我们的任务是发现邮件里的信用卡或者储蓄卡号,用替代。现在简化一下,给你一个string,你检测下是否有银行卡号,如有用替代,若木有,不做处理”
我一听,貌似不是很难,和面试官交流了下要求,银行卡号的特征是:每4个数字一组,一共4组,每组中间用-隔开。然后又问了下能不能用STL啊,他说可以。
这个问题主要是检测数字,对数字出现的次数计数,对“-”出现的次数计数,判断是否是信用卡号,若是则用*替代。还有就是考虑异常情况。写完给面试官讲了下,异常情况我只判断了空串返回,面试官提示了下,你再想想还有哪些可能不是空串也可以返回呢,想了下不知道啊,说可以提示下不,他说如果字符串长度小于16呢,哦哦对了,小于16就不可能有信用卡号了。