好文分享 第1期

  • 基本功 | Java即时编译器原理解析及实践
    跟其他常见的编程语言不同,Java将编译过程分成了两个部分,这就对性能带来了一定的影响。而即时(Just In Time, JIT)编译器能够提高Java程序的运行速度。本文会先解析一下即时编译器的原理,然后再分享一些在美团实践的经验,希望能对大家有所帮助或者启发。
  • 你不知道的JMM底层原理
    在多线程并发的世界里synchronized、volatile、JMM是我们绕不过去的技术坎,而重排序、可见性、内存屏障又有时候搞得你一脸懵逼。有道是知其然知其所以然,了解了底层的原理性问题,不论是日常写BUG还是面试都是必备神器了。

  • 程序员都应该知道的URI,一文帮你全面了解
    URI 是每个程序员都应该了解的概念,同时相关联的还有 URL, URN 等概念簇。了解这些概念,可以帮助我们更好地窥探万维网(WWW)的设计,同时也能帮我们在工作中有效解决跟 URI 相关概念的问题,更加理解 encode,decode 工作原理,更好地助力网络编程!

  • 优秀 !华为是这样使用Git rebase的
    理论上来说,只要能合理管理项目分支,这几个命令已经足以应付所有的日常开发工作。但是如果我们偶尔看一下自己的git graph,我的天呐,为什么会这么乱。鉴于分支管理的混乱(或者根本就没有进行过分支管理),我们经常遇到一些意想不到的问题,因此需要使用很多面生的git命令来解决我们的问题,比如说本文讲到的git rebase。

  • 你真的会使用搜索引擎吗?
    相信很多人平时打开网页,想要搜索东西的时候,都会直接选择输入关键词,于是得到一大堆种类不一的搜索结果,在茫茫页面中苦苦寻找自己需要的信息。这种不经思考的搜索方式,不仅增加了搜索信息的时间成本,还往往找不到正确的信息。那么,正确的搜索方式是什么呢?本文结合了作者多年的搜索经验和实践,包教包会,让你从只会简单搜索关键词的小白瞬间成长为掌握多种搜索技巧的高手,下面便开始学习吧

  • Java中9种常见的CMS GC问题分析与解决
    目前,互联网上 Java 的 GC 资料要么是主要讲解理论,要么就是针对单一场景的 GC 问题进行了剖析,对整个体系总结的资料少之又少。前车之鉴,后事之师,美团的几位工程师搜集了内部各种 GC 问题的分析文章,并结合个人的理解做了一些总结,希望能起到“抛砖引玉”的作用。

  • Java-Collectors常用的20个方法

  • 软件开发必修课:你该知道的GRASP职责分配模式
    阿里妹导读:软件开发为什么需要职责驱动设计(RDD)?职责应该如何分配?如何结合架构模式在实际开发中实践落地?本文介绍一种通用的职责分配模式——GRASP,通过举例详解GRASP的几大原则,并分享两个实际运用的案例。

  • 设计模式最佳套路—— 愉快地使用策略模式
    策略模式(Strategy Pattern)定义了一组策略,分别在不同类中封装起来,每种策略都可以根据当前场景相互替换,从而使策略的变化可以独立于操作者。比如我们要去某个地方,会根据距离的不同(或者是根据手头经济状况)来选择不同的出行方式(共享单车、坐公交、滴滴打车等等),这些出行方式即不同的策略。

  • Mysql 索引精讲
    本文主要讲述常见索引类型(实现层面)、索引种类(应用层面)、聚簇索引与非聚簇索引、覆盖索引、最佳索引使用策略。

  • ReentrantLock 的这几个问题,你都知道吗?
    之前分析 AQS 的时候,了解到 AQS 依赖于内部的两个 FIFO 队列来完成同步状态的管理,当线程获取锁失败的时候,会将当前线程以及等待状态等信息构造成 Node 对象并将其加入同步队列中,同时会阻塞当前线程。当释放锁的时候,会将首节点的 next 节点唤醒 (head 节点是虚拟节点),使其再次尝试获取锁。

  • CDN工作原理及其在淘宝图片业务中的应用
    淘宝的图片访问,有98%的流量都走了CDN缓存,只有2%会回源到源站,节省了大量的服务器资源。但是,如果在用户访问高峰期,图片内容大批量发生变化,大量用户的访问就会穿透cdn,对源站造成巨大的压力。今年双11,淘宝鹿班的主图价格表达升级项目,就面临了这种挑战,让我们看看是如何解决的吧。

  • 一文彻底理解 I/O 多路复用
    这里的关键点在于,我们事先并不知道一个文件描述对应的I/O设备是否是可读的、是否是可写的,在外设的不可读或不可写的状态下进行I/O只会导致进程阻塞被暂停运行。