Protobuf是谷歌推出的跨语言,跨平台,可扩展的数据序列化机制,相比XML,JSON等序列化方式,它具有更简单,更快,更小的优点,其中体积更小的优点得益于它的encoding方式。 Protobuf 消息是一种key-value形式的结构,如下图所示 其中Key包含了field_number和wire_type,计算公式: key = (field_number <&l...
JDK源码学习之LinkedHashMap
LinkedHashMap继承了HashMap,其行为和HashMap类似,只是在内部多维护了一个元素结点的双向链表。官方文档描述如下: Hash table and linked list implementation of the Map interface, with predictable iteration order. This implementation differ...
Java8之lambda表达式
Lambda表达式是Java8最重要也最令人期待的特性,它使得Java初步具有了函数式编程的能力。虽然Lambda表达式的本质只是基于接口的语法糖,但是依然可以给开发带来便利,尤其是Stream的引入,使对集合的操作变的更加方便和强大。 lambda 表达式 lambda表达式格式: (param1, param2, ...) -> expression, 如果不能用一个表达式...
JDK源码学习之ConcurrentHashMap
概述 上一篇介绍了HashMap的代码实现。众所周知,HashMap不是线程安全的,那么怎样让HashMap变得线程安全呢,最简单的方法就是给HashMap的方法加上synchronized,使其变为同步的,HashTable就是这么干的。这样虽然能解决并发的问题,但是由于锁粒度太大,多线程时竞争激烈,效率很低,因此并不推荐使用。在并发环境下,有更好的选择ConcurrentHashMap...
JDK源码学习之HashMap
1. 概述 HashMap是Java开发中最常用的数据结构,阅读源码有助于我们了解其工作原理及实现。关于HashMap的特性,可以参考官方文档: Hash table based implementation of the Map interface. This implementation provides all of the optional map operations, a...
- 1
- 1 / 1