面试
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
面试官:给我说一下 Spring MVC 拦截器的原理?
前言SpringMVC是目前主流的Web MVC框架之一。拦截器是每个Web框架必备的功能,也是个老生常谈的主题了。本文将分析SpringMVC的拦截器功能是如何设计的,让读者了解该功能设计的原理。重要接口及类介绍1. HandlerExecutionChain类由HandlerMethod和Interceptor集合组成的类,会被HandlerMapping接口的getHandler方法获取。2. HandlerInterceptor接口SpringMVC拦截器基础转载 2020-10-26 17:13:09 · 3235 阅读 · 0 评论 -
华为社招技术二面,总结复盘
一、华为OD简介首先来解释一下什么是华为OD面试,OD一般是指的是华为的“外包”公司,比如像德科这种。网上其实有很多人都吐槽过这个招聘模式,因为招进去的人不直接是华为内部的人,挂在德科名下或其他,工作地点大部分都是在华为公司,虽然明面上同薪同酬,福利奖金与华为内部员工一致,但其实差很多,尤其是待遇和期权上面。之前,成都华为的招聘主管和我聊的是虽然是外包,但是每年可以从外包公司中选择前25%的人进入华为,选择标准目前不清楚,但肯定的是实力越强越容易突出。这个外包进内包的概念是由华为的一位老总提出的转载 2020-10-14 17:33:17 · 9787 阅读 · 1 评论 -
面试官:说说 Java 中的 Unsafe 和 CAS
Unsafe简单讲一下这个类。Java无法直接访问底层操作系统,而是通过本地(native)方法来访问。不过尽管如此,JVM还是开了一个后门,JDK中有一个类Unsafe,它提供了硬件级别的原子操作。这个类尽管里面的方法都是public的,但是并没有办法使用它们,JDK API文档也没有提供任何关于这个类的方法的解释。总而言之,对于Unsafe类的使用都是受限制的,只有授信的代码才能获得该类的实例,当然JDK库里面的类是可以随意使用的。从第一行的描述可以了解到Unsafe提供了硬件级别的操作,比转载 2020-09-03 16:38:54 · 432 阅读 · 0 评论 -
字节一面,被连问 MySQL 索引,脸都问绿了。。。
什么是索引?当我们使用汉语字典查找某个字时,我们会先通过拼音目录查到那个字所在的页码,然后直接翻到字典的那一页,找到我们要查的字,通过拼音目录查找比我们拿起字典从头一页一页翻找要快的多,数据库索引也一样,索引就像书的目录,通过索引能极大提高数据查询的效率。索引的实现方式在数据库中,常见的索引实现方式有哈希表、有序数组、搜索树 哈希表哈希表是通过键值对(key-value)存储数据的索引实现方式,可以将哈希表想象成是一个数组,将索引通过哈希函数计算得到该行数据在数组中的位置,然后将数据存到数转载 2020-09-03 13:14:30 · 459 阅读 · 0 评论 -
阿里三面:你的日志采集系统是怎么做的?用了那些高大上的技术呢?
概述日志从最初面向人类演变到现在的面向机器发生了巨大的变化。最初的日志主要的消费者是软件工程师,他们通过读取日志来排查问题,如今,大量机器日夜处理日志数据以生成可读性的报告以此来帮助人类做出决策。在这个转变的过程中,日志采集Agent在其中扮演着重要的角色。作为一个日志采集的Agent简单来看其实就是一个将数据从源端投递到目的端的程序,通常目的端是一个具备数据订阅功能的集中存储,这么做的目的其实是为了将日志分析和日志存储解耦,同一份日志可能会有不同的消费者感兴趣,获取到日志后所处理的方式也会有所不同转载 2020-08-26 15:22:38 · 399 阅读 · 0 评论 -
面试常考的树,我这样讲给你听!
我们今天先来看,什么是“树”。树是由顶点和边组成的且不存在环的数据结构。作为一个应用非常广的数据结构,不仅在工作中常用,在面试中也非常常考。一是因为树的结构天然决定了它和递归联系紧密,很多树相关的算法题都非常适合用递归来解;二是因为它的难度介于链表和图之间,非常适合在 45 分钟的面试里进行考察,所以一场面试中遇到两三轮问树都是再正常不过的了。本文先来讲树的基础内容,分为以下小节,每个小节开头都会有思维导图和对应的Leetcode算法题哟~ 简介 金融里的二叉树 .转载 2020-08-26 15:18:03 · 360 阅读 · 0 评论 -
面试官:为什么在系统中不推荐双写?
引言某日,阿雄跑去面试!于是有如下情形面试官:"阿雄是吧,做做自我介绍!"阿 雄:"我叫阿雄,来自某a国际电商公司!"面试官:"我看你项目里用了elasticsearch,你是怎么同步数据的呢?"阿 雄:"在代码里写入数据库的时候,同时再写入elasticsearch!"面试官:"那你如何保证写入数据库,和写入elasticsearch原子性问题呢?万一写入数据库成功了,写入elasticsearch失败了怎么处理?"阿 雄:"我还是回去等通知吧!"OK,以上情形纯属虚构,如...转载 2020-08-25 19:26:49 · 494 阅读 · 0 评论 -
记一次阿里云的面试,止步第三轮,可惜!
想去阿里的同学可以过来看看了,我经历过一次阿里的面试,怪自己水平有限,止步于第三轮面试。从深夜的一次电话面试开始说起具体时间我记不太清了,只记得是在一个工作日跟一位HR约了晚上电话面试。本打算早点忙完回家做准备的,结果正好赶上那天加班,所以下班稍微晚了一点,心里暗暗窃喜,幸好今天没打电话过来,要不然还没时间接电话。悲剧的是在离家还有几分钟路程的时候电话打过来了,没办法就硬着头皮接了。说来也傻,其实当时跟人说明情况,让人家等个几分钟应该也是可以理解的吧。就这样,我大冬天的找了一个风小的墙角猫在那里开始转载 2020-08-24 10:18:39 · 1806 阅读 · 0 评论 -
面试官问:上亿数据量下,Kafka是如何优化JVM GC问题的?
大家都知道Kafka是一个高吞吐的消息队列,是大数据场景首选的消息队列,这种场景就意味着发送单位时间消息的量会特别的大,那既然如此巨大的数据量,kafka是如何支撑起如此庞大的数据量的分发的呢?今天我们从kafka架构以如何优化GC两个方面讲解kafka架构既然要说kafka是如何通过内存缓冲池设计来优化JVM的GC问题,那么,如果不清楚kafka 的架构设计,又怎么更好的调优呢?起码的我们要知道基础的才能往更好的出发呀,对把先来看技术名词 Topic:用于划分Message的逻辑.转载 2020-08-22 11:16:39 · 515 阅读 · 0 评论 -
面试:如何从 100 亿 URL 中找出相同的 URL?
题目描述给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。请找出 a、b 两个文件共同的 URL。“推荐一个艿艿写的 6000+ Star 的 SpringBoot + SpringCloud + Dubbo 教程的仓库:https://github.com/YunaiV/SpringBoot-Labs解答思路每个 URL 占 64B,那么 50 亿个 URL占用的空间大小约为 320GB。“5, 000, 000, 000 * 64转载 2020-08-18 15:42:03 · 763 阅读 · 0 评论 -
面试必问:常用的加密算法有哪些?
加密算法我们整体可以分为:可逆加密和不可逆加密,可逆加密又可以分为:对称加密和非对称加密。一、不可逆加密常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和SHA-512,其中SHA-224、SHA-256、SHA-384,和SHA-512我们可以统称为SHA2加密算法,SHA加密算法的安全性要比MD5更高,而SHA2加密算法比SHA1的要高。其中SHA后面的数字表示的是加密后的字符串长度,SHA1默认会产生一个160位的信息摘要。不可逆加密算.转载 2020-08-14 21:33:53 · 3425 阅读 · 1 评论 -
支付宝二面:Mybatis 接口 Mapper 内的方法为啥不能重载吗?我直接懵逼了。。。
动态代理的功能:通过拦截器方法回调,对目标target方法进行增强。言外之意就是为了增强目标target方法。上面这句话没错,但也不要认为它就是真理,殊不知,动态代理还有投鞭断流的霸权,连目标target都不要的科幻模式。注:本文默认认为,读者对动态代理的原理是理解的,如果不明白target的含义,难以看懂本篇文章,建议先理解动态代理。1. 自定义JDK动态代理之投鞭断流实现自动映射器Mapper首先定义一个pojo。publicclassUser{privateInte...转载 2020-08-14 21:25:58 · 257 阅读 · 0 评论 -
面试官问:为什么 Java 线程没有Running状态?我懵了
Java虚拟机层面所暴露给我们的状态,与操作系统底层的线程状态是两个不同层面的事。具体而言,这里说的 Java 线程状态均来自于 Thread 类下的 State 这一内部枚举类中所定义的状态:什么是 RUNNABLE?直接看它的 Javadoc 中的说明:“一个在 JVM 中执行的线程处于这一状态中。(A threadexecutingin the Java virtual machine is in this state.)而传统的进(线)程状态一般划分如下:“注...转载 2020-08-13 10:54:05 · 1025 阅读 · 1 评论 -
面试:你知道 Java 中的回调机制吗?
调用和回调机制在一个应用系统中, 无论使用何种语言开发, 必然存在模块之间的调用, 调用的方式分为几种:1. 同步调用同步调用是最基本并且最简单的一种调用方式, 类 A 的方法 a() 调用类 B 的方法 b(), 一直等待 b() 方法执行完毕, a() 方法继续往下走. 这种调用方式适用于方法 b() 执行时间不长的情况, 因为 b() 方法执行时间一长或者直接阻塞的话, a() 方法的余下代码是无法执行下去的, 这样会造成整个流程的阻塞.2. 异步调用异步调用是为了解决同步转载 2020-08-11 16:40:16 · 154 阅读 · 0 评论 -
两年经验斩获蚂蚁/头条/PingCAP Offer,牛逼哈!
“分享一篇面经,作者拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer。下面是该作者的经验分享。去年(18年)年底想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer。想着可以总结一下经验,分享一下自己这一段”骑驴找马”过的心路历程。当然,一家之言,难免粗浅,如有不妥,敬请指正。全文有点长,假如只对一家公司感兴趣的话可以直接跳过去: 准备过程 面试: PingCAP 面试: 蚂蚁转载 2020-08-06 10:50:12 · 1198 阅读 · 1 评论 -
面试官:知道时间轮算法吗?在Netty和Kafka中如何应用的?
最近看 Kafka 看到了时间轮算法,记得以前看 Netty 也看到过这玩意,没太过关注。今天就来看看时间轮到底是什么东西。为什么要用时间轮算法来实现延迟操作?延时操作 Java 不是提供了 Timer 么?还有 DelayQueue 配合线程池或者 ScheduledThreadPool 不香吗?我们先来简单看看 Timer、DelayQueue 和 ScheduledThreadPool 的相关实现,看看它们是如何实现延时任务的,源码之下无秘密。再来剖析下为何 Netty 和 Kafka转载 2020-08-06 10:46:30 · 318 阅读 · 0 评论 -
面试:一个 Java 字符串到底有多少个字符?
依照Java的文档, Java中的字符内部是以UTF-16编码方式表示的,最小值是\u0000(0),最大值是\uffff(65535), 也就是一个字符以2个字节来表示,难道Java最多只能表示 65535个字符?“char: The char data type is a single 16-bit Unicode character. It has a minimum value of '\u0000' (or 0) and a maximum value of '\uffff' (or 6..转载 2020-08-06 10:30:09 · 255 阅读 · 0 评论 -
面试官:你能告诉我一个请求过来,Spring MVC 是如何找到正确的 Controller 的?
前言SpringMVC是目前主流的Web MVC框架之一。我们使用浏览器通过地址 http://ip:port/contextPath/path进行访问,SpringMVC是如何得知用户到底是访问哪个Controller中的方法,这期间到底发生了什么。本文将分析SpringMVC是如何处理请求与Controller之间的映射关系的,让读者知道这个过程中到底发生了什么事情。源码分析在分析源码之前,我们先了解一下几个东西。1.这个过程中重要的接口和类。HandlerMethod类:转载 2020-08-06 10:17:50 · 346 阅读 · 0 评论 -
字节一面,面试官拿 System.out.println() 考了我半个小时?我傻了
前言之前春招面试我被问及,你如何理解System.out.println() ?今天我就来给大家分享一下!学了这么久的面向对象编程,那如何用一行代码体现呢?如果你能自己读懂System.out.println(),就真正了解了Java面向对象编程的含义面向对象编程即创建了对象,所有的事情让对象帮亲力亲为(即对象调用方法)System.out.println("helloworld");helloworldProcessfinishedwithexitcod...转载 2020-08-03 10:23:52 · 232 阅读 · 0 评论 -
面试官:kill -9 进程杀不掉,怎么办?
用ps和grep命令寻找僵尸进程 一般可以用top命令发现动态进程表 用ps和grep命令寻找僵尸进程ps-A-ostat,ppid,pid,cmd|grep-e'^[Zz]'命令注解:-A 参数列出所有进程 -o 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数 因为状态为 z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程 运行结果参考如下Z123341...转载 2020-08-03 09:04:43 · 578 阅读 · 0 评论 -
我脸都问绿了!二面竟然被问到 MySQL 时间类型 datetime、bigint 及 timestamp 的查询效率。。。
“数据库中可以用datetime、bigint、timestamp来表示时间,那么选择什么类型来存储时间比较合适呢?前期数据准备通过程序往数据库插入50w数据 数据表: CREATETABLE`users`(`id`int(11)NOTNULLAUTO_INCREMENT,`time_date`datetimeNOTNULL,`time_timestamp`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP...转载 2020-08-01 17:17:06 · 266 阅读 · 0 评论 -
面试官问:大量的 TIME_WAIT 状态 TCP 连接,对业务有什么影响?怎么处理?
1.问题描述模拟高并发的场景,会出现批量的TIME_WAIT的 TCP 连接:短时间后,所有的TIME_WAIT全都消失,被回收,端口包括服务,均正常。即,在高并发的场景下,TIME_WAIT连接存在,属于正常现象。线上场景中,持续的高并发场景 一部分TIME_WAIT连接被回收,但新的TIME_WAIT连接产生; 一些极端情况下,会出现大量的TIME_WAIT连接。 Think:上述大量的TIME_WAIT状态 TCP 连接,有什么业...转载 2020-07-30 09:03:52 · 1462 阅读 · 0 评论 -
面试官问:MySQL 的自增 ID 用完了,怎么办?
既然这块知识点不清楚,那回头就自己动手实践下。首先,创建一个最简单的表,只包含一个自增id,并插入一条数据。createtablet0(idintunsignedauto_incrementprimarykey);insertintot0values(null);通过show命令show create table t0;查看表情况CREATETABLE`t0`(`id`int(10)unsignedNOTNULLAUTO_INCREME...转载 2020-07-24 07:41:47 · 271 阅读 · 0 评论 -
TCP 协议面试灵魂10问,建议收藏~
Proc先亮出这篇文章的思维导图TCP 作为传输层的协议,是一个软件工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。001. 能不能说一说 TCP 和 UDP 的区别?首先概括一下基本的区别:TCP是一个面向连接的、可靠的、基于字节流的传输层协议。而UDP是一个面向无连接的传输层协议。(就这么简单,其它TCP的特性也就没有了)。具体来分析,和UDP相比,TCP有三大核心特性: 面向连接。所谓的连接,指的...转载 2020-07-23 16:39:06 · 498 阅读 · 0 评论 -
面试官:我想用Nginx提升系统10倍性能,你有哪些建议?
提升Web应用的性能从未像今天这样刻不容缓。在线经济活动的比例日益提高,就连发展中国家和地区的经济活动都已经有5%以上在线进行了(相关数据请参考本文后面的资源)。在这个超级链接、随时在线的现代世界,用户的期望也远非昔日可比。如果你的网站不能马上响应,你的应用不能立即运行,用户转身就会投奔你的竞争对手。亚马逊大约10年前的一项研究表明,页面加载时间减少1/10秒,能够使其营收增长1%。另一项近期的调查也显示,一多半受访站点所有者提到因为自己应用的性能不佳导致了收入减少或者用户流失。一个网站到底多快转载 2020-07-19 20:15:15 · 307 阅读 · 0 评论 -
【非广告,纯干货】这大概是我看过最有温度的面经分享(已收割京东美团技术专家offer)
说明:本文来源于中华石杉架构班学员 dasthinker 同学在拿下美团、京东两家互联网大厂技术专家offer之后的面经总结简单自我介绍本⼈是⼯作多年的⼀枚「⽼码农」,对⽐群⾥的年轻朋友们,是有点「⽼」哈,最近⼯作是在⼀家几百人规模的互联⽹公司⼯作。大家可能觉得,这个时期出来看机会,是往⽕坑⾥跳吗?个⼈不这么认为,借此疫情的特殊时期,通过企业市场招聘情况也能帮你把握⼀下⼤致业务发展⽅向,这其实是好事。当然了,招聘岗位有限,狼多⾁少,岗位竞争肯定⽐往年更加激烈的,所以需要珍惜每⼀个机会。.转载 2020-07-16 09:10:02 · 1527 阅读 · 0 评论 -
扪心自问!一百多道难搞的面试题,你能答对了多少?
作者:YHGui来源:https://github.com/YHGui/easy-job/Java 面试中的重要话题除了你看到的惊人的问题数量,我也尽量保证质量。我不止一次分享各个重要主题中的问题,也确保包含所谓的高级话题,这些话题很多程序员不喜欢准备或者直接放弃,因为他们的工作不会涉及到这些。Java NIO 和 JVM 底层就是最好的例子。你也可以将设计模式划分到这一类中,但是越来越多有经验的程序员了解 GOF 设计模式并应用这些模式。为了给你一个大致的了解,下面列出这份 Java .转载 2020-07-15 13:43:10 · 1792 阅读 · 0 评论 -
分布式id生成策略,我和面试官扯了一个半小时
面试官:小伙子,你还记得我吗?我是上次面试你的那个面试官。我心想:我去,怎么会不记得,我又不是青年痴呆,上次害我画了那么多图,还使劲敲了一个多钟的电脑,满脑子都是你的阴影。我:记得记得,您好,很高兴能通过二面,能够继续和您交流技术问题。我违背良心说这话真的好吗,姑且就那么一次吧,面个试都那么难?面试官又快速的扫了一下的简历,可能上次看过一次,都快过了一个多星期了,估计他都都忘了我的简历了吧。面试官:我看你简历上面写着深入了解分布式,并且也做过分布式项目,挺好的,那你知道分布式项目中生成分转载 2020-07-14 17:57:59 · 263 阅读 · 0 评论 -
面试官:会玩牌吧?给我讲讲洗牌算法和它的应用场景吧!
有一次参加面试,面试官问我:“会玩牌吧?”内心:“咋滴,这是要玩德州扑克(或者炸金花),赢了他就能通过面试么?”结果……没想到面试官的下一句话:“给我讲讲洗牌算法以及它的应用场景吧!”哈哈,以上内容纯属虚构背景这确实也是一道面试题,我曾经多次面试中都有遇到这个题目或者这个题目的变种。你不妨花 1 秒,想想?什么是洗牌算法从名字上来看,就是给你一副牌让你洗呗,用怎样的方法才能洗得均匀呢?请大佬表演一下。不好意思,翻车了其实洗牌算法就是一种随机算法,你...转载 2020-07-11 20:53:26 · 967 阅读 · 0 评论 -
太逗了,面试官让我讲线程 WAITING 状态!
面试官Q:你讲下线程状态中的WAITING状态,什么时候会处于这个状态?什么时候离开这个状态?小菜J 会心一笑...一个正在无限期等待另一个线程执行一个特别的动作的线程处于WAITING状态。“A thread that is waiting indefinitely for another thread to perform a particular action is in this state.然而这里并没有详细说明这个“特别的动作”到底是什么,详细定义还是看 javadoc(jd转载 2020-07-10 20:57:35 · 267 阅读 · 0 评论 -
面试官:数据量很大,分页查询很慢,有什么优化方案?
当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。下面简单说一下我知道的一些方法。准备工作为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明。 表名:order_history 描述:某个业务的订单历史表 主要字段:unsigned int id,tinyint(4) int type 字段情况:该表一共37个字段,不包含tex.转载 2020-07-06 14:01:06 · 412 阅读 · 1 评论 -
再见面试官:你能说说 Spring 框架中 Bean 的生命周期吗?
首先简单说一下(以下为一个回答的参考模板)1、实例化一个Bean--也就是我们常说的new;2、按照Spring上下文对实例化的Bean进行配置--也就是IOC注入;3、如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,此处传递的就是Spring配置文件中Bean的id值4、如果这个Bean已经实现了BeanFactoryAware接口,会调用它实现的setBeanFactory(setBeanFactory(BeanFact转载 2020-07-05 23:12:46 · 297 阅读 · 1 评论 -
面试官再问高并发,求你把这篇发给他!
高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。在过往的面试中,如果候选人做过高并发的项目,我通常会让对方谈谈对于高并发的理解,但是能系统性地回答好此问题的人并不多,大概分成这样几类:1、对数据化的指标没有概念:不清楚选择什么样的指标来衡量高并发系统?分不清并发量和QPS,甚至不知道自己系统的总用户量、活跃用户量,平峰和高峰时的QPS和TPS等转载 2020-07-04 08:59:14 · 527 阅读 · 0 评论 -
面试官:你对Kafka比较熟? 那说说kafka日志段如何读写的吧?
引子之所以写这篇文章是因为之前面试时候被面试官问到(倒)了,面试官说:“你说你对Kafka比较熟?看过源码? 那说说kafka日志段如何读写的吧?”我心里默默的说了句 “擦…我说看过一点点源码,不是亿点点。早知道不提这句了!”,那怎么办呢,只能回家等通知了啊。但是为了以后找回场子,咱也不能坐以待毙,日拱一卒从一点点到亿点点。今天我们就来看看源码层面来Kafka日志段的是如何读写的。Kafka的存储结构总所周知,Kafka的Topic可以有多个分区,分区其实就是最小的读取和存储结构,即转载 2020-07-03 13:59:18 · 438 阅读 · 0 评论 -
六面 Google,失败经验分享…
去年换工作的时候, 面试了一下 Google (这里说的是 Google 中国), 来了个 Google 面试六轮游, 结果是没通过. ???? 现在分享下我参与面试的具体流程以及个人认为应该注意的事项, 希望对大家有所帮助.个人相关背景先介绍下自己相关背景, 985 本科, top2硕士(其实, 大公司都比较看重第一学历的). 在校期间, 科研也没啥能拿得出手的论文. 社招时, 4 年多工作经验, 面试时为大疆后端开发TL(带3~4个人而已).面试流程Google 整体面试.转载 2020-07-03 10:40:18 · 397 阅读 · 0 评论 -
面试官:BigDecimal 一定不会丢失精度吗?
前言我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题。如下一段代码:System.out.println(0.05+0.01);System.out.println(1.0-0.42);System.out.println(4.015*100);System.out.println(123.3/100);输出:0.0600000000000000050.5800000000000001401.499999999999941.2329999999999999...转载 2020-06-29 19:43:46 · 561 阅读 · 0 评论 -
从一道面试题谈起,大厂到底看重程序员的什么能力?
唐磊,他谦逊的自我介绍,是“在阿里云打工的清华学渣”。上周的一篇《字符串比较,居然暗藏玄机》,我最早是在唐磊《这10行比较字符串相等的代码给我整懵了》里看到的,我用通俗的语言,展开了“密码破解”案例。文末却没有提引用的出处,这里和唐磊道个歉。看了唐磊的其他一些文章,源于一线,深入细节,不禁想起了4-5年前提笔写技术文字的自己。希望他的好文被更多热爱技术的小伙伴看到,这里转一篇唐磊的好文。文章:《从一道面试题谈起,大厂到底看重程序员的什么能力?》这是我在面试过程中,经常问的一道题。一起转载 2020-06-29 19:34:18 · 452 阅读 · 0 评论 -
经典面试题:为什么 ConcurrentHashMap 的读操作不需要加锁?
我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢?ConcurrentHashMap的简介“我想有基础的同学知道在jdk1.7中是采用Segment + HashEntry + ReentrantLock的方式进行实现的,而1.8中放弃了Segment臃肿的设计,取而代之的是采用Node + CAS + Synchronized来保证并发安全进行实现转载 2020-06-29 14:06:31 · 449 阅读 · 0 评论 -
聊聊大厂面试官必问的 MySQL 锁机制
前言前几天有粉丝和我聊到他找工作面试大厂时被问的问题,因为现在疫情期间,找工作也特别难找。他说面试的题目也比较难,都偏向于一两年的工作经验的面试题。他说在一面的时候被问到Mysql的面试题,索引那块自己都回答比较满意,但是问到Mysql的锁机制就比较懵了。因为平时没有关注Mysql的锁机制,当被问到高并发场景下锁机制是怎么保证数据的一致性的和事务隔离性的。他把他面试的过程分享给了我,Mysql高并发锁机制的问题,几乎面大厂都有被问到,Mysql怎么在高并发下控制并发访问的?我细想了一下,转载 2020-06-27 22:45:33 · 367 阅读 · 0 评论 -
刷题两个月,从入门到字节offer,这是我的模板 | GitHub 1.2k星
刷题应该这样刷。最近,一位网友在GitHub上分享了他自己的一个算法模版,瞬间斩获1.2k星。按照他的经历来说,四月份找工作开始,从0开始刷LeetCode,现在已经是字节跳动的员工了。于是就通过各种刷题文章,专栏,视频等总结了一套自己的刷题模板。最科学的刷题方式,最快速的刷题路径,到底是怎样的呢?我们一起来看看吧~推荐的刷题路径那么,应该从何刷起呢?怎么刷?作者提供了一个推荐路径。第一步,algorithm-pattern 练习题首先呢,按照作者总结的练习.转载 2020-06-20 14:49:54 · 540 阅读 · 0 评论