摘要: 首先感谢热心助人的崔同学,耐心给我讲解猿题库的面试风格,让我能安心只准备了算法和system design。不过算法也没准备,最近正常刷题而已;system design也只是复习了下搜狗的项目。相当于是裸面了。。。万幸其他方面一点都没有问,最后也拿到了实习offer。 <! more 一面 一面的 阅读全文
posted @ 2017-10-18 12:52 猴子007 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 原题链接: "binary tree preorder traversal" "binary tree inorder traversal" "binary tree postorder traversal" <! more 整体思路 三道题的解决思路可统一,模板也极其相似,比九章提供的更漂亮。 1 阅读全文
posted @ 2017-10-18 12:51 猴子007 阅读(2677) 评论(1) 推荐(0) 编辑
摘要: "原题戳我" 。 <! more 题目 Description Given a big sorted array with positive integers sorted by ascending order. The array is so big so that you can not get 阅读全文
posted @ 2017-10-17 08:56 猴子007 阅读(899) 评论(0) 推荐(0) 编辑
摘要: 这篇文章是研一刚入学时写的,今天整理草稿时才被我挖出来。当时混混沌沌的面试,记下来了一些并发的面试问题,很多还没有回答。到现在也学习了不少并发的知识,回过头来看这些问题和当时整理的答案,漏洞百出又十分可笑。发表出来权当对自己的一个提醒—— 如果不能一直进步,你就看不到当初傻逼的自己。 曾经,我在面试 阅读全文
posted @ 2017-10-17 08:55 猴子007 阅读(787) 评论(0) 推荐(1) 编辑
摘要: 可以使用JDK提供的Exchager类进行同步交换:进行数据交换的双方将互相等待对方,直到双方的数据都准备完毕,才进行交换。Exchager类很少用到,但 理解数据交换的时机却十分重要,这是一个基于trade off的系统设计 。下述分析方法能扩展到诸多系统设计的场景中,帮助我们更好的进行trade 阅读全文
posted @ 2017-10-16 08:36 猴子007 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 非线程安全集合类(这里的集合指容器Collection,非Set)的迭代器结合了及时失败机制,但仍然是不安全的。这种不安全表现在许多方面: 1. 并发修改“通常”导致及时失败 2. 单线程修改也可能导致及时失败的“误报” 3. 迭代器会“丢失”某些并发修改行为,让及时失败失效 如果不了解其不安全之处 阅读全文
posted @ 2017-10-13 09:08 猴子007 阅读(640) 评论(0) 推荐(0) 编辑
摘要: 首先,不得不承认, 这确实是类库设计的一个错误 ,所以“为什么”进行了这个错误设计并没有意义。但没有事物一诞生就是完美的,我们的Java只是反应的慢了一点,再慢了一点。 更何况,Date类等日期/时间API又不是只有这一个问题。 <! more Java8之前,日期/时间API的问题 在Java8之 阅读全文
posted @ 2017-10-13 09:07 猴子007 阅读(669) 评论(0) 推荐(0) 编辑
摘要: 在只有双重检查锁,没有volatile的懒加载单例模式中,由于 的问题,我确实不会拿到 了,但我会拿到 。 而发挥神奇作用的volatile,可以当之无愧的被称为Java并发编程中 “出现频率最高的关键字” ,常用于保持内存可见性和防止指令重排序。 <! more 保持内存可见性 内存可见性(Mem 阅读全文
posted @ 2017-10-12 08:48 猴子007 阅读(74469) 评论(9) 推荐(18) 编辑
摘要: ThreadLocal也叫“线程本地变量”、“线程局部变量”: 其作用域覆盖线程,而不是某个具体任务; 其“自然”的生命周期与线程的生命周期“相同”(但在JDK实现中比线程的生命周期更短,减少了内存泄漏的可能)。 ThreadLocal代表了一种 线程与任务剥离 的思想,从而达到 的目的,帮助我们设 阅读全文
posted @ 2017-10-12 08:47 猴子007 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 在实际的业务场景中,并发读写引出了和事务控制的需求。优秀的事务处理能力是关系型数据库(特别是oracle等商用RDBMS)相对于正当风口的NoSQL数据库的一大亮点。但这也从另一方面说明了事务控制的复杂性——正因为过于复杂,大部分NoSQL都没提供事务支持或只提供部分事务支持。 <! more AC 阅读全文
posted @ 2017-10-11 10:14 猴子007 阅读(488) 评论(0) 推荐(0) 编辑