自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Intelij Idea引入Java Jar包

有些时候,因为各种各样的原因我们没办法通过maven坐标来引入Jar包,只能通过源文件来引入Jar包,下面就是如何引入Jar包的详细步骤。至此,解决了一个Jar包从复制,查看,代码引入,代码部署的所有流程。

2023-10-10 15:16:48 383

原创 LeetCode接雨水问题分析&精讲

从上面的分析我们可以得出,需要找到当前柱子左右的最大值,但是一定要是最大值吗?因为当前端是低的一头,水都是从这里流走的,另外一边是不是最大值已经不重要了。从上面的代码可以看到,这里去掉了一个循环,但是复杂度的量级还是没有变化,依旧是两层for循环。当我们将思维集中在每一个柱子的时候,就能够有所发现。我们看到,整个遍历是从左到右遍历的,那么当前点左边的最大值肯定是我们遍历过的点的值,只要每次都拿最大的值就不用再去查询。遍历每个柱子,然后取这这个柱子的左右两侧最高点的小值,累加就能得到所有柱子能接多少雨水。

2023-06-30 18:02:24 903

原创 puppeteer 页面遍历

很多时候我们需要遍历我们的页面来检查页面是否存在问题,以更好的保证可用性和安全性,所以遍历一个给定页面是比较通用的能力,是很多高级功能的基础。下面就介绍怎么使用puppeteer来实现页面遍历的功能。

2023-06-25 16:32:15 242

原创 跳表及其JAVA实现

跳表(Skip List)是一种基于链表的数据结构,它可以支持快速的查找、插入、删除操作,并且具有较好的平均时间复杂度,可以替代平衡树等复杂数据结构。/**数组存储每层索引的下一个节点。比如下标0表示链表本身,下标1表示第一层索引,依次类推。} }/**maxLevel 索引最大高度currentLevel 当前索引高度head 跳表头节点,从head查起} }i >= 0;} /**

2023-06-01 10:26:46 1304

原创 Java并发编程(一)

Java并发编程特性

2023-04-27 17:20:17 427

原创 继承和组合

之前我们讲了对象的继承,并且有一个设计原则就是尽量避免复杂的继承关系,否则会降低代码可读性。并且会导致类的数量膨胀,最后无法收拾。对于这种情况,我们简单举一个例子:问题,有一个Bird类,他的子类有很多,比如鸵鸟(ostrich),乌鸦(crow)等等。他们分为会飞和不会飞,所以在抽象父类 Bird的基础上我们还要再实现两个抽象父类,会飞的鸟和不会飞的鸟。

2023-04-25 20:03:41 32

原创 基于接口而非实现编程---推己及人

1、实现要抽象,保留以后的扩展性。2、方法名只暴漏功能,不要带细节,因为细节会变。(有人说方法也可能会变,但是方法变化的频率远第一实现,而且方法变化之后我们可以重载实现)3、实现细节一定要封装好,比如上面的init,这根本不需要外部调用就不要开出去,否则别人误用会造成不可预见的风险。

2023-04-25 10:07:34 52

原创 Java之抽象类和接口

上篇我们说了Java的三大特性,封装,继承和多态,封装一目了然。对于继承和多态我们是怎么应用的呢,这就引出了抽象类和接口的概念。我们思考一个问题,如果一个项目中的多个类有部分共同的方法和属性,那我们怎么设计呢?怎么才能最大程度的复用这些共同的方法和属性呢?这就出现了我们上篇中讲的继承了,他的好处就是代码复用。所以继承可以解决上面代码复用的问题了。那么我们再思考另外一个问题,如果项目中的多个类还有自己特有的相关方法怎么办呢,这就涉及到了另外一个特性多态。

2023-04-24 19:21:23 39

原创 Java 三大特性

所谓Java三大特性就是我们耳熟能详的 封装,继承,多态,那么他们各有什么好处呢。

2023-04-21 15:49:56 51

原创 Java IO之道

当我们需要在Java程序中读写文件或者处理流数据时,就需要使用Java IO(Input/Output)相关的API。Java IO提供了丰富的类和方法,可以方便地读取和写入数据,处理文件和流,以及进行网络通信。。

2023-03-22 20:18:30 90

原创 动态规划浅谈(一)

首先按照我们的三板斧来应对。a、定义是什么,这里求的是多少种跳法,定义f(x) 表示跳上x个台阶的时候,有多少种跳法。b、推导公式,动态规划需要从宏观考虑,不要考虑太多,假设现在你要到第x个台阶上去,那么你只有两种路径上来,一个是从x-2跳两步,一个是从x-1跳一步上来,那么就有f(x)=f(x-1)+f(x-2)c、初始值,根据推导公式分析,x需要从2开始,否则会出现负数,则f(0),f(1)需要初始化。

2022-12-08 21:31:22 99

原创 ibatis中使用typeHandler保存java对象到数据库

保存java对象到数据库

2022-12-07 20:16:42 521

原创 websocket部署

一、实现代码服务端实现,新建一个普通的web工程,添加代码:pom依赖代码:import javax.websocket.*;import javax.websocket.server.PathParam;import javax.websocket.server.ServerEndpoint;/** * 业务描述:消息通道服务 * * @author xxxxxx * @time 上午11:00 */@ServerEndpoint("/websocket/echo/{u

2022-05-05 14:35:42 1306

原创 多张截图拼接成长图-java

背景:工作中我们经常需要将一张张的截图拼接成一整张图。但是因为图片顶部和底部tabBar的存在,我们没有办法直接拼接。下面我们利用opencv的方法实现图片的完美拼接。素材图片:基本算法:1、需要拼接的图片需要有1/3重合的部分,否则无法拼接。2、重点是需要找到从哪里开始拼接。3、从第一张图片的2/3处截取1/6的图片作为模版,这里最后留下1/6是因为部分截图有底部tabBar,需要排除。4、用截取到的模版,在第二张图片中查找是否有这块,如果没有则两个图片无法拼接。找到...

2022-03-28 19:59:47 4381

原创 安卓自动点击

前言:ui自动化目前使用比较广泛,但是各种各样的弹框会阻断自动化流程。如果业务自己写处理逻辑又特别笨重。于是一个独立的能自动处理弹框的app就会很实用。build.gradle:apply plugin: 'com.android.application'android { compileSdkVersion 28 defaultConfig { applicationId "com.test.helper" minSdkVersion 15

2022-03-17 20:50:16 946

原创 图片相似度对比-java

图片相似度对比-java

2022-03-16 20:17:14 8473 1

原创 多线程执行框架

前言:批量执行任务可以提炼为几个基本点:1、任务的执行代码和结果收集。2、提交任务。3、执行任务的线程池。一、执行单元public class YourRecursiveAction extends RecursiveAction { private YourService yourService; //用到的服务,可以多个 private YourParamDO yourParamDO; //你的参数,可以多个 private YourResultDO y

2022-03-03 15:57:51 263

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除