摘要:
一、ArrayList源码注释 /** * ArrayList源码分析,jdk版本为1.8.0_121 */ public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, 阅读全文
摘要:
一、什么是shiro 它是一个功能强大且易于使用的Java安全框架,可以执行身份验证、授权、加密和会话管理。使用Shiro易于理解的API,您可以快速且轻松地保护任何应用程序——从最小的移动应用程序到最大的web和企业应用程序。 二、shiro的主要功能 1、Authentication:身份认证 阅读全文
摘要:
一、什么是elasticsearch Elasticsearch是一个基于Lucene的高度可伸缩的分布式的开源全文搜索和分析引擎。它允许您快速、实时地存储、搜索和分析大量数据。它通常用作底层引擎/技术,为具有复杂搜索特性和需求的应用程序提供支持。ElasticSearch是用java开发的,并作为 阅读全文
摘要:
elasticsearch定义了两种查询方式: 一、索引(index)、type、document 相关语句 1、列出所有索引的状态 GET /_cat/indices?v 2、查询索引详细信息 3、创建索引 (新版本一个index只能有一个type) setting中可以设置索引的主分片数numb 阅读全文
摘要:
java rest client 有两种: 1、Java Low Level REST Client :用于Elasticsearch的官方低层客户端。它允许通过http与Elasticsearch集群通信。叶子请求编组,响应反编组给用户。它兼容所有的Elasticsearch版本。 2、Java 阅读全文
摘要:
一、什么是quartz,有什么用。 Quartz是一个完全由java编写的开源作业调度框架,由OpenSymphony组织开源出来。所谓作业调度其实就是按照程序的设定,某一时刻或者时间间隔去执行某个代码。最常用的就是报表的制作了。 二、quartz的简单事例 二、quartz的基本组成 1、调度器 阅读全文
摘要:
一、什么是netty?为什么要用netty netty是jboss提供的一个java开源框架,netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可用性的网络服务器和客户端程序。也就是说netty是一个基于nio的编程框架,使用netty可以快速的开发出一个网络应用。 由于 阅读全文
摘要:
一、什么是thrift Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(RPC)框架来使用,是由FaceBook为“大规模跨语言服务开发”而开发的。它通过一个代码生成引擎联合了一个软件栈,来创建不同程度的、无缝的跨平台高效服。后来捐献给apa 阅读全文
摘要:
一、什么是protobuf Protobuf是google的开源项目,全称是Google Protocol Buffers,它是一个与语言无关、平台无关、可扩展的结构化数据序列化机制,类似XML,但它是更小、更快、更简单。只需定义一次数据的结构化方式,然后就可以使用特殊生成的源代码轻松地在各种数据流 阅读全文
摘要:
一、简单的聊天室程序 二、使用netty传递对象,使用jdk自带的序列化 三、使用messagepack进行序列化传递实体对象 由于java自带的序列化工具有着性能低、序列化后的码流大且不支持跨语言等各种缺陷,所以我们使用Msgpack库来进行序列化然后进行数据的传输。 我们需要额外引入两个jar包 阅读全文