学习
让美好继续发生
等待不是为了你能回来,而是找个借口不离开!
展开
-
使用conda安装配置python环境
我这里下载的是2-4.7.12.1,具体可以参考如下地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/原创 2023-06-19 16:34:51 · 959 阅读 · 0 评论 -
centos7中安装mattermost
centos安装Mattermost原创 2023-05-17 17:45:53 · 1009 阅读 · 0 评论 -
Prometheus学习
初学Prometheus原创 2022-12-09 14:09:52 · 489 阅读 · 0 评论 -
Nio-selector之多线程
selector结合多线程翻译 2022-11-11 10:18:05 · 154 阅读 · 0 评论 -
用户线程和守护线程
用户线程和守护线程原创 2022-05-31 17:28:16 · 146 阅读 · 0 评论 -
多线程之常见方法使用
多线程之常见方法使用start和run首先看调用run方法代码示例:package com.wxit.test02;import lombok.extern.slf4j.Slf4j;/** * @author wj * @date 2022.01.02 19:25 */@Slf4j(topic = "c.Test")public class Test { public static void main(String[] args) { Thread thr原创 2022-01-22 10:53:02 · 663 阅读 · 0 评论 -
java对线程之创建线程
java对线程之创建线程创建线程的方法方法一:直接使用Threadpackage com.wxit.test01;import lombok.extern.slf4j.Slf4j;/** * @author wj * @date 2022.01.01 14:47 */@Slf4j(topic = "c.TestCreateThread01")public class TestCreateThread01 { public static void main(String[]原创 2022-01-01 15:21:24 · 85 阅读 · 0 评论 -
springboot整合定时任务
springboot整合定时任务一.创建定时任务类,使用cron表达式代码示例如下package com.wxit.staservice.scheduled;import com.wxit.staservice.service.StatisticsDailyService;import com.wxit.staservice.utils.DateUtil;import org.springframework.beans.factory.annotation.Autowired;import原创 2021-12-25 21:22:21 · 113 阅读 · 0 评论 -
netty之hello-world
netty之hello-world服务端package com.netty;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelHandlerContext;import io.netty.channel.ChannelInboundHandlerAdapter;import io.netty.channel.ChannelInitializer;import io.netty.channel.ni翻译 2021-10-27 19:37:48 · 103 阅读 · 0 评论 -
jdk新特性
jdk新特性本内容学习自知秋老师的翻译课程jdk10引入的类型推断代码示例:package com.wxit.api;import java.util.List;/** * @author wj * @date 2021.10.18 14:42 * jdk10引入的类型推断 */public class TypeInterfaceDemo { public static void main(String[] args) { var name1 = List.翻译 2021-10-18 19:57:38 · 92 阅读 · 0 评论 -
安卓之首页获取轮播图
安卓之首页获取轮播图第一步,编写ui控件代码如下 <com.youth.banner.Banner android:id="@+id/banner" android:layout_margin="8dp" android:layout_width="match_parent" android:layout_height="200dp"/>需要引入依赖,方式可以导入arr包,或者直接从网上联网原创 2021-10-14 11:21:07 · 248 阅读 · 0 评论 -
JDK9-15的新特性
JDK9-15的新特性内容学习自知秋老师的翻译课程copyOf方法代码示例package com.wxit.api;import java.util.ArrayList;import java.util.List;/** * @author wj * @date 2021.09.25 09:49 */public class CopyOfApiDemo { public static void main(String[] args) { List<S翻译 2021-09-27 09:16:20 · 120 阅读 · 0 评论 -
JDK16新特性
JDK16新特性1.instanceof的增强代码示例package com.wxit.jdk16;/** * @Author wj * **/public class Test01 { public static void main(String[] args) { //之前 Object num = 123; if (num instanceof Integer){ Integer integer = (I原创 2021-06-04 14:22:09 · 212 阅读 · 0 评论 -
配置Security登录授权过滤器
配置Security登录授权过滤器代码如下package com.wxit.server.config.security;import com.wxit.server.pojo.Admin;import com.wxit.server.service.IAdminService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.B翻译 2021-06-02 15:33:54 · 752 阅读 · 0 评论 -
JWT Token 工具类编写
JWT Token 工具类编写代码如下package com.wxit.server.config.security;import io.jsonwebtoken.*;import org.springframework.beans.factory.annotation.Value;import org.springframework.security.core.userdetails.UserDetails;import org.springframework.stereotype.Comp翻译 2021-06-01 21:27:18 · 246 阅读 · 0 评论 -
深度解析StringBuilder
深度解析StringBuilder基本介绍1.StringBuilder 是一个可变的字符序列,此类提供一个与StringBuffer兼容的API,但不保证同步(StringBuilder,不是线程安全的)。此类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候,如果可能,建议优先选用此类,因为在大多数实现中,它比StringBuffer要快2.在StringBuilder上的主要操作是append 和 insert 方法,可重载这些方法,以接受任意类型的数据St原创 2021-04-05 13:17:13 · 531 阅读 · 1 评论 -
深度解析StringBuffer
深度解析StringBuffer基本介绍StringBuffer代表可变的字符序列,可对字符串内容进行增删,很多方法与String相同,但是StringBuffer是可变长度的StringBuffer是一个容器StringBuffer类图如下从类图中可以看出StringBuffer的直接父类 是 AbstractStringBuilderStringBuffer 实现了 Serializable, 即 StringBuffer 的对象可以串行化在父类中 AbstractStringBuil原创 2021-04-03 16:05:53 · 345 阅读 · 0 评论 -
Nacos(注册中心与服务调用)
Nacos(注册中心与服务调用)什么是Nacos?Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施常见的注册中心Eureka(原原创 2021-03-28 19:55:51 · 664 阅读 · 0 评论 -
MyBatis-Plus入门
MyBatis-Plus入门mybatis-plus官网https://mp.baomidou.com/简介MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。快速入门案例创建数据库mybatis-plus创建user表对应数据库脚本如下CREATE TABLE user( id BIGINT(20)NOT NU原创 2021-03-16 19:49:49 · 164 阅读 · 0 评论 -
快速入门实例-HTTP服务
快速入门实例-HTTP服务实例要求1.使用IDEA 创建Netty项目2.Netty 服务器在 9999端口监听,浏览器发出请求 "http://localhost:9999/ "3.服务器可以回复消息给客户端 "你好,我是服务器 "代码示例package com.wxit.http;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel原创 2021-03-13 13:20:06 · 207 阅读 · 1 评论 -
kubernetes 集群命令行工具 kubectl
kubernetes 集群命令行工具 kubectlkubectl概述kubectl 是 Kubernetes 集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能 够在集群上进行容器化应用的安装部署。kubectl 命令的语法1.comand:指定要对资源执行的操作,例如 create、get、describe 和 delete2.TYPE:指定资源类型,资源类型是大小写敏感的,开发者能够以单数、复数和缩略的 形式3.NAME:指定资源的名称,名称也大小写敏感的。如果省略名称原创 2021-02-08 18:22:54 · 122 阅读 · 0 评论 -
java设计模式之建造者模式
java设计模式之建造者模式首先,用盖房子需求来引出问题盖房项目需求:1.需要建房子:这一过程为打桩、砌墙、封顶2.房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的3.请编写程序,完成需求.传统方式解决盖房需求代码示例首先编写一个抽象类package com.wxit.builder;/** * @Author wj **/public abstract class AbstractHouse{ //打地基 public ab翻译 2021-02-01 17:21:05 · 108 阅读 · 0 评论 -
java设计模式之原型设计模式
java设计模式之原型设计模式首先,引入一个小的需求,需求如下:现在有一只羊tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和tom羊 属性完全相同的10只羊。传统方式解决克隆羊问题首先创建一个Sheep类,类中包含构造器,toString get 和set方法public class Sheep { private String name; private int age; private String color;}创建主函数packag翻译 2021-01-31 11:07:04 · 89 阅读 · 0 评论 -
java设计模式之工厂设计模式
java设计模式之工厂设计模式传统模式看一个具体的需求看一个披萨的项目:要便于披萨种类的扩展,要便于维护1.披萨的种类很多(比如 GreekPizz、CheesePizz 等)2.披萨的制作有 prepare,bake, cut, box3.完成披萨店订购功能。使用传统的方式来完成首先创建一个pizza类package com.wxit.factory.simplefactory;/** * @Author wj **///将Pizza类做成抽象public abstract翻译 2021-01-30 12:06:22 · 118 阅读 · 0 评论 -
java设计模式之单例设计模式
java设计模式之单例设计模式单例设计模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就够,这是就会使用到单例模式。单例设计模式八种方式方式一: 饿汉式(静态常量)步骤如下: 1翻译 2021-01-27 12:07:03 · 373 阅读 · 0 评论 -
单一职责原则
单一职责原则基本介绍对类来说的,即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为 A1,A2应用实例package com.wxit.singleresponsibility;/** * @Author wj **/public class SingleResponsibility1 { public static void main(String[] args) {原创 2021-01-08 13:34:22 · 111 阅读 · 0 评论 -
骑士周游算法
骑士周游算法马踏棋盘算法介绍将马随机放在国际象棋的8×8棋盘将马随机放在国际象棋的8×8棋盘Board[0~7][0~7]的某个方格中,马按走棋规则(马走日字)进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格马踏棋盘游戏代码实现package com.wxit.horse;import java.awt.*;import java.util.ArrayList;/** * @Author wj **/public class HorseChessboard {翻译 2021-01-07 19:03:29 · 198 阅读 · 0 评论 -
弗洛伊德算法
弗洛伊德算法弗洛伊德(Floyd)算法介绍和Dijkstra算法一样,弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点间最短路径的算法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名弗洛伊德算法(Floyd)计算图中各个顶点之间的最短路径迪杰斯特拉算法用于计算图中某一个顶点到其他顶点的最短路径。弗洛伊德算法 VS 迪杰斯特拉算法:迪杰斯特拉算法通过选定的被访问顶点,求出从出发访问顶点到其他顶点的最短路径;弗洛伊德算法中每一个顶点都是出发访翻译 2021-01-06 19:27:15 · 382 阅读 · 0 评论 -
迪杰斯特拉算法
迪杰斯特拉算法应用场景-最短路径问题战争时期,胜利乡有7个村庄(A, B, C, D, E, F, G) ,现在有六个邮差,从G点出发,需要分别把邮件分别送到 A, B, C , D, E, F 六个村庄各个村庄的距离用边线表示(权) ,比如 A – B 距离 5公里问:如何计算出G村庄到 其它各个村庄的最短距离?如果从其它点出发到各个点的最短距离又是多少?迪杰斯特拉(Dijkstra)算法介绍迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个结点到其他结点的最短路径。 它的翻译 2021-01-05 19:08:10 · 208 阅读 · 0 评论 -
克鲁斯卡尔算法
克鲁斯卡尔算法克鲁斯卡尔算法介绍克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法。基本思想:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路具体做法:首先构造一个只含n个顶点的森林,然后依权值从小到大从连通网中选择边加入到森林中,并使森林中不产生回路,直至森林变成一棵树为止克鲁斯卡尔最佳实践-公交站问题有北京有新增7个站点(A, B, C, D, E, F, G) ,现在需要修路把7个站点连通各个站点的距离用边线表示(权) ,比如 A – B 距离 1翻译 2021-01-04 21:00:14 · 180 阅读 · 0 评论 -
普里姆算法
普里姆算法应用场景-修路问题有胜利乡有7个村庄(A, B, C, D, E, F, G) ,现在需要修路把7个村庄连通,各个村庄的距离用边线表示(权) ,比如 A – B 距离 5公里问:如何修路保证各个村庄都能连通,并且总的修建公路总里程最短?思路: 将10条边,连接即可,但是总的里程数不是最小.正确的思路,就是尽可能的选择少的路线,并且每条路线最小,保证总里程数最少.最小生成树修路问题本质就是就是最小生成树问题, 先介绍一下最小生成树(Minimum Cost Spanning Tree翻译 2021-01-03 15:31:43 · 737 阅读 · 0 评论 -
贪心算法
贪心算法应用场景-集合覆盖问题假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。 如何选择最少的广播台,让所有的地区都可以接收到信号广播台覆盖地区K1“北京”, “上海”, “天津”K2“广州”, “北京”, “深圳”K3“成都”, “上海”, “杭州”K4“上海”, “天津”K5“杭州”, “大连”贪心算法介绍贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最翻译 2021-01-02 13:43:52 · 168 阅读 · 1 评论 -
KMP算法
KMP算法应用场景-字符串匹配问题举例:判断两个字符数组是否匹配,匹配的话,返回出现位置的下标暴力匹配代码示例:package com.wxit.kmp;/** * @Author wj * 暴力匹配算法 **/public class ViolenceMatch { public static void main(String[] args) { //测试暴力匹配算法 String str1 = "轻轻的风儿轻轻地吹"; St翻译 2021-01-01 14:24:39 · 83 阅读 · 0 评论 -
二分查找算法(非递归)
二分查找算法(非递归)二分查找算法(非递归)介绍二分查找法只适用于从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找二分查找法的运行时间为对数时间O(㏒₂n) ,即查找到需要的目标位置最多只需要㏒₂n步,假设从[0,99]的队列(100个数,即n=100)中寻到目标数30,则需要查找步数为㏒₂100 , 即最多需要查找7次( 2^6 < 100 < 2^7)二分查找算法(非递归)代码实现package com.wxit.search;/** * @Author w原创 2020-12-31 14:01:55 · 252 阅读 · 0 评论 -
赫夫曼树
赫夫曼树基本介绍1.给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为最优二叉树2.赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近赫夫曼树几个重要概念和举例说明路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1结点的权及带权路径长度:若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带翻译 2020-12-24 11:25:13 · 114 阅读 · 0 评论 -
顺序存储二叉树
顺序存储二叉树顺序存储二叉树的概念“二叉树顺序存储是二叉树的一种存储方式。将二叉树存储在一个数组中,通过存储元素的下标反映元素之间的父子关系。用于一些特殊场合,如结点个数已知的完全二叉树或接近完全二叉树的二叉树。要求: 要求以数组的方式来存放 arr : [1, 2, 3, 4, 5, 6, 7] 要求在遍历数组 arr时,仍然可以以前序遍历,中序遍历和后序遍历的方式完成结点的遍历顺序存储二叉树的特点顺序二叉树通常只考虑完全二叉树第n个元素的左子节点为 2 * n + 1第n个元素原创 2020-12-21 13:40:27 · 304 阅读 · 0 评论 -
二叉树-查找指定节点
二叉树-查找指定节点接上一篇博客要求:请编写前序查找,中序查找和后序查找的方法。并分别使用三种查找方式,查找 heroNO = 5 的节点代码示例:package com.wxit.tree;/** * @Author wj **/public class BinaryTreeDemo { public static void main(String[] args) { //先创建一颗二叉树 BinaryTree binaryTree = ne原创 2020-12-20 17:05:43 · 948 阅读 · 1 评论 -
二叉树
二叉树二叉树的概念树有很多种,每个节点最多只能有两个子节点的一种形式称为二叉树二叉树的子节点分为左节点和右节点。如果该二叉树的所有叶子节点都在最后一层,并且结点总数= 2^n -1 , n 为层数,则我们称为满二叉树。如果该二叉树的所有叶子节点都在最后一层或者倒数第二层,而且最后一层的叶子节点在左边连续,倒数第二层的叶子节点在右边连续,我们称为完全二叉树。二叉树遍历的说明前序遍历: 先输出父节点,再遍历左子树和右子树中序遍历: 先遍历左子树,再输出父节点,再遍历右子树后序遍历: 先原创 2020-12-19 20:45:56 · 288 阅读 · 1 评论 -
发送不同类型的消息
发送不同类型的消息普通消息RocketMQ提供三种方式来发送普通消息:可靠同步发送、可靠异步发送和单向发送。可靠同步发送同步发送是指消息发送方发出数据后,会在收到接收方发回响应之后才发下一个数据包的通讯方式。此种方式应用场景非常广泛,例如重要通知邮件、报名短信通知、营销短信系统等可靠异步发送异步发送是指发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。发送方通过回调接口接收服务器响应,并对响应结果进行处理。异步发送一般用于链路耗时较长,对 RT 响应时间较为敏感的业务场景原创 2020-12-19 13:39:20 · 535 阅读 · 1 评论 -
消息发送和接收演示
消息发送和接收演示接下来我们使用Java代码来演示消息的发送和接收导入依赖 <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.2</version>原创 2020-12-18 10:46:00 · 455 阅读 · 0 评论