做出改变——读《谁动了我的奶酪》
谁动了我的奶酪?我不知道。
那么奶酪被动了,该怎么办呢?每个人都有自己面对问题的方式,那么哪种方式会是最优解呢?本书中有很重要一点,随着变化而变化,并通过衍生,每个人都可以得到自己的结论。
读《悲惨世界》以来,一直断断续续,没有一次从开始到结尾的读。终究还是读完了这书,悲惨中寻找崇高,活着悲惨里始终如一的善良,那是一种何等的崇高。当读到“我不知道把烛台送给我的那一位,在天上对我是否满意。我已经尽力而为了。”,我已经满眼含泪,一个人只是为了某一个信仰,一生行善,却从抱怨,或许抱怨过,但从没有对生活与世界失去信心,这一种坚持,这一种善心。
在这本书中,我所感触最深的有两点。第一点,沙威的自杀。当一个人到头来明白,自己信任并坚持的信仰,却发现是错误的,那人会如何选择。当发现这一辈子中主要的事都是错事,那是一种何等的悲伤,沙威便是无法承受这一新的变化,这一种新的信仰,推翻了自己坚持的信仰。
首先,为什么需要读这段源码呢?其实主要就一点,“知其然,知其所以然”。当理解其中的实现方式,就更加明白该如何去使用。
为什么需要使用线程池?其原因正如像众所周知的,当我们需要不断的执行各种小型的任务时,而创建与销毁线程所带来的成本将影响系统的性能,因此使用线程池来减少线程的创建、销毁。
在我之前的文章《HashMap 源码分析》中分析了HashMap的源码,众所周知,ConcurrentHashMap是线程安全的Map,在Java 1.7及以前版本使用分段加锁机制,而1.8版本开始使用CAS操作,抛弃了segment
,并只对哈希桶数组的的单个元素加锁。相对于HashTable对于每个方法都使用synchronized
,效率提升了非常大。
本文所解读的ConcurrentHashMap是基于Java 1.8 版本。部分代码过于繁琐,因此建议对照源码阅读。
在开发中,使用SXSSFWorkbook构建导出excel时,可能会遇到“Attempting to write a row[?] in the range [0,?]that is already written to disk.”的报错情况,如下图所示。
在leetcode上做题刚好做到一题:根据前序和后序遍历构造二叉树。在我们一般构建二叉树时,一般是根据中序和前序或者后序构建二叉树。根据前序和后序构建的二叉树不一定是唯一的。
889. 根据前序和后序遍历构造二叉树
返回与给定的前序和后序遍历匹配的任何二叉树。pre
和post
遍历中的值是不同的正整数。
这是一个不正经的猫,从本书中的这只猫来看,这只猫似乎有一种通晓天地,明了古今。能够不经历九年义务教育就懂得一些教育学家以及理学家的谈话。这只猫或许在老师的家里待得太久,就明了这许许多多的人事与时事,也或许通过猫界里的“人类学家”精心传授。
这些都是些不正经的话语。
读完这本书,仅仅用读完来形容了。这书里面的有许多的知识都是我无法去理解的。果然发现,这是一本不符合畅销书的畅销书了。这本书里,虽然没有提到多少公式性的推到,只放了一个E=mc^2
爱因斯坦质能方程,然而就这样一本定位于科普读物的书籍,却没有多少人能够读完。
为什么是畅销书呢?我们先分析人类读书的意图,除了应付考试、学以致用,剩下的一个很重要的就是“装逼”了。虽然这样谈吐起来,确实并不文雅,但现在人读书都是有着一个目标去读书的,像如何在书籍里得到职场的一些经验,如何应付当前的考试,如何在书籍里找回自己那个颗沉静的心,如何表现出高逼格等,都是现实中读书的一些需求。
读《白说》完这本书,我是不怎么敢写读后感的。如果真的要详细写来,其中每一篇文章都可以写一个很深刻的认识,每一篇都给我一些相见恨晚的感觉。