WarrenTalk

卧舟杂谈


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于我
WarrenTalk

稳扎稳打的2017 打破边界的2018

发表于 2018-01-07 | 分类于 Summary & Plan |

年度总结已经两年没写了,今年又有冲动来重拾这份习惯,希望能持之以恒。这两年,呆了两家互联网公司,见识广了,思路也自然开阔些,回头看看以前的年度总结,变化确实挺大的。总结还是延续之前的套路,先缅怀过去,再继往开来,今年开始采用OKR的方法来量化自己的各项目标,争取可以来个年中评估,跟踪一下所有目标的进度。

阅读全文 »
WarrenTalk

从Java6到Java8: 你应该知道的JVM新特性

发表于 2017-07-13 | 分类于 Deep in JVM |

前言

目前公司内部正在推动Java6到Java8的升级,团队内部的部分应用也已经完成升级,这篇文章主要介绍JVM层面从java6到java8有哪些重要的变化。一线开发人员可能会觉得,不对啊,我了解java7和java8新引入的语言特性不就完了,JVM新特性对我日常开发工作貌似没有什么直接关系啊。可是作为有追求的程序员,我们做到了知其然,要是再能做到知其所以然的话,遇到问题时岂不是能更淡定从容些。看完此文,可以帮你回答以下几个问题:

  1. 动态类型语言在Java7之前和之后分别是如何在JVM上运行的?
  2. lambda表达式是如何实现的?
  3. 新一代垃圾收集器G1有哪些优势?
  4. 永久代为什么要被移除?元空间有什么不同吗?
阅读全文 »
WarrenTalk

Windows转Mac上手指南

发表于 2017-02-15 | 分类于 Productivity |

说在前面

这是一篇写给刚从Windows转到Mac的开发人员的文章,因为团队有很多小伙伴在年后换了Mac(三年前公司估计有点穷),环境搭建和使用上有不少问题,所以整理一个列表,也算是我自己在Mac上的最佳时间了吧。

一、如何培养Mac思维

你需要抛弃:

  • 磁盘分区概念
  • 文件夹整理洁癖(少数重要文件除外)
  • 对GUI应用程序的强依赖
  • 对鼠标的强依赖

你需要习惯:

  • 键盘, 触摸板, Command键
  • 文件搜索
  • 命令行
  • 高效编辑器
阅读全文 »
WarrenTalk

聊聊并发,Part 1:IO模型

发表于 2016-02-13 | 分类于 Concurrency |

一、说在前面

前段时间略读过《七周七个并发模型》这本书,收获良多,但也一直没能整理出一份学习心得。正逢新换了公司,进入互联网行业,技术氛围那是相当的浓重啊,组里这段时间流行node.js,那货处理高并发IO很牛逼,为什么呢?因为异步IO、事件驱动、Event Loop。感觉自己明白了,其实乍一想,还是不明白,想得越多,脑子里反而充斥着一堆稀里糊涂的概念:高并发,阻塞/非阻塞IO,同步/异步IO,单线程/多线程/多进程。嗯,是时候理理头绪了。因此就有了这篇文章,我试图从Kernel层的IO开始向上来解释高并发IO这件事。

阅读全文 »
WarrenTalk

Metaprogramming Ruby, Part 2: Object model and Method in Ruby

发表于 2015-08-30 | 分类于 Metaprogramming Ruby |

说在前面

这篇文章与这个系列的开篇文章隔了很久了,一直也没有能够整理出来,今天终于搞定一篇,希望尽早完成这个系列吧。上篇比较宏观地介绍了Ruby的元编程,从这篇开始,我们将进入Ruby的世界,探索哪些元编程特性。我们会先来介绍Ruby的对象模型和方法,对象模型是整个Ruby语言的基础,也为元编程带来了巨大的灵活性。而Ruby中的方法在对象模型的基础上提供了强大的动态操纵的能力,能够方便地进行元编程。

阅读全文 »
WarrenTalk

Learning Haskell: a pure functional programming language

发表于 2015-07-19 | 分类于 language |

说在前面

最近,Java写恶心了,计划重新捡起丢在一边很久的Scala,但是,Scala是个大怪物,几年前刚接触Scala的时候,认认真真地读过一遍原版《Programming in Scala : A Comprehensive Step-by-step Guide》,但是完全迷失在一堆难于理解的概念中。回头细想,本质上还是缺乏函数式编程的功底。为了更好地理解函数式编程的核心理念,我就用Haskell这门纯粹的函数式语言作为起点,开启我的重拾Scala之路。

阅读全文 »
WarrenTalk

Deep in JUC, Part 1: 深究HashMap以及ConcurrentHashMap的一致性问题

发表于 2015-06-08 | 分类于 Deep in JUC |

HashMap与ConcurrentHashMap

众所周知,HashMap无法做到线程安全,在某些特定的场景下甚至会出现死循环的情况。而ConcurrentHashMap是HashMap的并发版本,它能够做到线程安全。

阅读全文 »
WarrenTalk

4 ways to implement LRUCache in Java

发表于 2015-04-19 | 分类于 programming |

说在前面

这两天在LeetCode上写一道LRUCache的题,题不难,用HashMap加双向链表提交通过之后,尝试用其它更简洁的方式进行实现,本文将这些方法一一列出,以供大家参考。

阅读全文 »
WarrenTalk

Deep in JVM, Part 1: JVM Runtime Memory Structure

发表于 2015-03-22 | 分类于 Deep in JVM |

说在前面

最近重新开始读《深入理解Java虚拟机》这本书,重新回顾JVM的一些细节,并且用一个系列的blog文章帮助自己整理思路也方便日后温习。说起Java,很多人开始不屑一顾,但是对于JVM,偏见估计会少了些,因为现在的JVM已经是大家的JVM了,Groovy、Scala、Clojure、JRuby等遍地开发,JVM家族一片欣欣向荣,所以理解JVM是如何工作的必然对开发者有莫大的好处。这一篇就先从JVM的内存结构讲起。

阅读全文 »
WarrenTalk

Metaprogramming Ruby, Part 1: Introduction

发表于 2015-02-04 | 分类于 Metaprogramming Ruby |

说在前面

最近在研读《Metaprogramming Ruby》这本书,爱不释手,简直要拍案叫绝了。这本书在很多点上都完全颠覆了我对Ruby肤浅的理解。所以,想开Metaprogramming Ruby系列来进行记录总结,感兴趣的童鞋直接读原书就好,我这里只是会简要概括书中的知识体系。

这一篇作为全系列的开篇,主要来对一些基本概念做些介绍,相信很多人都跟之前的我一样,觉得元编程是一种高大上的技术,但它具体是什么,怎么来实现的,应该用在什么样的场景,对于这些问题很可能一头雾水,那我们就带着问题一起进入元编程的世界吧。

阅读全文 »
12
Warren Zhou

Warren Zhou

Keep Hungry, Keep Learning

15 日志
10 分类
39 标签
GitHub Twitter Weibo douban zhihu
Warren Zhou
© 2014 - 2018 Warren Zhou
由 Hexo 强力驱动
主题 - NexT.Mist