最近这几天是公司的晋升季,看到了一些我觉得挺有意思的事。
几年前,我参加了一个游泳训练营。
所有人在一个泳池训练,按照水平分在四个泳道:A 道(游得最快的人)、B 道(次快)、C 道(次慢)和 D 道(最慢)。
我从 D 道开始,接受了大量的指导。周围的人都对我很好,我慢慢进步,终于进入了 C 道。那组的人也热情欢迎我。
但是,我注意到,旁边 B 道的人并不像 C 道那样友善。A 道选手都非常友善,慷慨给予鼓励、表扬和提示。
我怀疑这是普遍现象:A 道、C 道和 D 道的人都很友善,大家几乎都乐于助人;B 道的人则是对 A 道和其他 B 道选手友善,但对 C 道和 D 道则不然。
因为我后来发现,其他运动领域也是如此。那些仅次于顶级选手的运动员,往往对不如自己的选手很苛刻,害怕别人超过自己。
学术界也有这种现象。真正伟大的研究者慷慨而热于助人,许多普通水平的研究者也是这样。然而,那些有一定知名度、但又没有做出顶尖成果的研究者,对不如自己的人就不友善了。
当你是最好的 A 组时,很容易表现得宽宏大量,你确信自己会有成果,这让你安心无忧。
当你处于平均水平或低于平均水平(C 组或 D 组)时,表现得友善也很容易。远离顶尖水平,意味着竞争压力不大,所需要付出的努力可能也不大,你会有一种”放轻松”的心态(反正我到不了顶峰,就当作玩呗)。
那些仅次于优秀水平的人,感受到最大的竞争压力。你离顶峰如此之近,追赶却又艰难无比,放弃又不甘心。最令人沮丧的是,没有人记得第二名。同时,后面的人还可能超过你。所有这些因素,都可能导致一种不友善的态度。
最近发现自己做事,有头无尾,有始无终。比如说健身,看了一些视频,买了一堆装备,去了几次,就慢慢频率减少,直到不去了;准备看看机会,做了简历,制定了复习计划,又慢慢没有了下文了;还有好多事,也是类似。
于是思考可能的原因,推测,是对要完成的事情没有一个清晰的认识,没有想清楚这件事做成之后,我是一个什么样的状态,周围的事物是一个什么样的状态,周围的人会是一个什么样的状态。
fail-fast 机制是Java集合(Collection)中的一种错误机制。 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的结构进行了修改(增加、删除),则会抛出Concurrent Modification Exception(并发修改异常)。
如上图所示,Unsafe提供的API大致可分为内存操作、CAS、Class相关、对象操作、线程调度、系统信息获取、内存屏障、数组操作等几类,下面将对其相关方法和应用场景进行详细介绍。
软件开发工程师的技术面试,一般分为三个部分:编程语言基础知识(俗称八股)、编程题、项目经验。
这篇记录下如何准备面试。
不错的资料1:
不错的资料2:
Java Guide:https://javaguide.cn/home.html
小林图解:https://xiaolincoding.com/
On Java 8:https://github.com/rocLv/OnJava8
cs-note:https://cyc2018.xyz/
其实上面这些资料都挺全的,从入门到架构,都很详细,选一个自己喜欢的风格,认真复习即可。
刷题有两个方向:
建议先按照知识点刷,先过一遍考点,整体复习一下,之后可以看看高频题。
看看别人的面试经验,根据他的项目问题,思考自己的项目中遇到过什么问题,如何解决的。
(面经建议现搜索)
这里提供一些问题作参考:
- 讲项目
- 再讲个项目
- 平时读什么源码
- 对XX领域架构了解吗?(XX=电商、支付、物流)
- 常见的限流算法有哪些,你们系统中是如何应用的?
- 你的系统如何保障稳定性?