摘要 HashMap的原理也是大厂面试中经常会涉及的问题,同时也是工作中常用到的Java容器,本文主要通过对以下问题进行分析讲解,来帮助大家理解HashMap的原理. 1.HashMap添加一个键值对的过程是怎么样的? 2.为什么说HashMap不是线程安全的? 3.为什么要一起重写hashCode()和equal()方法? HashMap添加一个键值对的过程是怎么样的? 这是网上找的一张流程图,可以结合着步骤来看这个流程图,了解添加键值对的过程. 1.初始化table 判断table是否为空或…
PS:本文已收录到1.1K Star数开源学习指南--<大厂面试指北>,如果想要了解更多大厂面试相关的内容,了解更多可以看 http://notfound9.github.io/interviewGuide/#/docs/BATInterview [大厂面试02期]Redis过期key是怎么样清理的? 在Redis中,对于过期key的清理主要有惰性清除,定时清理,内存不够时清理三种方法,下面我们就来具体看看这三种清理方法. (1)惰性清除 在访问key时,如果发现key已经过期,那么会将key…
问题分析 首先幻读是什么? 根据MySQL文档上面的定义 The so-called phantom problem occurs within a transaction when the same query produces different sets of rows at different times. For example, if a SELECT is executed twice, but returns a row the second time that was not…
synchronized锁的原理也是大厂面试中经常会涉及的问题,本文主要通过对以下问题进行分析讲解,来帮助大家理解synchronized锁的原理. 1.synchronized锁是什么?锁的对象是什么? 2.偏向锁,轻量级锁,重量级锁的执行流程是怎样的? 3.为什么说是轻量级,重量级锁是不公平的? 4.重量级锁为什么需要自旋操作? 5.什么时候会发生锁升级,锁降级? 6.偏向锁,轻量锁,重量锁的适用场景,优缺点是什么? 1.synchronized锁是什么?锁的对象是什么? synchroni…
Redis持久化是面试中经常会问到的问题,这里主要通过对以下几个问题进行分析,帮助大家了解Redis持久化的实现原理. 1.Redis持久化是什么? 2.Redis持久化有哪些策略?各自的实现原理是怎么样的? 3.Redis的数据恢复策略是怎么样的? 4.Redis持久化策略该如何进行选择? 1.Redis持久化是什么? 因为Redis是一个内存数据库,数据保存在内存中,一旦发生关机或者重启,内存中的数据都会丢失,所以为了能够重启时恢复数据,Redis提供了持久化的机制,正常运行期间根据策略生成…
流程图 这是在网上找到的一张流程图,写的比较好,大家可以先看图,然后看详细阅读下面的各个步骤. 执行流程: 1.连接验证及解析 客户端与MySQL Server建立连接,发送语句给MySQL Server,接收到后会针对这条语句创建一个解析树,然后进行优化,(解析器知道语句是要执行什么,会评估使用各种索引的代价,然后去使用索引,以及调节表的连接顺序)然后调用innodb引擎的接口来执行语句. 2.写undo log innodb 引擎首先开启事务,对旧数据生成一个UPDATE的语句(如果是INS…
这是我总结的一个表格,是本文中涉及到的锁(因为篇幅有限就没有包括自增锁) 加锁范围 名称 用法 数据库级 全局读锁 执行Flush tables with read lock命令各整个库接加一个读锁,处于只读状态. 数据库级 让全局只读 执行set global readonly=true命令可以让全库只能读 表级别 表锁 lock tables test read让test表处于只读状态,所有事务都不能改表.lock tables test read让test表处于只读状态,所有事务都不能读表…
插个题外话,为了写好这篇文章内容,我自己前前后后花了一周的时间来总结完善,文章内容应该适用于每一个学习 Java 的朋友!我觉得这篇文章的很多东西也是我自己写给自己的,比如从大厂招聘要求中我们能看到哪些重要的能力,我们该朝什么方向努力? 共勉! 下面的文章的部分内容在我早期文章中出现过,老读者应该一眼就可以看出来了.嘿嘿!废话不多说,开始正文! 我觉得每一个技术人的梦想大概就是能够找一份大厂的 offer,我觉得这很正常,这并不是我们的饭后谈资而是每个技术人的追求.像阿里.腾讯.美团.字节跳动.…
前言 上次写了篇欢聚时代的面经,公众号后台有些读者反馈说看的意犹未尽,希望我尽快更新其他大厂的面经,这里先说声抱歉,不是我太懒,而是项目组刚好有个活动要赶在春节前上线,所以这几天经常加班,只能工作之余断断续续的编写,如果各位看管觉得本文排版看着有些凌乱的话,还望见谅! 背景 先说一下个人情况,我是17年毕业的,去年年末开始面试,算起来是四年半的工作经验,面试的公司大部分是广州这边的,有欢聚时代,字节,阿里的Lazada,腾讯,网易等公司,最后拿到了欢聚时代和网易的offer,除了欢聚时代还算顺利…
从一张图开始,谈一谈.NET Core和前后端技术的演进之路 邹溪源,李文强,来自长沙.NET技术社区 一张图 2019年3月10日,在长沙.NET 技术社区组织的技术沙龙<.NET Core和前后端分离那些事儿>上,我们曾经试图通过一系列抽丝剥茧的过程来引导大家在这条基于.NET Core的前后端分离有关的技术路线上持续发散,由于各种原因未能成功,因此,技术社区执行主席,李文强同学整理了一张图,并由溪源以专刊的形式来描述他所认为的技术演进之路.  这张图涉及到的知识点,涵盖了目前前后端技术近…
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西. 前言 还记得我上周说的重庆邮电研二的读者么? . 知道他拿了Offer之后我也很开心,我就想把它的面试经历和面试题分享出来,这样让大家也知道,目前实习的面试大概是怎么样子的. 很优秀的是,他每次面试都会自己做总结,我一说他就直接给到了我文档,优…
<HelloGitHub>第08期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 简介 最开始我只是想把自己在浏览GitHub过程中,发现的有意思.高质量.容易上手的项目收集起来,这样便于以后查找和学习.后来一想,如果给这些GitHub项目都加上简单的效果图和一些通俗易懂的中文介绍.应该能够帮助到我这样的新手激发兴趣去参与.学习这些优秀.好玩的开源项目. 所以,我就做了一个面向编程新手.热爱编程.对开源社区感兴趣 的人群的月刊,月刊的内容包括:各种编程语言的项目.…
流与集合    众所周知,日常开发与操作中涉及到集合的操作相当频繁,而java中对于集合的操作又是相当麻烦.这里你可能就有疑问了,我感觉平常开发的时候操作集合时不麻烦呀?那下面我们从一个例子说起. 计算从伦敦来的艺术家的人数 请注意这个问题例子在本篇博客中会经常提到,希望你能记住这个简单的例子 这个问题看起来相当的简单,那么使用for循环进行计算 int count = 0; for(Artist artist: allArtists){ if(artisst.isFrom("Lodon&quo…
谈一谈泛型 首先,泛型是C#2出现的.这也是C#2一个重要的新特性.泛型的好处之一就是在编译时执行更多的检查. 泛型类型和类型参数 ​ 泛型的两种形式:泛型类型( 包括类.接口.委托和结构 没有泛型枚举) 下面以Dictionary<TKey,TValue> 来为例,解释一下类型参数,类型实参(type argument),开放类型,封闭类型 上面的例子中, 类型参数是 TKey 和TValue. 在使用泛型类型或方法时,要用真实的类型代替,比如 Dictionary<string,in…
<HelloGitHub>第 08 期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 简介 最开始我只是想把自己在浏览GitHub过程中,发现的有意思.高质量.容易上手的项目收集起来,这样便于以后查找和学习.后来一想,如果给这些GitHub项目都加上简单的效果图和一些通俗易懂的中文介绍.应该能够帮助到我这样的新手激发兴趣去参与.学习这些优秀.好玩的开源项目. 所以,我就做了一个面向编程新手.热爱编程.对开源社区感兴趣 的人群的月刊,月刊的内容包括:各种编程语言的项…
  Elasticsearch天生就支持分布式部署,通过集群部署可以提高系统的可用性.本文重点谈一谈Elasticsearch的集群节点相关问题,搞清楚这些是进行Elasticsearch集群部署和拓扑结构设计的前提.关于如何配置集群的配置文件不会在本文中提及.(本文写作背景是Elasticsearch 2.3) 节点类型 1. 候选主节点(Master-eligible node)   一个节点启动后,就会使用Zen Discovery机制去寻找集群中的其他节点,并与之建立连接.集群中会从候选…
谈一谈iOS事件的产生和传递 1.事件的产生 发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中. UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常,先发送事件给应用程序的主窗口(keyWindow). 主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件,这也是整个事件处理过程的第一步 2.事件的传递 首先判断主窗口(keyWindow)自己是否能接受触摸事件 判断触摸点是否在自己身上 子控件数组中从后往前遍历子控…
介绍: InnoDB引擎是MySQL数据库的一个重要的存储引擎,和其他存储引擎相比,InnoDB引擎的优点是支持兼容ACID的事务(类似于PostgreSQL),以及参数完整性(有外键)等.现在Innobase实行双认证授权.MySQL5.5.5以后默认的存储引擎都是InnoDB引擎. 特点是: 1.具有较好的事务支持:支持4个事务隔离级别,支持多版本读 2.行级锁定:通过索引实现,全表扫描仍然会是表锁,注意间隙锁的影响 3.读写阻塞与事务隔离级别相关 4.具有非常高效的缓存特性:能缓存索引,也…
如题:谈一谈APP版本号问题 为什么要谈这个问题,周五晚上11~12点,被微信点名,说APP有错,无效的版本号,商城无法下单.我正在准备收拾东西,周末回老家,结果看到这样问题,菊花一紧.我擦,我刚加的版本号检查,在加版本号检查前,我还跟统计的妹妹仔细核对了近半年来所有的版本号,怎么还会有问题.赶紧查,原来结果,看到了一个g1_2.5.5_65,在我的一再追问下说这个就是2.5.5的版本号.然后咱们来说一说为什么要加版本号检查,然后再说,为什么会加出问题来,最后在讨论一下版本号规则.题外话跟大家探…
数据结构实验之串一:KMP简单应用 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 给定两个字符串string1和string2,判断string2是否为string1的子串. Input 输入包含多组数据,每组测试数据包含两行,第一行代表string1(长度小于1000000),第二行代表string2(长度小于1000000),string1和string2中保证…
上一次发博客已经是9月份的事了....这段时间公司的事实在是多,有写博客的时间都拿去看paper了..正好春节回来写点东西,也正好对这段时间做一个总结. 首先当然还是好好说点这段时间的主要工作:语义分割.semantic segmentation 应该是DL这几年快速发展的最重要的领域之一了,但可惜的事,在这方面大家走的并不是很远,还是有很多值得改进的地方,这当然是个很好的事情,特别是我这种想发paper弱渣..... 语义分割做的是什么事呢? 就是给你一张图,你要对其中的每个pixel做分类,…
***************************************声明*************************************** 个人在oracle路上的成长记录,当中以蓝自喻.分享成长中的情感.眼界与技术的变化与成长. 敏感信息均以英文形式取代,不会泄露不论什么企业机密,纯为技术分享. 创作灵感源于对自己的自省和记录.若能对刚刚起步的库友起到些许的帮助或共鸣,欣慰不已. 欢迎拍砖,如有关技术细节表述有错误之处,请您留言或邮件(hyldba@163.com)指明.…
1 客户端安全性处理方式? 1> 网络数据传输(敏感数据[账号\密码\消费数据\银行卡账号], 不能明文发送) 2> 协议的问题(自定义协议, 游戏代练) 3> 本地文件存储(游戏的存档) 4> 源代码 sip是什么? 1> SIP(Session Initiation Protocol),会话发起协议 2> SIP是建立VOIP连接的 IETF 标准,IETF是全球互联网最具权威的技术标准化组织 3> 所谓VOIP,就是网络电话,直接用互联网打电话,不用耗手机话…
最近几日理了理学过的很多oi知识...发现不知不觉就有很多的知识忘记了... 在聊聊并查集的时候顺便当作巩固吧.... 什么是并查集呢? ( Union Find Set ) 是一种用于处理分离集合的抽象数据结构类型. 具体一点: 当我们给出两个元素的一个无序对(a,b)时,需要快速合并a和b所在的集合,这期间需要反复查找出某元素所在的集合,“并”.“查”和“集”三字由此而来.也就是说,并查集的作用是动态地维护和处理集合元素之间的复杂关系. 在并查集中,n个不同的元素被分为若干组,每组是一个集合…
深度解析互联网大厂面试难题自定义@EnableXX系列   其实是一个@Import的设计技巧 创建注解@EnableXX(任何名称注解都行,只是这个名字好一些) XXConfiguration类不能使用@Component,不然Bean就立即注册了,达不到开关的目的 使用@EnableXX注解的时候,一定是与@Component或者@Configuration进行复合使用,否则开关本身无效,换句话说就是让别的@Component或者@Configuration把自己的@Bean带进去. 实体类…
大厂面试官问你META-INF/spring.factories要怎么实现自动扫描.自动装配?   很多程序员想面试进互联网大厂,但是也有很多人不知道进入大厂需要具备哪些条件,以及面试官会问哪些问题,这里今天就给大家分享一下,如果大厂面试官问你META-INF/spring.factories要怎么实现自动扫描.自动装配,你需要怎么回答? 程序员应聘面试经验技巧和注意事项你知道哪些? 1.基础很重要,不要生疏了. 2.要关注技术前沿. 3.小公司比较看重知识的广度,大公司更看重知识的深度. 4.…
大厂面试官最常问的@Configuration+@Bean(JDKConfig编程方式)   现在大部分的Spring项目都采用了基于注解的配置,采用了@Configuration 替换标签的做法.一行 简单的注解就可以解决很多事情.但是,其实每一个注解背后都有很多值得学习和思考的内容.这 些思考的点也是很多大厂面试官喜欢问的内容. @Configuration处理类:org.springframework.beans.factory.annotation.AnnotatedGenericBea…
❝ 文章每周持续更新,「三连」让更多人看到是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) ❞ 最近在知乎经常被邀请回答类似如何学习C++和C++后台开发应该具体储备哪些基础技能的问题. 本身我从事的的C++后台开发的工作,目前在鹅厂从事软件开发工作,所以写这篇文章,分享自己的C++后台开发学习路径和点过的技能树,希望能给想从事后台开发的同学一点参考,若能帮你少走些弯路就更好. 工欲善其事必先利其器,好的书籍能让学习事半功倍,所以每个技能点之后我会…
谈一谈C#的事件 C#中事件基于委托,要理解事件要先理解委托,如果觉得自己关于委托不是很了解可以看看我前面写委托的文章 事件基于委托,是一种功能受限的委托,为委托提供了一种发布/订阅机制 使用委托时,一般会出现两种角色:广播者(发布者)和订阅者,这是一个非常常见的模型 依然是用一个非常典型的例子来说明事件,举一个具体的例子就是微信公众号,广播者就是公众号管理员,订阅者就是普通用户. using System; class Program { static void Main(string[] a…
概述 **本人博客网站 **IT小神 www.itxiaoshen.com Nginx官网 最新版本为1.21.3 Nginx (engine x) 是一个开源的.高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,由俄罗斯的程序设计师IgorSysoev所开发,官方测试nginx能够支撑5万并发连接,并且cpu.内存等资源消耗却非常低,运行非常稳定,支持热部署,几乎可以实现7*24小时不间断运行. 可以说只要有网站或者后台服务的企业就会需要用到Nginx,其使…