自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhangxing

天道酬勤,天下未定,你我皆是黑马!

  • 博客(296)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 Golang之策略模式

策略模式说通俗点,根据不同的策略干不同的事情。

2023-02-16 16:55:53 264 1

原创 Golang并发之WaitGroup篇

熟悉WaitGroup的同学应该清楚,它对标Java中的CutdownLatch, 是解决并发中线程安全的利器。

2022-12-29 19:53:45 276

原创 Golang之单例模式

说到单例模式,相信很多同学在实战中都有应用过;今天笔者就以单例模式在golang中的应用开篇;单例模式通俗的可以理解为,应用启动后,只允许实例化一次,仅此一次就够了。

2022-12-28 15:04:37 247

原创 golang利用反射根据某一字段排序

golang 里面的反射其实很简单,无非分为两种: 一种是求值ValueOf、另一种是求类型TypeOf,Elem()方法相当于对一个指针取元素值的效果。

2022-11-15 14:35:38 193

原创 杭漂多年是时候画个句号呢

今年已然是而立之年,心情跟往年相比,说没啥俩样那肯定是假的;男人嘛,到了三十岁这个坎,是该好好规划下接下来的人生呢:比如娶一娇妻、找个体面的工作,抑或是好生经营一份副业等等。写了这么多,执笔欲止,总算写完了。该文呢,也算是对自己杭漂多年一个交代吧!希望当老了之后,再次回过头看看这片文章,心中依旧是那个风采依旧的少年,风度翩翩,不惧未来,无畏前方。

2022-10-08 17:36:52 296

原创 大顶堆及小顶堆求最大或最小K个数

PriorityQueue为优先级队列,遵循FIFO规则,其构造器可以传入容量及自定义comparator, 默认是小顶堆实现。根节点数值小于或等于左右孩子节点数值,其中顶节点数最小。根节点数值大于或等于左右孩子节点数值,其中顶节点数最大。

2022-09-21 14:22:18 374

原创 查找有序数组的某元素的索引

在某一有序数组中,给定一个target值,求出target在数组中的索引位置, 找不到的话就返回-1

2022-09-05 14:59:21 422

原创 两个有序数组的合并

现有两个升序数组m n, 现在需要将他们合并成一个有序数组eg:合并之后为{1, 2, 3, 4, 4, 5}

2022-09-05 14:10:11 112

原创 Java之空对象模式

空对象模式,即一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方。...

2022-08-05 14:14:21 400

原创 Java之中介者模式

中介者模式即用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

2022-07-05 19:50:21 250

原创 Java之状态模式

在状态模式中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。

2022-07-05 16:07:06 250

原创 Java之委派模式

委派模式的基本作用是负责任务的调度和分配任务。它不属于23种设计模式的范畴。

2022-07-01 16:35:02 776

原创 Java之原型模式

原型模式是用于创建重复的对象,同时又能保证性能。它属于创建型模式,它提供了一种创建对象的最佳方式。

2022-06-30 16:27:08 263

原创 Java之备忘录模式

备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。

2022-06-29 18:18:05 323

原创 徒手写个Java中间件

很多同学一听说中间件这个词汇,心里可能会觉得很高大上,如果让自己写个中间件,望而生畏;其实呢,中间件并非是不可企及的东西,我们平时用的mysql-connect, mybatis等中间件相信大家都会熟悉,今天笔者就带大家来写个简易的中间件。......

2022-06-28 17:42:54 733

原创 Java之组合模式

组合模式,又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。它将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。......

2022-06-28 16:45:03 176

原创 Java之桥接模式

桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。它将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。

2022-06-22 15:57:03 316

原创 Java之适配器模式

适配器模式,将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起合作无间;主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。.........

2022-06-21 14:37:25 586

原创 Java之门面模式

门面模式又名外观模式,它是以一种中介的形态处理各种子系统之间的复杂业务,调用者无需知道其中的具体逻辑;比如你要要装修一套房子,你不需要自己去跟水泥工,电工及钢筋工等打交道,你只需要跟装修公司沟通好需要装修的样式即可,这样省时省力。......

2022-06-17 18:15:08 521

原创 Java之享元模式

所谓享元,即共享的对象。也就是在业务开发过程中,我们常把反复创建的对象缓存起来,要用的时候直接去缓存池里面获取,这样有利于节约系统内存,极大的提升系统的效率。

2022-06-14 15:06:44 205

原创 Java之观察者模式

其实,观察者模式在我们生活中很常见;最经典的一个场景就是警察抓小偷,此时小偷是被观察者,警察是观察者,一旦小偷偷东西犯案了,警察观察到了就立刻实施逮捕。

2022-06-08 18:19:38 400 1

原创 Java SPI深入理解与自定义扩展SPI

SPI(service provider interface)即服务提供者接口,通俗来讲,提供方只需要给定接口的命名,入参及返回类型,具体的实现可以支持默认实现或让被调用方自己实现。SPI机制是JDK内置的一种服务发现,将服务接口与服务实现分离以达到解耦、大大提升了程序可扩展性的机制。引入服务提供者就是引入了SPI接口的实现者,通过本地的注册发现获取到具体的实现类,轻松可插拔SPI实现了动态加载和插件化。.........

2022-06-06 22:36:47 623

原创 SpringBoot如何自定义starter组件

在开发过程中,相信大家都看到类型的很多starter组件依赖,比如mybatis-spring-boot-starter, redis-spring-boot-starter等等,通俗来讲,这类starter组件内部自身封装了一套服务,然后其他的工程按需依赖,按约定配置且约定配置大约自身配置的原则,为代码或服务的复用提供了便捷的实现。

2022-06-02 17:52:34 378

转载 Kubernetes香不香,你说了算

文章目录 🌟 前言1. 先导知识🍑 容器🍅 容器的特性 🍑 集群🍑 分布式🍑 微服务 2. 什么是Kuber...

2022-05-23 11:28:53 229

原创 Java运用PhantomJs实现后台截图

场景分析很多时候,业务需求需要在不依赖前端的前提下,进行后台截图;今天就以phantomjs实现后台截图。环境准备// 拉jingRUN rpm -ivh --nodeps "http://yum.tbsite.net/taobao/7/x86_64/test/phantomjs/phantomjs-2.1.1-767290.el7.x86_64.rpm"RUN cp /home/admin/phantomjs/phantomjs-2.1.1-linux-x86_64/bin/phantom

2022-05-19 18:34:41 687

原创 Java中执行python脚本

很多时候,项目中需要执行某些脚本来实现我们想要的效果;今天笔者就以java中执行python脚本为例。我们可以想象下,要想执行python的话,安装pyhton环境肯定是毋庸置疑的,然后python 脚本中相关的依赖包我们也得安装下。废话少说,上代码。Dockerfile安装python环境及依赖包# 安装python环境RUN rpm -ivh --nodeps "http://yum.tbsite.net/taobao/7/x86_64/current/python-3.8.2/python-.

2022-05-19 18:17:36 1380

原创 DFS深度优先搜索算法

DFS即深度优化搜索eg:现有根结点 root [3, 9, 20, null, null, 15, 17]求二叉树距叶子节点最短路径求二叉树的最大深度构造二叉树数据结构public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int val) { this.val = val; }}二叉树距叶子节点最短路径 private static.

2022-05-07 18:26:39 664

原创 BFS宽度优先搜索算法

BFS即宽度优化搜索或广度优化搜索,按照层级一层层的遍历执行;eg:现有根结点 root [3, 9, 20, null, null, 15, 17]求二叉树距叶子节点最短路径求二叉树的最大深度构造二叉树数据结构public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int val) { this.val = val; }}二叉树距叶子.

2022-05-07 12:08:19 551

原创 最短公共前缀元组

最短公共前缀元组比之leetcode最长公共前缀有所不同,这里要求从一个数组中,获取最短的公共前缀元组eg:输入123123/12123/12/234123/13234234/23456输出:123234234解题思路:排序+栈private static List<String> capture(List<String> filterList) { Stack<String> stringStack = new Stack&lt.

2022-05-06 16:03:09 241

原创 Leetcode三数之和

给定一个整型数组nums, 从中任意挑选三个数字,使得三数之和为0且数组内3个数字可任意顺序,但必须保证不重复,返回所有满足条件的数组eg 输入: [0, 1, 2, 3, -1, -2]输出:[[0, 1, -1], [0, -2, 2], [3, -1, -2]]解题思路: 双指针 + 哈希private static List<List<Integer>> threeSum(int[] nums) { List<List<Integer>&.

2022-05-06 15:57:10 92

原创 链表反转递归解法

链表反转是道很常见的算法面试题,今天笔者就以递归的方式来实现链表反转。递归思路如果要实现节点1及节点2的指针反转head.next.next = head;head.next = null; 递归代码如下:package com.aliyun.etmp.datastructure;public class ListNode { private int val; private ListNode next; private ListNode (int v.

2022-04-01 15:37:22 806

原创 动态规划之背包问题

现有1kg, 2kg, 4kg的物品,价值分别为6元,10元,12元,那么5kg的背包怎么装才能使价值最大?价值: 6元 10元 12元物品: A 1kg B 2kg C 4kg1kg2kg3kg4kg5kg加入物品A 1kg66666加入物品B 2kg610161616加入物品C 4kg610161618思路分析:当只有物品A可选时背容量为1kg,2kg,3kg,4kg,5kg的时候,最大价值都为6元.

2022-02-17 15:06:19 100

原创 git【--ours】及【--theirs】优雅的解决冲突

场景分析在很多时候,我们在merge或者cherry-pick的时候,发生了冲突;然而对于某个冲突文件,我们需要全盘接收本地的代码或者全盘接收合并分支的代码;这个时候,如果我们在冲突文件一个个解决冲突的话,无疑是最笨的方法;如果不解决冲突的话,又不能对该冲突文件进行任何其他的操作,例如checkout或者stash;此时,–ours和–theirs就充分体现其价值呢。命令讲解保留本地代码git checkout --ours fileName保留合并分支代码git checkout

2022-01-07 14:43:43 1960 1

原创 数据结构与算法的时间及空间复杂度

计算时间及空间复杂度意义这里可以根据计算出来的时间及空间复杂度更好的优化现有的代码,使现有的代码性能达到更优。常见的时间复杂度常数阶:O(1) , 1表示常数,所有能确定的数字都用O(1)表示,也就是O(1000) => O(1)对数阶:O(logn)线性阶:O(n)线性对数阶:O(nlogn)平方阶:O(n^2)N次方阶:O(n^n)注意:在计算时间复杂度的时候,对于表达式的常数项可以省略,或者有多阶表达式相加减,取最高阶。时间复杂度更优排序O(1) > O(

2021-12-30 14:55:42 260

原创 Java反射在实际项目中的应用

Java反射机制Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。 这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。 反射被视为动态语言的关键。在众多开源框架中,反射机制的身影从不缺乏。今天就以Java反射在实际项目中的应用来展开。Java反射在实际项目的应用很多时候,反射往往伴随着Java泛型一起使用,这样以来,大大提高了被复用方法

2021-12-22 19:12:28 1352

原创 Mapper通用组件构建

组件构建思路在java代码中,我们可能会把公共的逻辑块进行复用,进而抽象成一个独立的组件,其作用无非就是为了配置简单,实现简洁;那么在mybatis的xml中,我们也可以延用这种思路,把公共的mapper处理块抽象成一个独立的组件,然后哪里需要哪里就去按需引用即可。实现方案Java层面,定义一个公共的Param类@Datapublic class TableFilterSortParam implements Serializable { @ApiModelProperty(va

2021-12-22 17:43:33 454

原创 SpringBoot中Velocity动态模版引擎

Velocity模版引擎简介Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity 应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity基础语法1."#"用来标识Velocity的关键字,包括#set、

2021-09-09 11:29:32 1089

原创 Java经典面试题

1. 缓存雪崩,缓存击穿,缓存穿透区别2. Spring如何解决循环依赖问题3.MYSQL语句执行全过程4.SpringBoot自动装配原理

2021-08-26 10:43:56 189

原创 Swagger Model时间戳自动转型

前言坦白来讲,如果不做任何处理,从数据库表的Date类型字段通过接口吐出来的却是一串时间戳,这样的话,开发者还得另外开辟一个字段来存储转化的具体日期。Swagger 集成POM依赖 <!-- Swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox

2021-06-25 16:17:56 632

原创 JAVA之责任链模式

责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。...

2021-06-10 20:00:20 344

websocket实现服务端与客户端通信

该demo主要运用websocket实现服务端与客户端实时通信,实现即时推送/聊天等功能

2021-09-18

MQTT定时上报第三方系统

根据第三方提供的MQTT配置信息,topic的设计及playload封装,定时的上报相关参数给第三方系统

2021-08-28

基于SpringBoot的微服务考勤系统

该项目主要基于SpringBoot的考勤系统,主要涉及角色管理,用户管理,考勤管理,课程管理等模块组成

2021-01-14

MQTT实现前后端实时通信

该demo主要围绕mqtt如何实现前后端实时通信及如何设计优雅的主题(topic),适用于物联网mqtt通信集成方案或实时性较强的通信功能。

2021-01-14

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

TA关注的人

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