- 博客(17)
- 收藏
- 关注

原创 小猿口算脚本
实现原理:安卓adb截图传到电脑,然后用python裁剪获得两张数字图片,使用ddddocr识别数字,比较大小,再用adb命令模拟安卓手势实现>
2024-10-09 20:29:23
63828
127
原创 ElasticSearch(ES从入门到精通一篇就够了)
elasticsearch底层是基于lucene来实现的。Lucene是一个Java语言的搜索引擎类库,是Apache公司的顶级项目,由DougCutting于1999年研发。。2004年Shay Banon基于Lucene开发了Compass2010年Shay Banon 重写了Compass,取名为Elasticsearch。如何使用拼音分词器?①下载pinyin分词器②解压并放到elasticsearch的plugin目录③重启即可如何自定义分词器?
2024-03-08 10:23:25
1571
1
原创 KMP 算法理论及实现 (Java)
KMP 算法是一种字符串匹配算法。核心思想是利用匹配失败之后的信息,尽量减少模式串与主串的匹配次数来达到快速匹配的目的。理应一个 next() 函数实现,该函数本身包含了模式串的局部匹配信息。KMP 算法的时间复杂度是 O(m+n)
2023-12-08 14:05:07
1561
原创 还记得当初自己为什么选择计算机?
大二的寒假,我刚学原生Android,学完后就写了个校园助手,功能有 定位天气查询,每日早报,成绩查询,课表查询等,还把自动打卡的功能添加进了软件,到现在我还在用,比学校的教务系统还方便,长按软件图标就能快速查询,省去了很多时间。2017年初三毕业的时候买了手机,那个时候就接触到互联网了,有一次下载了个刷点券的软件,给了root权限后,我的手机被锁机了,要50块钱找作者解锁,我没有罢休,我学到了反编译,查看源代码找到了锁机病毒的密码。”谁知道,我刚入门的那天,电脑却故障了,我只能用巨大的打字机来编程。
2023-12-08 13:59:46
902
8
原创 Redis缓存更新策略、穿透、雪崩、击穿
Redis中缓存的数据大面积同时失效,或者Redis宕机,从而会导致大量请求直接到数据库,压垮数据库。缓存和数据库中都没有的数据,可用户还是源源不断的发起请求,导致每次请求都会到数据库,从而压垮数据库。Redis中一个热点key在失效的同时,大量的请求过来,从而会全部到达数据库,压垮数据库。
2023-07-17 11:51:30
318
1
原创 Ubuntu搭建pptp服务器(保姆级)
点对点隧道协议(PPTP)是VPN服务的一种最简单的实现协议,其它常见的VPN类型还有:使用IPsec的第2层隧道协议(L2TP/IPsec)、安全套接字隧道协议(SSL VPN)。本文主要讲述基于Ubuntu的PPTP服务安装与配置。
2023-05-30 12:35:40
3944
原创 Docker实用教程
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。而要自定义镜像,就必须先了解镜像的结构才行。
2023-05-26 23:41:44
868
6
原创 Java实现语音合成(附jacob-1.18-x64.dll下载地址)
最近参加中国软件杯的时候看到一个题目是桌面有声小说合成工具,可以使用tts的sdk,但是免费额度有限制,所以我选择了免费的jacob。这里我在Windows下调用jacob.dll文件实现语音合成。
2023-05-15 08:31:51
1464
1
原创 Java 17的一些新特性
Java 17是Java 11以来又一个LTS(长期支持)版本,Java 11 和Java 17之间发生了那些变化可以在OpenJDK官网找到JEP(Java增强建议)的完整列表。
2023-05-13 15:34:16
925
4
原创 Android实现显示进度条下载APP
Android中有一个进度对话框ProgressDialog,可以实现等待进度和具有具体数值进度的显示。这里我用的okhttp3来发送请求实现在线更新。
2023-05-04 21:35:52
1705
4
原创 二叉查找树(Java)
很多情况下,我们可能需要像遍历数组数组一样,遍历树,从而拿出树中存储的每一个元素,由于树状结构和线性结构不一样,它没有办法从头开始依次向后遍历,所以存在如何遍历,也就是按照什么样的。在某些情况下,我们需要查找出树中存储所有元素的键的最大值,比如比如我们的树中存储的是学生的成绩和学生的姓名,那么需要查找出最高的分数是多少?根据对图的观察,我们发现二叉树其实就是由一个一个的结点及其之间的关系组成的,按照面向对象的思想,我们设计一个结点类来描述结点这个事物。找到当前结点的左子树,如果不为空,递归遍历左子树。
2023-04-27 16:22:26
754
原创 springcloud 微服务 之 Eureka 配置
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。之前说过,服务发现、服务注册统一都封装在eureka-client依赖,因此这一步与服务注册时一致。
2023-04-20 13:09:16
1480
原创 数据结构与算法(Java)——堆
它是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不。这里要注意堆中仅仅规定了每个结点大于等于它的两个子结点,但这两个。堆是计算机科学中一类特殊的数据结构的统称,堆通常可以被看做是一棵完全二叉树的数组对象。子结点的顺序并没有做规定,跟我们之前学习的二叉查找树是有区别的。具体方法就是将二叉树的结点按照层级顺序放入数组中,根结点在位置。上浮:最后面的结点一直与父结点比较,如果比父结点大,就交换。而它的两个子结点的位置则分别为。,则它的父结点的位置为。
2023-04-19 12:56:44
985
1
原创 Android 二级列表控件ExpandableListView 的简单使用
先上图: 布局很简单,就一个ExpandableListView ,直接上布局截图,相信各位能看懂 由于其控件会默认自带箭头,我们可以通过XML中在ExpandableListView控件加上取消掉其自带的指示器箭头,当然除了在xml上,也可通过在代码中,当绑定完控件后调用代码也可实现取消效果接下来是我们重点要研究的适配器FoodinfoExpandableAdapter,继承并重写了BaseExpandableListAdapter这个类的相关函数,其中注释我已经详细写在代码中,若是不懂或者写
2023-04-18 15:36:23
995
2
原创 Java8新特性之Stream流(含具体案例)
Stream 流是 Java 8 新提供给开发者的一组操作集合的 API,将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选、排序、聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,最后由终端操作 (terminal operation) 得到前面处理的结果。Stream 流可以极大的提高开发效率,也可以使用它写出更加简洁明了的代码。我自从接触过 Stream 流之后,可以说对它爱不释手。
2023-04-15 20:56:23
304
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人