Lizhi Blog

博观而约取,厚积而薄发

Java集合框架总结

Java Collections Framework

Java集合类在开发过程中到处都在使用,理解其内部实现原理和使用方法可以避免误用,同时对于Java语言、数据结构和算法的理解也会更加深入。有时间可以整理下C++的STL,两者做下对比。 Java集合框架概览 Java集合类图 常见集合类的基本信息 Collection Ordering Random Access ...

Java集合类分析之Map

Map集合框架,HashMap,HashTable,Properties,TreeMap,LinkedHashMap,WeakHashMap,ConcurrentHashMap,ConcurrentSkipListMap

Map概览 Map类型的数据结构重点在于一个名值对的集合体。它本身要保证里面有一个名字的键值作为元素的唯一识别,并关联对应的值。所以,如果我们去查看Map的的定义,里面会有很多关于键值和对应值的操作,比如说containsKey, containsValue,V get(Object key), V put(K key, V value)等方法。我们常用的HashTable, Hash...

Java集合类分析之Set

Set集合框架,HashSet,TreeSet,LinkedHashSet,CopyOnWriteArraySet,ConcurrentSkiplistSet

Set概览 在常用的集合类型中,HashSet, TreeSet等具体的实现往往不一样。比如说HashSet本身的实现是引用了HashMap作为内部的元素。如果我们仔细检查他们的结构实现,会发现有的类型我们也可以通过foreach的循环来遍历。这是因为他们有的在实现Set定义接口的范围同时也继承了实现Collection接口的部分。可以说是两者兼有之。     在上面这些集合类型中,...

Java集合类分析之Queue

Queue集合框架,ArrayDeque,LinkedList,PriorityQueue,ConcurrentLinkedQueue等

Queue概览 Queue是一种很常见的数据结构类型,在java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约。实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现。还有的适用于多线程的环境。java中具有Queue功能的类主要有如下几个:AbstractQueue, ArrayBlockingQueue, ConcurrentLinked...

Java集合类分析之List

List集合框架,ArrayList,LinkedList,CopyOnWriteArrayList,Vector,Stack

List概览 在List中最常用的两个类就数ArrayList和LinkedList。他们两个的实现代表着数据结构中的两种典型:线性表和链表。在这里,这个线性表是可以根据需要自动增长的。Java的库里面默认没有实现单链表,LinkedList实际上是一个双链表。 ArrayList ArrayList是内部基于数组的线性表实现,使用transient Object[] elemen...

使用RMI + Zookeeper实现远程调用框架

转载自黄勇的博客

在 Java 世界里,有一种技术可以实现“跨虚拟机”的调用,它就是 RMI(Remote Method Invocation,远程方法调用)例如,服务A 在 JVM1 中运行,服务B 在 JVM2 中运行,服务A 与 服务B 可相互进行远程调用,就像调用本地方法一样,这就是 RMI。在分布式系统中,我们使用 RMI 技术可轻松将 服务提供者(Service Provider)与 服务消费者(...

轻量级分布式RPC框架

一个类似淘宝dubbo的简单RPC框架的搭建过程以及源代码分析

RPC框架简介 RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。 RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 HTTP 协议的 RPC,它具有良好的跨平台性,但其性能却不如基于 TCP 协议的 RPC。会两方面会直接影响 RPC 的性能,一是传输方式,二是序列化。 ...

Zookeeper简介

分布式应用中广泛使用Zookeeper,使用Paxos为基础提供分布式一致性

1、Zookeeper基本框架 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储, Zookeeper 作用主要是用来维护和监控存储的数据的状态变...

黑客与画家读书笔记

HACKERS & PAINTERS,Big Ideas From The Computer Age

作者澄清了黑客(hacker)和入侵者(cracker)的区别,只有那些信奉“黑客伦理”而且能力高超的程序员,才能称得上“黑客”。黑客价值观的核心原则可以概括成这样几点:分享、开放、民主、计算机的自由使用、进步。 使用计算机以及所有有助于了解这个世界本质的事物都不应该受到任何限制。任何事情都应该亲手尝试 信息应该全部免费 不信任权威,提倡去中心化 判断一名黑客的水...

Java大型网站架构

了解Java应用架构,更好地写程序,以架构师为目标

Java应用架构的演化之路 不同系统不同语言之间的交互(HTTP) Web Service,建立在HTTP协议上实现异构系统通讯的工具。最早,使用CXF(Apache CXF 是一个开源的 Services 框架)开发SOAP服务实现Web Service,后面我们使用REST服务实现Web Service,例如Spring MVC框架可以实现REST服务。 不同系统相同语言之间的交互...