Redis

面试字节跳动Java一面问题基本都答对了,邮件通知被刷了,hr回复原因竟然是...

拈花ヽ惹草 提交于 2020-12-03 13:10:49
简介 面试是上海的Java岗位,周日一轮面试,自我感觉答的都还不错。 结果收到邮件面试结束了,说什么"你优秀的学识和能力给我们留下了深刻的印象!经过对你综合情况的仔细评估,并经过与岗位需求进行谨慎匹配和权衡之后, 非常遗憾,我们这次没有和你达成合作。但你的信息已经被录入到公司人才库"。意思就是挂了呗。 后来打电话问hr,说是我擅长的技术不是他们所需要的,???(黑人问号)。然后面试过程中,有一点奇怪的地方,面试前面试官跟我说我面的而这个岗位有点奇怪,他也没跟我说哪奇怪。 本文分享给需要面试刷题的朋友,另外本人也整理了一份资料包含了Java基础,数据结构,jvm,Redis,并发多线程,分布式,数据库等等,由于篇幅有限,以下只展示小部分面试题,有需要的朋友可以点击进群 795983544 领取,暗号CSDN 面试官的问题: 1.自我介绍 2.介绍印象深刻的项目,我介绍的是最新在做的项目,用到的技术,自己做的哪些模块? 回答:讲了用到的设计模式——模版方法,然后讲了模式方法的实现 3.因为最新的项目用到了,问了Spring Boot,Spring的区别? 回答:去配置化话,然后其他的基本一样,顺便说了一下Spring MVC的原理 4.Spring 的 bean是什么?我说了IOC、DI、Bean之间的关系 5.Hibernate 和 Mybatis的区别? 6

工作3年进阿里,取得P7职位,需要怎样的技术能力?(面试题附答案)

时光毁灭记忆、已成空白 提交于 2020-12-03 12:19:56
前言 好多人对阿里巴巴技术岗的体系结构及级别的技术要求设置不太清楚,想去面试也不知道面试什么级别的岗位。下面说说阿里P7技术体系是一个需要怎么样的技术能力。 先来看看P7需要的能力: 阿里P7(技术主管) 工作要求: 技能要求: 1、3年以上专职Java开发经验,擅长分布式系统设计和应用开发,熟悉分布式、缓存、消息、RPC、反射、类加载、JVM等底层运行机制,具备高并发系统的独立实现和性能调优经验,熟练掌握Spring boot/Spring cloud等框架,熟练掌握mybatis/ibatis的应用技巧; 2、熟练使用一种脚本语言, 推荐Linux shell或python; 加分项: 1.熟悉Devops工具, 熟练使用Docker; 2.喜欢并擅长使用各种工具解决问题和提高效率; 3.github有开源项目,star 50星+; 4.熟悉ELK技术栈,有过实际使用经验和解决疑难问题的经验; 5.具有高度责任心与自驱力,良好沟通协作、应急响应与处理问题的能力; 6.有安全行业背景经验; 另外还准备了2020年各大厂面试题, 需要的朋友可以点击: 点这个!点这个! 暗号:CSDN 技术四面面试技术题如下 一面(数据结构、jvm、锁等): 自我介绍和项目 HashMap底层如何实现? Hash一致算法? 说说HashMap和ConcurrentHashMap的区别?

太可怕了,开发5年的我与Alibaba面试官“大战”7回合,险胜拿到p7岗offer!

烂漫一生 提交于 2020-12-03 11:40:14
今年受大环境影响,整个互联网企业裁员的现象比往年严重多了,恰巧今年又是我的第一个“五年计划”截止的时间点,说什么也不能够耽搁了,所以早早准备的跳槽涨薪了。而这次的阿里之行也是路途坎坷,真的太为难我了,可以说是和面试官大战了7个回合,不过好在最后到底还是给了offer!我个人情况是5年Java后台经验,阿里定级P7的样子,下面是我的面试经历分享,希望能带来一些不一样的启发和帮助。 我与Alibaba面试官“大战”7回合,胜 Alibaba大战 第一轮 第一轮面试是电话面,以基础知识为主,前后大概2个小时左右,这个阶段我是比较紧张的。 先自我介绍,包含日常工作 多线程,ThreadLocal,问了父子线程怎么共享数据 interitableThreadLocals Lock和Sync的区别 AQS原理(执行过程源码,入队出队的细节,源码细节) CountDownLatch和CyclicBarrier的区别是什么源码级别 volatile从指令重排序,内存屏障 数据库,MySQL索引,执行计划、count1*区别、举例优化sql、MVCC和事务隔离级别的关系、间隙锁、行锁 JVM调优(可达性分析算法中根节点有哪些、cms和G1区别、怎样GC调优、怎样排查CPU彪高、内存彪高、逃逸分析) redis数据结构、跳跃表、redis qps能上多少,怎么知道的

在顾腾讯,腾讯面试有多难,熬夜狂啃复习笔记的我终于爬进了的腾讯的大楼

末鹿安然 提交于 2020-12-03 11:35:15
腾讯这两个字在我心中充满了压力 说起来,我相信大部分程序员对于腾讯这两个字都充满了向往,我也不例外。可是面对腾讯,我是付出了百分之三百的努力,7天狂啃了594PDF才爬进去的。 我先介绍一下我自己 本硕211毕业,不是很好吧,在大多数人的心中还是觉得可以的。可是面对鹅厂里面的“怪物”,刚毕业的我还是太鲁莽了。 面试经过真是“血与泪的融合” 一面 一面的时候面试官问的算法问题基本上我都是回答不出来的。所以一面只真就是“一面”,在“回去等通知中”草草了事了。 二面 心对腾讯着迷的我(PS.因为初中的时候喜欢打游戏,对游戏的设计以及开发非常感兴趣。这是我进鹅厂一个很重要的原因)还是一心向往腾讯,失败算什么?成功:你是我儿子。哈哈哈哈,在我复习一个月之后,依然往腾讯投了简历。依然是面了试,不过这次我又失败了。但是我从中看到了希望,自夸一下我这个最好的习惯就是总结失败的经验,这也为我三面腾讯,最终获得offer奠定了基础。 三面 在二面失败后,我花了1天总结失败的经验,花了7天狂啃PDF和资料(当时废寝忘食是真的可以形容我了)每天6点起床然后除了看书就是做面试题,终于在最后的面试中画上了最美的句号。话不多说,因为篇幅问题我只上传了第三面面经。分享-些我个人的学习文档, 需要获取得话麻烦一键三连之后看下图小助理的微信:(vip23373)添加即可免费获取到哦

2019 新浪 java面试笔试题 (含面试题解析)

跟風遠走 提交于 2020-12-03 06:26:11
   本人5年开发经验、18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴、今日头条、新浪等公司offer,岗位是Java后端开发,因为发展原因最终选择去了新浪,入职一年时间了,也成为了面试官,之前面试了很多家公司,感觉大部分公司考察的点都差不多,趁空闲时间,将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助。    下面提的问题可以看下你自己是否能回答出来,是否做好准备了,当然面试题准备是一方面,你本身的技能掌握是一方面,本身技能不过硬也会被刷下来,下面的图是进阶体系图可以参考下,还有个架构的体系图太大了,传不上来,里面有些备注是processon画的,图片也展示不出来,只能麻烦大家去网盘获取了 <font color=red siz=12> (PS:再次编辑,感谢大家的支持,受宠若惊。私信问我要这些面试答案的,希望交流的朋友很多,但是很多不能及时看到,没办法一个个发给大家,大家注意下中间的百度网盘链接,整理成了pdf分享下给大家,也包括我之前面试准备的题跟视频,也可以进群交流,这样沟通成本少点) </font> 鼠标右键点击,新标签页中打开图片 面试流程   先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面。就新浪而言,我共经历了4轮技术面,前两轮主要是问基础和项目实现,第3轮是交叉面,两个面试官,主要是问项目实现和拓展。第4轮是部门老大面

2019 拼多多java面试笔试题 (含面试题解析)

假装没事ソ 提交于 2020-12-03 04:15:55
本人3年开发经验、18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴、今日头条、拼多多等公司offer,岗位是Java后端开发,最终选择去了拼多多。 面试了很多家公司,感觉大部分公司考察的点都差不多,所以将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助。另外,目前在拼多多也做面试官的工作,身份从求职者变为面试官,看问题的很多角度也不一样,所以下文中既有求职者的视角,也有面试官的视角 <font color=red> (PS:感谢大家的支持,问我要完整面试题的希望交流指导的太多,没办法一个个发给大家,大家看下后面链接,整理成了pdf分享下给大家 </font> 面试流程   先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面。就拼多多而言,我共经历了4轮技术面,前两轮主要是问基础和项目实现,第3轮是交叉面,两个面试官,主要是问项目实现和拓展。第4轮是部门老大面,主要就问一些架构、技术和业务的理解、个人发展比较抽象的东西了。 要注意的点 简历一到两页为最佳,将项目经历写2-3个左右就差不多了,一定要写最有亮点的项目 工作经历的起始时间要写清楚,另外大公司都有背调,不要合并或省略一些比较短的工作经历,影响的可能不只是这次面试,而是之后可能都无法进这家公司 博客没什么好文章,github没好项目就不要写在简历中了 对于面试官的问题,想清楚再回答

水平触发LT和边沿触发ET,阻塞和非阻塞,IO多路复用及触发模式和阻塞模式

佐手、 提交于 2020-12-03 03:30:22
水平触发LT和边沿触发ET 内核中有一个与socket关联的读写缓冲区。 水平触发的意思是只要缓冲区不为空就触发可读事件,只要缓冲区不满就触发可写事件。 而边缘触发的意思是当缓冲区从满到不满的时间点触发一次可写事件,当缓冲区从空到非空的时间点触发一次可读事件。 水平触发只要缓冲区不空就持续触发可读事件,只要缓冲组不满就持续触发可写事件。 而边缘触发只在缓冲区从满到不满的时间点触发一次可写事件,后续不会再次触发可写事件,只在缓冲区从空到不空的时间点触发一次可读事件,后续不会再次触发可读事件。 所谓的边缘就是状态发生改变的点,从空到不空(可读),从满到不满(可写)。只在状态发生改变的时候触发一次的触发方式叫边缘触发,只要可读或者可写,就持续发送可读或者可写事件的触发模式叫水平触发。 水平触发可读, 水平触发可写, 边沿触发可读, 边沿触发可写, 阻塞模式和非阻塞 socket分为监听socket和连接socket。 阻塞和非阻塞主要是针对连接socket的读写来说的。即阻塞读写还是非阻塞读写。 监听socket阻塞和非阻塞效果都一样,水平触发和边缘触发效果也一样,数据固定,一次读取完毕。 连接socket如果是阻塞的模式,无数据可读或者无空间可写的情况下,都会阻塞当前的连接socket。 连接socket如果是非阻塞模式的,无论有没有数据可读,也无论有没有空间可写

redis-分段哈希(segment-hash)

故事扮演 提交于 2020-12-02 23:15:05
场景: 用户id: userId, 用户微博数量:weiboCount 实现方法: (1) 使用Redis字符串数据结构, userId为key, weiboCount作为Value (2) 使用Redis哈希结构,hashkey只有一个, key=“allUserWeiboCount”,field=userId,fieldValue= weiboCount (3) 使用Redis哈希结构, hashkey为多个, key=userId/100, field=userId%100, fieldValue= weiboCount 前两种比较容易理解,第三种方案解释一下:每个hashKey存放100个hash-kv,field=userId%100。 来源: oschina 链接: https://my.oschina.net/u/4408053/blog/4769787

Zookeeper使用场景

做~自己de王妃 提交于 2020-12-02 22:36:34
学 Zookeeper 就是为了用它,接下来我就介绍以下常用的使用场景。 1、数据发布/订阅 1.1、介绍 数据发布/订阅,顾名思义就是发布者将数据发布到 Zookeeper 上,然后供订阅者进行数据订阅和监控,进而实现动态改变和获取数据的目的。 1.2、示例 需求: 当我们部署集群时,需要重复修改每个节点的配置信息,节点少的时候还好,如果多了,并且需要修改频繁的时候就会很浪费时间。此时以数据库连接信息为例,连接信息包括:IP地址,端口号,用户名,密码,数据库名称。 解决: 为解决上述需求,我们可以引入 Zookeeper 作为配置中心,将所有的配置信息都发布到 Zookeeper 上,然后供集群所有节点进行数据订阅和监控,当需要修改配置时,只需修改 Zookeeper 上的数据,就可以触发所有节点进行修改。 设计思路如下: 创建一个永久节点(mysql)表示为数据库连接信息。 在 mysql 节点下创建多个子节点,表示IP地址,端口号,用户名,密码,数据库名称。 所有的客户端都获取 mysql 节点下的子节点信息,并注册监控事件。 当数据库连接信息有变化时,所有客户端都能被触发,重新执行步骤3。 2、Master选举 2.1、介绍 Master 选举就是从集群中选出一个所谓的 "老大",这里称之为 Master,Master 往往用来协调集群中其他系统单元

【Redis系列8】如何利用一个支持元素删除的布隆过滤器来解决缓存穿透问题

元气小坏坏 提交于 2020-12-02 16:04:29
如何利用一个支持元素删除的布隆过滤器来解决缓存穿透问题 前言 缓存雪崩 解决方案 缓存击穿 解决方案 缓存穿透 解决方案 布隆过滤器(Bloom Filter) 什么是布隆过滤器 位图(Bitmap) 哈希碰撞 布隆过滤器的2大特点 fpp 布隆过滤器的实现(Guava) 布隆过滤器的如何删除 带有计数器的布隆过滤器 总结 前言 在我们日常开发中,Redis使用场景最多的就是作为缓存和分布式锁等功能来使用,而其用作缓存最大的目的就是为了降低数据库访问。但是假如我们某些数据并不存在于Redis当中,那么请求还是会直接到达数据库,而一旦在同一时间大量缓存失效或者一个不存在缓存的请求被恶意访问,这些都会导致数据库压力骤增, 这就是本文要讲述的缓存穿透,缓存击穿和缓存雪崩的问题,而布隆过滤器正是缓存穿透的一种解决方案 。 缓存雪崩 缓存雪崩指的是Redis当中的大量缓存在同一时间全部失效,而假如恰巧这一段时间同时又有大量请求被发起,那么就会造成请求直接访问到数据库,可能会把数据库冲垮。 缓存雪崩一般形容的是缓存中没有而数据库中有的数据,而因为时间到期导致请求直达数据库。 解决方案 解决缓存雪崩的方法有很多: 1、加锁,保证单线程访问缓存。这样就不会有很多请求同时访问到数据库。 2、失效时间不要设置成一样。典型的就是初始化预热数据的时候