- Java 集合框架:数据管理的强大工具
进一步有进一步的欢喜
java
Java集合框架:数据管理的强大工具目录Java集合框架:数据管理的强大工具引言一、Set集合1.定义与特点2.常用实现类-HashSet创建方式常用方法遍历方式二、Map集合1.定义与特点2.常用实现类-HashMap创建方式常用方法遍历方式三、List集合1.定义与特点2.常用实现类-ArrayList创建方式常用方法遍历方式四、Set、Map和List的对比相同点不同点引言Java集合框架提
- 【八股学习】ArrayList扩容机制总结
illus10n_CHOU
八股学习java算法
初始化/***默认初始容量大小*/privatestaticfinalintDEFAULT_CAPACITY=10;//默认的构造数组其实是没有容量的privatestaticfinalObject[]DEFAULTCAPACITY_EMPTY_ELEMENTDATA={};/***默认构造函数,使用初始容量10构造一个空列表(无参数构造)*/publicArrayList(){this.elem
- 谈谈List,Set,Map的区别
蓝莓浆糊饼干
面试:java部分java
List、Set和Map是Java集合框架(JavaCollectionsFramework)中的三种主要接口,它们各自有不同的特点和用途。以下是它们的区别和使用场景的详细解释:1.List(列表)1.1特点有序集合:List是一个有序集合,元素的插入顺序和访问顺序一致。允许重复:List允许存储重复的元素。索引访问:可以通过索引(index)快速访问元素。典型实现:ArrayList:基于动态数
- Java Stream流
M.Freedom
javawindows开发语言
JavaStream流认识Stream流是Jdk8开始新增的一套API(java.util.stream.*),可以用于操作集合或者数组的数据优势:Stream流大量的结合了Lambda的语法风格来编程,功能强大、性能高效、代码简洁、可读性好代码体验packagecom.itheima.stream;importjava.util.ArrayList;importjava.util.List;im
- 【华为机考E卷】-“第k个排列”题解思路java
Coder灬永不止步
算法-机考E卷华为java算法
算法每一题,成长每一天~C0E33第k个排列真题链接:【持续更新】2024华为OD机试E卷机考真题库清单(全真题库)思路Javapackagecom.ccr.paper_f;importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner;publicclassC0E33{publicstaticvoidmain(Stri
- 0310-冒泡排序、选择排序的Java实现
春生野草
数据结构笔记排序算法算法java数据结构
Java基本//定义使用变量//定义使用函数//基本类型//整数byteshortintlong//小数floatdouble//字符char''//布尔boolean//引用类型//StringArrayListLinkedList自定义冒泡排序两两比较交换冒泡排序Java实现package排序;importjava.util.Arrays;publicclassTest{publicstati
- javase集合框架List篇
2301_76231794
面试专题listjava
一、Vector和ArrayList、LinkedList联系和区别,分别的使用场景ArrayList:底层是数组实现,线程不安全,查询和修改非常快,但是增加和删除慢LinkedList:底层是双向链表,线程不安全,查询和修改速度慢,但是增加和删除速度快Vector:底层是数组实现,线程安全的,操作的时候使用synchronized进行加锁使用场景:Vector已经很少用了增加和删除场景多则用Li
- 回溯-子集
Vacant Seat
java数据结构算法
78.子集给你一个整数数组nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。输入:整型数组输出:二元列表思路:利用二进制,(比如说数组长度为3)000、001、010、011、100、101、110、111刚好可以遍历所有情况classSolution{List>result=newArrayListtempList=newArra
- Java小白-Collection集合体系
林深的林
windowspythonlinux
一、Collection集合体系1.核心接口与实现类类型特点实现类底层结构线程安全List有序、可重复、有索引ArrayList动态数组否LinkedList双向链表否Vector动态数组是(同步)Set无序、唯一HashSet哈希表+链表/红黑树否TreeSet红黑树否二、Collection常用API1.添加相关方法方法说明booleanadd(Ee)添加单
- 回溯-全排列
Vacant Seat
算法java回溯
46.全排列给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案输入:数组输出:二维列表思路:等待二刷classSolution{List>result=newArrayListpath=newLinkedList>permute(int[]nums){intlen=nums.length;used=newboolean[len];if(len==0){return
- 【数据结构】-- LinkedList与链表(2)
雨雨雨雨点子
数据结构数据结构链表java开发语言
文章目录4.LinkedList的模拟实现5.LinkedList的使用5.1什么是LinkedList5.2LinkedList的使用5.2.1LinkedList的构造5.2.2LinkedList的其他常用方法介绍5.2.3LinkedList的遍历6.ArrayList和LinkedList的区别4.LinkedList的模拟实现publicclassMyLinkedList{static
- Java常用集合与映射的线程安全问题深度解析
yang789022
编程学习java安全python
Java常用集合与映射的线程安全问题深度解析一、线程安全基础认知二、典型非线程安全集合问题分析1.ArrayList的并发陷阱2.HashMap的并发灾难3.HashSet的隐藏风险三、线程安全解决方案对比1.同步包装方案2.传统线程安全集合3.现代并发容器(java.util.concurrent包)3.1CopyOnWriteArrayList3.2ConcurrentHashMap3.3Co
- 关于java:如何一次向arraylist添加多个值?
sqzr316
Java
Howtoaddmanyvaluestoanarraylistatonce?假设我有以下代码:Stringa="sometexte";Stringb="text";Stringc="sf";Stringd="kjel";Stringe="lkjl";ArrayListlist=newArrayList();//betterwaytodoalltheseaddswithouthavingtotype
- Java集合_八股&场景题
吃海鲜的骆驼
面试专题java开发语言
Java集合在Java开发中,集合框架是面试和实际开发中非常重要的内容。以下是一些常见的Java集合八股文问题和场景题,以及详细答案和示例代码。1.Java集合框架的结构是什么?答案:Java集合框架主要分为三大接口:Collection、Map和Queue。Collection:是集合的顶级接口,它又分为List和Set。List:有序集合,允许重复元素,如ArrayList、LinkedLis
- Java集合
ok!不当人
javawindowspython
集合1.Collection接口1.1List接口1.1.1ArrayList常用方法CollectionListArrayList常用方法:add(Ee)添加元素添加在末尾add(intindex,Ee)在指定位置添加元素clear()从列表中删除所有元素。contains(Objecto)如果此列表包含指定的元素,则返回true。get(intindex)返回此列表中指定位置的元素。index
- leetcode hot100 二叉树
yadanuof
yy的刷题之路javab树
8️⃣二叉树94.二叉树的中序遍历题解:递归即可publicListinorderTraversal(TreeNoderoot){Listres=newArrayListres){if(root==null){return;}reverse(root.left,res);res.add(root.val);reverse(root.right,res);}104.二叉树的最大深度题解:递归计算深度
- Java 常用命令总结(完)
羊不白丶
java开发语言后端
更新了版本,请移步Java常用命令总结持续更新中!!!目录基础输入保留几位小数Random数组SystemArraysHashMapHashSetStringStringBuilderArrayListDeque栈Queue队列PriorityQueue优先队列常用数学算法&&结论结论算法ScannerIntegerIterator迭代器MathComparator&&Comparable的使用其
- Java集合框架全解析:从数据结构到高并发简单解析
微风灬浮尘
javajava数据结构Java集合java入门
一、集合框架全景图(含Java17新特性)1.集合框架层级关系CollectionListSetQueueMapSortedMapArrayListLinkedListVectorHashSetTreeSetPriorityQueueArrayDequeHashMapTreeMapConcurrentHashMap2.核心接口对比接口有序性唯一性线程安全典型实现类List是允许重复否ArrayLi
- c#面试题整理2
hhw199112
c#开发语言
1.介绍一下ADO.NET的类DataSet,SqlDataAdapter,SqlConnection2.ASP.NET和ASP相比有何优点a.代码分离,apsx文件用于页面显示,aspx.cs用于后台逻辑。asp则是前后端混合在一起。b.ASP.NET实现了面向对象编程3.委托和事件的关系委托本质上算是方法接口事件算是委托的封装后的调用5.Array和ArrayList的区别Array要有初始化
- java中有了ArrayList为什么还有LinkedList
不如打代码KK
java算法开发语言
java中有了ArrayList为什么还有LinkedList在Java中,尽管已经有了功能强大的ArrayList,但LinkedList的存在仍然有其独特的价值和适用场景。这两种集合类都属于Java集合框架的一部分,但它们在设计和实现上有显著的不同,这导致了它们在性能特征和使用场景上的差异。1.ArrayList的特点基于数组的实现:ArrayList内部使用一个动态数组来存储元素。当需要添加
- Day58 图论part08
2401_83448199
图论算法
拓扑排序精讲拓扑排序看上去很复杂,其实了解其原理之后,代码不难代码随想录importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intn=sc.nextInt();intm=sc.nextInt();List>last=newArrayList());}
- Java中list详解
一个刚刚入水的小学员
java
Java中list的详解一、list二、list详解1)ArrayListArrayList的实现原理ArrayList的优缺点2)LinkedListLinkedList的实现原理LinkedList的优缺点3)VectorVector的实现原理Vector的优缺点4)三种list的使用一、list(1)List是接口,继承至Collection接口(Collection接口下还有个Queue接
- Java高频面试之集合-03
牛马baby
java面试开发语言
hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝面试官:说说ArrayList和LinkedList的区别ArrayList与LinkedList的详细对比一、底层数据结构特性ArrayListLinkedList存储结构基于动态数组基于双向链表内存分配连续内存块非连续内存,节点分散存储元素访问通过索引直接寻址(时间复杂度O(1))需要遍历链表(时间复杂度O(n))插入/删除
- 数据结构之旅:自己动手实现顺序表
GeminiGlory
数据结构数据结构
目录1.引言顺序表(ArrayList)的概念及其在编程中的重要性。为什么选择自己实现而不是直接使用Java库中的ArrayList。2.基本原理3.类定义与属性MyArrayList类的定义4.核心方法5.错误处理与边界情况6.结论1.引言顺序表(ArrayList)的概念及其在编程中的重要性。顺序表(ArrayList)是一种动态数组,能够根据需要自动调整大小,支持高效的随机访问和顺序存储。它
- ListView展示图片
太空漫步11
windows
packagecom.example.myapplication5;importandroid.os.Bundle;importandroid.widget.ListView;importandroidx.appcompat.app.AppCompatActivity;importcom.example.adapter.ImageAdapter;importjava.util.ArrayList;
- java取列表a和b的交集_JAVA——两个List集合求交集、并集和差集(去重)模板
FreVision优选
java取列表a和b的交集
关注微信公众号:CodingTechWork,一起学习进步。引言经常遇到一些集合类之间的过滤数据、求合集之类的问题,在此以List为例,毕竟在数据库中取数据后,我们使用比较多的是List集合进行操作。模板代码publicstaticvoidmain(String[]args){ListstringList=newArrayList(Arrays.asList("a,b,c,d,e,f,g,h".s
- java 如何判断两个List<String>集合是否存在交集
单线程bug
AI对话优质回答javalist
在Java中判断两个List集合是否存在交集,可以使用以下几种方法:方法一:使用retainAll方法retainAll方法保留集合中与另一个集合相同的元素,如果集合发生变化,则表示存在交集。Listlist1=Arrays.asList("a","b","c");Listlist2=Arrays.asList("c","d","e");Listtemp=newArrayListlist1=Arr
- LeetCode-Hot100-006三数之和
YQ_ZJH
LeetCode100题leetcode数据结构排序算法算法c++蓝桥杯java
思路先排序解决重复的问题。再三重循环遍历,但是第二重和第三重使用双指针的做法,复杂度降低为O(n2)O(n^2)O(n2)。代码本次代码来自于力扣官方题解评论区,非本人原创,请注意classSolution{publicList>threeSum(int[]nums){Arrays.sort(nums);//先排序List>res=newArrayList0&&nums[i]==nums[i-1]
- C#中Array,ArrayList,List<T>的使用以及三者之间的对比
叽哩咕噜咕噜
c#开发语言
在C#中,`Array`、`ArrayList`和`List`都用于存储和管理数据集合,但它们在类型安全性、性能、灵活性和使用场景上存在显著差异。1.Array(数组)Array是c#中最基本的集合类型,用于存储相同的数据元素,大小固定,数组大小在声明后不能改变,需要重新声明才能调整大小,只能存储声明时指定的类型,性能安全。int[]numbers=newint[5]{1,2,3,4,5}numb
- java 数据结构常见面试题
m0_74824592
面试学习路线阿里巴巴java数据结构开发语言
1、Collection和Collections有什么区别?java容器分为两大类,集合序列和键值对。其中Collection是所有集合继承的最顶层接口,其中声明的方法有对集合的操作的增删改查等,所有具体的集合类都继承这个接口。例如ArrayList,HashSet等。Collections是包装类,,其中包含很多静态方法,理解为操作集合的工具类。例如:add()sort()等。2、List、Se
- apache ftpserver-CentOS config
gengzg
apache
<server xmlns="http://mina.apache.org/ftpserver/spring/v1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://mina.apache.o
- 优化MySQL数据库性能的八种方法
AILIKES
sqlmysql
1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的 性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很
- JeeSite 企业信息化快速开发平台
Kai_Ge
JeeSite
JeeSite 企业信息化快速开发平台
平台简介
JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台。
JeeSite本身是以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流
- 通过Spring Mail Api发送邮件
120153216
邮件main
原文地址:http://www.open-open.com/lib/view/open1346857871615.html
使用Java Mail API来发送邮件也很容易实现,但是最近公司一个同事封装的邮件API实在让我无法接受,于是便打算改用Spring Mail API来发送邮件,顺便记录下这篇文章。 【Spring Mail API】
Spring Mail API都在org.spri
- Pysvn 程序员使用指南
2002wmj
SVN
源文件:http://ju.outofmemory.cn/entry/35762
这是一篇关于pysvn模块的指南.
完整和详细的API请参考 http://pysvn.tigris.org/docs/pysvn_prog_ref.html.
pysvn是操作Subversion版本控制的Python接口模块. 这个API接口可以管理一个工作副本, 查询档案库, 和同步两个.
该
- 在SQLSERVER中查找被阻塞和正在被阻塞的SQL
357029540
SQL Server
SELECT R.session_id AS BlockedSessionID ,
S.session_id AS BlockingSessionID ,
Q1.text AS Block
- Intent 常用的用法备忘
7454103
.netandroidGoogleBlogF#
Intent
应该算是Android中特有的东西。你可以在Intent中指定程序 要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料 。都指定好后,只要调用startActivity(),Android系统 会自动寻找最符合你指定要求的应用 程序,并执行该程序。
下面列出几种Intent 的用法
显示网页:
- Spring定时器时间配置
adminjun
spring时间配置定时器
红圈中的值由6个数字组成,中间用空格分隔。第一个数字表示定时任务执行时间的秒,第二个数字表示分钟,第三个数字表示小时,后面三个数字表示日,月,年,< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
测试的时候,由于是每天定时执行,所以后面三个数
- POJ 2421 Constructing Roads 最小生成树
aijuans
最小生成树
来源:http://poj.org/problem?id=2421
题意:还是给你n个点,然后求最小生成树。特殊之处在于有一些点之间已经连上了边。
思路:对于已经有边的点,特殊标记一下,加边的时候把这些边的权值赋值为0即可。这样就可以既保证这些边一定存在,又保证了所求的结果正确。
代码:
#include <iostream>
#include <cstdio>
- 重构笔记——提取方法(Extract Method)
ayaoxinchao
java重构提炼函数局部变量提取方法
提取方法(Extract Method)是最常用的重构手法之一。当看到一个方法过长或者方法很难让人理解其意图的时候,这时候就可以用提取方法这种重构手法。
下面是我学习这个重构手法的笔记:
提取方法看起来好像仅仅是将被提取方法中的一段代码,放到目标方法中。其实,当方法足够复杂的时候,提取方法也会变得复杂。当然,如果提取方法这种重构手法无法进行时,就可能需要选择其他
- 为UILabel添加点击事件
bewithme
UILabel
默认情况下UILabel是不支持点击事件的,网上查了查居然没有一个是完整的答案,现在我提供一个完整的代码。
UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(60, 0, listV.frame.size.width - 60, listV.frame.size.height)]
- NoSQL数据库之Redis数据库管理(PHP-REDIS实例)
bijian1013
redis数据库NoSQL
一.redis.php
<?php
//实例化
$redis = new Redis();
//连接服务器
$redis->connect("localhost");
//授权
$redis->auth("lamplijie");
//相关操
- SecureCRT使用备注
bingyingao
secureCRT每页行数
SecureCRT日志和卷屏行数设置
一、使用securecrt时,设置自动日志记录功能。
1、在C:\Program Files\SecureCRT\下新建一个文件夹(也就是你的CRT可执行文件的路径),命名为Logs;
2、点击Options -> Global Options -> Default Session -> Edite Default Sett
- 【Scala九】Scala核心三:泛型
bit1129
scala
泛型类
package spark.examples.scala.generics
class GenericClass[K, V](val k: K, val v: V) {
def print() {
println(k + "," + v)
}
}
object GenericClass {
def main(args: Arr
- 素数与音乐
bookjovi
素数数学haskell
由于一直在看haskell,不可避免的接触到了很多数学知识,其中数论最多,如素数,斐波那契数列等,很多在学生时代无法理解的数学现在似乎也能领悟到那么一点。
闲暇之余,从图书馆找了<<The music of primes>>和<<世界数学通史>>读了几遍。其中素数的音乐这本书与软件界熟知的&l
- Java-Collections Framework学习与总结-IdentityHashMap
BrokenDreams
Collections
这篇总结一下java.util.IdentityHashMap。从类名上可以猜到,这个类本质应该还是一个散列表,只是前面有Identity修饰,是一种特殊的HashMap。
简单的说,IdentityHashMap和HashM
- 读《研磨设计模式》-代码笔记-享元模式-Flyweight
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java
- PS人像润饰&调色教程集锦
cherishLC
PS
1、仿制图章沿轮廓润饰——柔化图像,凸显轮廓
http://www.howzhi.com/course/retouching/
新建一个透明图层,使用仿制图章不断Alt+鼠标左键选点,设置透明度为21%,大小为修饰区域的1/3左右(比如胳膊宽度的1/3),再沿纹理方向(比如胳膊方向)进行修饰。
所有修饰完成后,对该润饰图层添加噪声,噪声大小应该和
- 更新多个字段的UPDATE语句
crabdave
update
更新多个字段的UPDATE语句
update tableA a
set (a.v1, a.v2, a.v3, a.v4) = --使用括号确定更新的字段范围
- hive实例讲解实现in和not in子句
daizj
hivenot inin
本文转自:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2842855.html
当前hive不支持 in或not in 中包含查询子句的语法,所以只能通过left join实现。
假设有一个登陆表login(当天登陆记录,只有一个uid),和一个用户注册表regusers(当天注册用户,字段只有一个uid),这两个表都包含
- 一道24点的10+种非人类解法(2,3,10,10)
dsjt
算法
这是人类算24点的方法?!!!
事件缘由:今天晚上突然看到一条24点状态,当时惊为天人,这NM叫人啊?以下是那条状态
朱明西 : 24点,算2 3 10 10,我LX炮狗等面对四张牌痛不欲生,结果跑跑同学扫了一眼说,算出来了,2的10次方减10的3次方。。我草这是人类的算24点啊。。
然后么。。。我就在深夜很得瑟的问室友求室友算
刚出完题,文哥的暴走之旅开始了
5秒后
- 关于YII的菜单插件 CMenu和面包末breadcrumbs路径管理插件的一些使用问题
dcj3sjt126com
yiiframework
在使用 YIi的路径管理工具时,发现了一个问题。 <?php  
- 对象与关系之间的矛盾:“阻抗失配”效应[转]
come_for_dream
对象
概述
“阻抗失配”这一词组通常用来描述面向对象应用向传统的关系数据库(RDBMS)存放数据时所遇到的数据表述不一致问题。C++程序员已经被这个问题困扰了好多年,而现在的Java程序员和其它面向对象开发人员也对这个问题深感头痛。
“阻抗失配”产生的原因是因为对象模型与关系模型之间缺乏固有的亲合力。“阻抗失配”所带来的问题包括:类的层次关系必须绑定为关系模式(将对象
- 学习编程那点事
gcq511120594
编程互联网
一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧!
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去
- Reverse Linked List II
hcx2013
list
Reverse a linked list from position m to n. Do it in-place and in one-pass.
For example:Given 1->2->3->4->5->NULL, m = 2 and n = 4,
return 
- Spring4.1新特性——页面自动化测试框架Spring MVC Test HtmlUnit简介
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- Hadoop集群工具distcp
liyonghui160com
1. 环境描述
两个集群:rock 和 stone
rock无kerberos权限认证,stone有要求认证。
1. 从rock复制到stone,采用hdfs
Hadoop distcp -i hdfs://rock-nn:8020/user/cxz/input hdfs://stone-nn:8020/user/cxz/运行在rock端,即源端问题:报版本
- 一个备份MySQL数据库的简单Shell脚本
pda158
mysql脚本
主脚本(用于备份mysql数据库): 该Shell脚本可以自动备份
数据库。只要复制粘贴本脚本到文本编辑器中,输入数据库用户名、密码以及数据库名即可。我备份数据库使用的是mysqlump 命令。后面会对每行脚本命令进行说明。
1. 分别建立目录“backup”和“oldbackup” #mkdir /backup #mkdir /oldbackup
- 300个涵盖IT各方面的免费资源(中)——设计与编码篇
shoothao
IT资源图标库图片库色彩板字体
A. 免费的设计资源
Freebbble:来自于Dribbble的免费的高质量作品。
Dribbble:Dribbble上“免费”的搜索结果——这是巨大的宝藏。
Graphic Burger:每个像素点都做得很细的绝佳的设计资源。
Pixel Buddha:免费和优质资源的专业社区。
Premium Pixels:为那些有创意的人提供免费的素材。
- thrift总结 - 跨语言服务开发
uule
thrift
官网
官网JAVA例子
thrift入门介绍
IBM-Apache Thrift - 可伸缩的跨语言服务开发框架
Thrift入门及Java实例演示
thrift的使用介绍
RPC
POM:
<dependency>
<groupId>org.apache.thrift</groupId>