注册
登录
java
>>
component
>>
返回
项目作者:
hryou0922
项目描述 :
Java的各种组件使用的demo,如fastjson、httpclient、jsoup、zookeeper、thumbnailator
高级语言:
Java
项目主页:
项目地址:
git://github.com/hryou0922/component.git
创建时间:
2018-03-31T15:49:02Z
项目社区:
https://github.com/hryou0922/component
开源协议:
下载
这个工程使用的Spring Boot 2 以上的版本
算法
算法:
book: 编程之法:面试和算法心得
https://wizardforcel.gitbooks.io/the-art-of-programming-by-july/content/a.14.html
leetcode分类总结
https://lefttree.gitbooks.io/leetcode-categories/sum/kSum.html
其他:
https://www.douban.com/note/330562764/
https://wdxtub.com/interview/14520604912864.html
com.hry.algorithm
leetcode leetcode算法题
见同级文档leetcode.md
recursive 递归算法
NQueen/NQueenII: 八皇后问题
sort:八大排序算法:
https://cloud.tencent.com/developer/article/1114692
letcode:
https://leetcode.com/problems/sort-an-array/submissions/
插入排序:InsertSort (队列分为两部分,左边是已经排序好的,从右边未排序队列中获取值,并按照顺序插入左边队列中)
执行时间 593 ms
希尔排序: ShellSort (记录按下标的一定增量分组,对每组使用直接插入排序算法排序)
选择排序: SelectionSort(从未排序的队列中选取一个最小/大值)
冒泡排序: BubbleSort(重复比较相邻的两个值)
执行时间超时
归并排序:MergeSort (是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案”修补”在一起,即分而治之)。)
执行时间 6ms
快速排序:QuickSort()
执行时间 5ms
堆排序: HeapSort (1. 从最后一个非叶子节点开始,循环向上完成大堆的排序; 2. 将0个元素和最后交换,再对0-(length-1)执行排序;3. 子树大堆排序:首元素排序,从左右节点选取大的比较,和首元素比较,如果小于首元素,则结束,否则交换, 循环向下层处理)
执行时间 578 ms -> 9s
基数排序:RadixSort
目前此算法只支持正整数
apache: apache中通用的组件用法
com.hry.java.apache
beanutils
BeanUtilTest:BeanUtil的常用操作方法
ConstructorUtilsTest:预留
ConverterTest:注册转换类
PropertyUtilsTest:类似BeanUtil
io: io操作demo
FilenameUtilsDemo: 对文件名、文件路径、文件扩展名操作的封装
FileUtils:对文件操作
文件:复制、移动
文件:把字符串列表、字符串、字节数组写入文件;读取文件到字符串列表、字符串、字节数组
文件夹:创建、复制、删除、清空
其他:获取临时文件、文件夹、文件大小、文件的修改时间修改和比较
lang3
ArrayUtilsTest:对数组进行操作类
DateUtilsTest: 日期操作工具类
RandomStringUtilsTest:生成随机字符串
RandomUtilsTest:生成随机数字
SerializationUtilsTest: 序列化操作
StringEscapeUtilsTest: 对各种语言中的非法字符串进行加密解密
StringUtilsTest:对字符串操作
SystemUtilsTest:获取环境变量,包括预先定义的Java的环境变量
ValidateTest: 对输入的数据进行合法性检查
fastjson
com.hry.java.fastjson
serializer
VO:序列化和各种注解使用; 序列化; 定义key名称,定义字段顺序,格式化时间
simple
SimpleMain:最简单的应用
guava : guava的基本用法
com.hry.guava
cache:
GuavaCache: 缓存的用法
concurrent:
RateLimiterUtils:限流
collectin:
MultiCollectionDemo: MultiMap,MultiSet,BiMap,Table
javaassist: javassist 基本用法
javabasic: jdk的基本用法
com.hry.java
cls: class的反射用法
consistencyhash: 一致性哈希散列函数的实现
concurrent: 多线程用法
Semaphore信号量用法
magicnumber:文件魔数
lambda: lambda的用法
CollectorsDemo
过滤:按照给定的要求对集合进行筛选满足条件的元素,java8提供的筛选操作包括:filter、distinct、limit、skip
映射:仅输出需要的字段数据。主要包含两类映射操作:map和flatMap。
map:扩展方法有mapToDouble、mapToInt、mapToLong
flatMap:与map的区别在于 flatMap是将一个流中的每个值都转成一个个流,然后再将这些流扁平化成为一个流
扩展方法:flatMapToDouble、flatMapToInt、flatMapToLong
查找:match。allMatch、anyMatch、noneMatch、findFirst、findAny
归约: reduce。对经过参数化操作后的集合进行进一步的运算
collect 归约操作
简单的收集操作,是对处理结果的封装:Collectors.toList、Collectors.toSet、Collectors.toMap
计算列表数量:Collectors.counting() 或stream().count()
最大年龄:(Collectors.maxBy
最小年龄:Collectors.minBy
列表值相加:Collectors.summingInt
一次性得到元素个数、总和、均值、最大值、最小值: IntSummaryStatistics
字符串拼接:Collectors.joining()
collect 分组 操作
对列表进行分组,并可对分组进行操作:Collectors.groupingBy
collect 分区 操作
分区可以看做是分组的一种特殊情况,在分区中key只有两种情况:true或false:Collectors.partitioningBy
StreamsEffectivenessDemo:测试串行和并行stream的执行时间,两者相差一倍
path:java中各类路径用法
JavaBasePathMain: Java获取本地路径的多种方式
regular: 正则表达式的用法
NumberRegular: 从字符串中过滤出数字,或相反的操作
PatternDemo: Pattern实例是不可变的,可线程安全; Matcher不支持并发请求
unsafe
Unsafe类的用法演示
utils: 工作类
DateUtils:时间格式化操作类,时间操作类
xml: JAXB:实现xml和java对象互转
JAXBManager:基本用法,演示
@XmlRootElement
,
@XmlAccessorType
,
@XmlElement
用法
JAXBManager:演示
@XmlAttribute
,
@XmlJavaTypeAdapter
,XmlAdapter用法
httpclient: httpclient的用法
com.hry.java.httpclient.
example
CloseableHttpClientGetTest: 模拟get请求
CloseableHttpClientGetWithParameterTest: 带参数的get请求
CloseableHttpClientPostTest: 模拟post请求 — 未实现
异常HttpAsyncClients、https、Post、Get的方法的应用
httpclient45
example:官方例子
其他后续再做:requestConfig、连接池、cookie、模拟登录、代理、Chunk、Credentials、POST/GET、form, request、SSL、文件上传
jsoup: jsoup用法
详细的用法见博客
Jsoup使用总结
lua:lua的脚本用法
mock: mock的基本用法
com.hry.mock
third:调用第三方的mock测试
base:
MockitBaseTest:
基本功能测试,when/thenReturn, when/thenThrow, when/thenAnswer
doAnswer/spy
verify:调用次数、最少调用次数、最多调用次数;固定参数,有条件参数
ReflectionTestUtils.setField:将mock对象设置为委托对象到成员变量
MockitoTest: mockit 其他属性的补充
MockMvcTest: 测试MockMvc
netty: netty的用法总结
com.hry.java.netty
通过客户端和服务端模拟netty通信
pingyin4j 文字转换为拼音
tess4j: 文字、图片的文字识别
com.hry.java.tess4j:
TesseractChinesePdfTest: OCR解析PDF中文文档
TesseractChineseTest: OCR解析中文图片截图
TesseractPdfTest:OCR解析pdf英文文档
TesseractTest:OCR解析图片
源码:
https://github.com/nguyenq/tess4j/tree/tess4j-4.5.1/src/main/java/com/recognition/software/jdeskew
thumbnailator:生成图像缩略图
thumbnailator是一个用来生成图像缩略图的Java类库
com.hry.java.thumbnailator.simple: 演示组件对图片如下的操作
指定大小进行缩放
按照指定比例进行缩放
不按照比例,强制指定大小进行缩放
对图片进行旋转
为图片增加水印
对图片进行裁剪
转化图片格式
对文件夹所有图片进行操作
zookeeper: zookeeper的用法
com.hry.java.zookeeper:暂时没试试
1
pinyin4j 汉字转拼音
ma_1649759666332.pdf
001_1649759665823.pdf