招银网络科技7月8日 视频面

面了30分钟
1 自我介绍
2 看你项目用到了redis,介绍一下redis
3 介绍一下redis雪崩,缓存穿透
我说缓存穿透可以用布隆过滤器解决
4 介绍一下布隆过滤器
5  怎么解决数据库和缓存的不一致问题
我说 缓存只做失效,不做更新
失效就是应用程序先从cache取数据,没有得到,则从数据库中取数据,成功后,放到缓存中。
更新就是先把数据存到数据库中,成功后,再让缓存失效。(这个回答是错的)
应该回答:
1、问题描述
在高并发的情况下,如果当删除完缓存的时候,这时去更新数据库,但还没有更新完,另外一个请求来查询数据,发现缓存里没有,就去数据库里查,还是以上面商品库存为例,如果数据库中产品的库存是100,那么查询到的库存是100,然后插入缓存,插入完缓存后,原来那个更新数据库的线程把数据库更新为了99,导致数据库与缓存不一致的情况。
2、解决方案
遇到这种情况,可以用队列的去解决这个问,创建几个队列,如20个,根据商品的ID去做hash值,然后对队列个数取摸,当有数据更新请求时,先把它丢到队列里去,当更新完后在从队列里去除,如果在更新的过程中,遇到以上场景,先去缓存里看下有没有数据,如果没有,可以先去队列里看是否有相同商品ID在做更新,如果有也把查询的请求发送到队列里去,然后同步等待缓存更新完成。
这里有一个优化点,如果发现队列里有一个查询请求了,那么就不要放新的查询操作进去了,用一个while(true)循环去查询缓存,循环个200MS左右,如果缓存里还没有则直接取数据库的旧数据,一般情况下是可以取到的。

6 看你简历熟悉数据库,char和varchar什么区别?(不会)
自己下去查的
区别一,定长和变长
char 表示定长,长度固定,varchar表示变长,即长度可变。char如果插入的长度小于定义长度时,则用空格填充;varchar小于定义长度时,还是按实际长度存储,插入多长就存多长。
因为其长度固定,char的存取速度还是要比varchar要快得多,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以会占据多余的空间,可谓是以空间换取时间效率。varchar则刚好相反,以时间换空间。
区别之二,存储的容量不同
对 char 来说,最多能存放的字符个数 255,和编码无关。
而 varchar 呢,最多能存放 65532 个字符。varchar的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是 65,532字节。
7 字符串在class文件中是用什么格式存储的?
我说是二进制,面试官说当然是二进制,然后呢?(连着两个不会。。
8 介绍一下类加载器
9 介绍一下双亲委派模型,优点?
10 有没有排查过内存泄漏,说一下具体步骤

1 确定频繁Full GC现象:通过“虚拟机进程状况工具:jps”找出正在运行的虚拟机进程id,再利用“虚拟机统计信息监视工具:jstat”监视虚拟机各种运行状态信息,发现fullGC频繁,确认内存泄露
2 找出导致频繁Full GC的原因:使用“Java内存影像工具:jmap”生成堆转储快照;使用Java heap分析工具(如MAT),找出内存占用超出预期的嫌疑对象
3.根据情况,分析嫌疑对象和其他对象的引用关系。
4.分析程序的源代码,找出嫌疑对象数量过多的原因。

11算法题 统计字符串出现次数
最后反问 :自己还有什么改进的地方?
多了解整体的开发流程,你redis掌握的还行,但是我们平常做开发,用到的东西是方方面面的,而不是了解几个点就行了,你说你熟悉数据库,char和varchar要熟悉,还有我们做中文编码,对字符串的存储格式要了解。
总体感觉凉了
发现了一个和我相同面试官的楼主,问题相似度太高了,所以说刷面经真的很有必要。。。
#招银网络提前批面试##招银网络##校招##Java工程师##面经#
全部评论
第七题: CONSTANT_String_info结构 CONSTANT_String_info用于表示java.lang.String类型的常量对象,格式如下: CONSTANT_String_info {      u1 tag;      u2 string_index;  } 1 2 3 4 CONSTANT_String_info结构各项的说明如下: tag CONSTANT_String_info结构的tag项的值为CONSTANT_String(8)。 string_index string_index项的值必须是对常量池的有效索引,常量池在该索引处的项必须是CONSTANT_Utf8_info 结构,表示一组Unicode码点序列,这组Unicode码点序列最终会被初始化为一个String对象。 ———————————————— 版权声明:本文为CSDN博主「tyyj90」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/tyyj90/article/details/78472986
2 回复 分享
发布于 2020-07-08 19:29
我的面试官狂问框架,框架知识哪能记住那么多…基础都不怎么问
1 回复 分享
发布于 2020-07-08 11:00
杭州的吗
点赞 回复 分享
发布于 2020-07-08 11:02
没写代码吗
点赞 回复 分享
发布于 2020-07-08 11:25
都没有反问环节,直接结束了,面了33min。
点赞 回复 分享
发布于 2020-07-08 11:33
怎么排查内存泄漏啊
点赞 回复 分享
发布于 2020-07-08 11:39
让我手撕代码了,一个是统计字符串一个是数据库的,还给了一个测试场景,还问了一些有关网络的东西,我是昨天下午视频面试的
点赞 回复 分享
发布于 2020-07-08 12:02
楼主base哪
点赞 回复 分享
发布于 2020-07-08 12:15
你这面经整理的真长😂前端我就看见俩视频面经,头大
点赞 回复 分享
发布于 2020-07-08 17:16

相关推荐

11-24 11:23
门头沟学院 C++
点赞 评论 收藏
分享
微风不断:兄弟,你把四旋翼都做出来了那个挺难的吧
点赞 评论 收藏
分享
7 37 评论
分享
牛客网
牛客企业服务