minus责编
伍杏玲本文经授权转载自石杉的架构笔记先做个自我介绍,楼主坐标帝都,5年经验,跳槽之前在一家传统小公司,年薪21万。这次面试前前后后大概两个月的时间,面试了大概6家公司,命中4家,最终去了一家估值70亿美金的生鲜电商独角兽,年薪42万,刚好翻倍。话不多说,直接进入面试现场!好未来开始面试第一天上午投递好未来,下午3点面试,一共面试了3轮,问的问题比较多。第一轮面试官看了我的简历,首先让我画出Eureka的执行流程,这块在之前的准备过程中有深入看过,因此比较流畅的画出来并配合解释说明。之后问到项目中使用分布式锁解决缓存重建并发的问题,并要求画出实际的执行流程,数据库也问的比较多:事务的隔离级别、MySQL实现可重复读的原理、索引等。面试官给出了一个场景,在数据库主从同步的情况下,如果从库同步主库的数据延迟比较高,怎么才能在写到主库后立刻能够读取到数据。我解释了主从同步的原理,并以此说明主库到从库的复制一定是有延迟的,因此要保证当写到主库的时候立刻能读到数据,要么就直接配置那个接口读数据的话直接走主库,因为这种写完主库立刻要读取数据的场景比较少,可以做些特殊配置。另一种方案就是在往主库写数据的时候,可以直接往内存缓存中写一份,设置一个较短的过期时间,后面可以直接从缓存中读到数据。我说完之后,面试官也没给出评价,就这么过去了。此外,还问到一些基础性的问题,比较印象深刻的是:在加锁的时候,用什么锁对象是内存占用最小的,我说是Object对象,面试官说不对,我一时没想出来,面试结束后和朋友探讨,觉得应该是长度为0的byte数组。其他还问到了Collections.sort()使用的排序算法、AQS、线程池、ThreadLocal等等问题,主要都是一些考察基本功的问题,一轮面试就这么过去了!第二轮面试官更