- 博客(31)
- 资源 (4)
- 收藏
- 关注
原创 AntV-G6实现微服务拓扑图
是一个简单、易用、完备的图可视化引擎,它在高定制能力的基础上,提供了一系列设计优雅、便于使用的图可视化解决方案。能帮助开发者搭建属于自己的图可视化、图分析、或图编辑器应用。...
2022-08-19 10:17:42
3390
7
原创 【设计模式:十五】模板方法模式
1 背景模版方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式属于行为型设计模式,在java中,一般通过继承的方法来实现。2 模拟场景假如现在需要开发出一个简单的登录功能,但是要实现不同的登陆方式,如用户名密码登录,手机号登陆,邮箱登录等。无论采用何种登陆方式,最后都对应唯一的用户。这些登陆方式大体上的逻辑是一样的,都需要参数校验,获取登陆后的信息并展示出来。当然这个场景非常简单,在实际开发
2021-04-11 15:57:47
215
原创 【设计模式:十】代理模式
1 背景 代理模式属于结构型模式。通过创建一个代理对象,来代替真实对象,接受外部调用。对客户端来说,就像是得到了一个真实对象来使用。实际上是客户端调用代理对象,代理对象去调用真实对象。2 静态代理 在java中,静态代理是代理类和真实对象实现相同接口,在代理类内部维护一个真实对象来实现的。 假设现在有一个接口Service,TrueObject实现了该接口。public interface Service { void hello();}public class TrueObj
2021-03-08 23:44:32
230
1
原创 【设计模式:一】简单工厂
【设计模式】简单工厂1 背景设计模式中应该遵循的原则:五大原则:单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因。即一个类中应该只有一类逻辑。开放-封闭原则(OCP):软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。即开放扩展,封闭修改。依赖倒转原则(DIP):高层模块不应该依赖底层模块。两个都应该依赖抽象;抽象不应该依赖细节。细节应该依赖抽象。即面向接口编程,而不是面向实现编程。里氏代换原则(LSP):子类型必须能够替换掉他们的父类型。合成/聚合复用原则(CA
2021-03-07 22:53:13
214
2
原创 阿里Cloud toolkit+git+maven实现java项目自动化部署
阿里cloud toolkit+git+maven实现java项目自动化部署1 背景Alibaba Cloud Toolkit(Eclipse插件,后文简称Cloud Toolkit)是阿里云针对IDE平台为开发者提供的一款插件,用于帮助开发者高效开发并部署适合在云端运行的应用。您在本地完成应用程序的开发、调试和测试后,可以使用在IDE(如Eclipse或IntelliJ)中安装的Cloud Toolkit插件,通过图形配置的方式连接到云端部署环境并将应用程序快速部署到云端。官网文档的两张图可以说
2020-12-27 15:24:29
363
原创 Yapi在Linux上的部署流程
Yapi安装Yapi:旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API1 安装环境环境要求:nodejs(7.6+)mongodb(2.6+)1.1 MongoDB安装下载地址:MongoDb# 下载wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.4/x86_64/RPMS/mongodb-org-mongos-4.4.2-1.el7.x86_64.rpm# 解压
2020-12-26 18:18:01
1383
1
原创 一个简单的审批流程系统设计
一个简单的审批系统设计1 背景 最近在做一个企业管理系统的外包,该管理系统主要分为两个端,管理端(web端)和生产端(移动端)。管理端的功能有人员管理、项目管理、工作量管理、审批流程管理等,生产端就是给员工用的,功能有上报工作量,请假,调岗,打卡等。生产端的一个特色就是有一个审批的功能,员工提交的各个模块的申请都要走审批流程,审批流程通过后,该申请才算生效。2 审批功能设计2.1 数据库设计2.1.1 用例分析 一个完整的审批过程需要这几类角色:申请人、申请详情、审批流程、审批规则。
2020-12-02 18:32:24
15814
10
原创 Shiro整合SpringBoot-前后端分离项目
1 什么是shiro? 《官方解释》:“Apache Shiro™ is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-understand API, you can quickly and easily secure any applica
2020-11-28 16:18:57
771
原创 【JVM:三】垃圾收集器
垃圾收集器1 Serial新生代收集器。特点: 单线程。优点:没有多线程交互的开销。额外内存消耗低。缺点:单线程效率低。收集时暂停用户线程,STW(停止用户线程,执行GC)时间长。适用场景:新生代内存空间小(几十兆到一两百兆),桌面程序。2 ParNew新生代收集器。特点: 多线程,配合CMS收集器。优点:多线程效率高(在多核心处理器环境下)缺点:由于存在线程交互的开销,单核处理器下效果不如Serial。3 Parallel Scavenge新生代收集器。特
2020-09-05 23:01:12
152
原创 【JVM:二】垃圾收集算法
垃圾收集算法1 对象是否可以回收?对于不可能再被任何途径使用的对象,认为它应该被回收。通过分析对象引用,有两种判断对象是否可以回收的算法。引用计数算法(Reference Counting)在对象中添加一个引用计数器,当计数器为零代表可回收,当计数器+1代表有一个地方引用了它。优点: 原理简单,判定效率高。缺点: 如果存在两个对象互相循环引用,除此之外再无其他途径访问这两个对象。那么应该都被回收的这两个对象却永远都不会被回收。可达性分析算法(Reachability Analysis)通过
2020-09-02 23:35:07
141
原创 【JVM:一】Java运行时数据区域
Java运行时数据区域1 程序计数器(Program Counter Register)线程私有。程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在多线程环境下,每条线程都需要一个独立的程序计数器,各个线程之间计数器互不影响,独立存储,所以将其设计为线程私有。程序计数器不会发生OutOfMemeryError的错误情况。因为程序计算器所维护的就是下一条待执行的命令的地址,所以不存在OOM。2 Java虚拟机栈(Java Virtual Machine Stac
2020-09-02 22:36:43
95
原创 排序算法
排序算法冒泡排序实现逻辑:相邻两个元素两两相比较,按照排序规则(升序大的数放后面,降序小的数放后面)进行排序时间复杂度O(n2)空间复杂度O(1)稳定排序优化思路:通过加入布尔变量,判断内层循环是否发生交换来优化冒泡排序,最好情况为数组有序,复杂度降低为O(n),最坏情况为完全倒序,复杂度为O(n2)。public static void sort(int[] arr) { boolean change = false; int temp; for (int i =
2020-07-28 14:06:40
114
原创 记录网站访问量
1、在数据库中创建表,存放点击量2、创建监听器(MyWebListener)实现ServletContextListener接口,当项目启动时通过dao层(ContextMapper)获取点击量,存入ServletContext中。3、访问主页时增加访问量4、前端获取点击量或在项目关闭前,将点击量存入数据库(ContextController)数据库create table context( click_num int)dao层接口public interface ContextM.
2020-06-30 11:43:46
5303
原创 adb的基本命令
【入门】adb的基本命令1.1 什么是adbADB(Android Debug Bridge)是Android SDK中的一个工具, 使用ADB可以直接操作管理Android模拟器或者真实的Andriod设备。使用adb shell就可以通过写自动化脚本,来操作模拟器或者android设备1.2 adb shell的使用场景比如批量搜索,添加微信好友等1.3 adb 常用命令1.3.1 查看设备列表#通过该命令可以查询到所有设备列表#device 状态:这个状态表示的是真机或者模拟
2020-05-17 19:58:16
861
原创 poi的基本使用
【入门】poi的基本使用1 什么是poi?POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。2 如何使用poi制Excel表?使用org.apache.poi.xssf包下工具, XSSF提供读写Microsoft Excel OOXML XLSX格式档案的功能。2.1 导入依赖<depende...
2020-04-01 13:43:20
616
原创 正则表达式
正则表达式1 什么是正则表达式正则表达式(regular expression)描述了一种字符串匹配的模式, 可以用来匹配符合预置规则的文本.2 为什么使用正则表达式普通的字符串匹配需要事先预定好要匹配的文本, 在面对复杂的匹配任务时没有正则表达式那样简洁与灵活.正确合理地使用正则表达式可以减少代码量, 提高开发效率.3 如何使用正则表达式3.1 元字符字符描述...
2020-03-22 22:38:46
161
原创 IDEA插件汇总
IDEA插件汇总就像给游戏打mod一样, IEDA也有着一个强大的插件库, 点击标题即可跳转下载1 TranslationPlugin-翻译插件对于游走在四级边缘的我来说,不用切换浏览器翻译源码太酸爽了2 Alibaba Java Coding GuidelinesAlibaba阿里的编码规约检测器, 让你的代码更加符合阿里规范3 Lombok 简化JavaBean编写...
2020-03-05 18:37:38
386
原创 【设计模式】单例模式
单例模式优点1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例。2、避免对资源的多重占用(比如写文件操作)。缺点没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。使用场景1、要求生产唯一序列号。2、WEB 中的计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来。3、创建的一个对象需要消耗的资源过多,比如 I/O...
2020-03-01 14:26:34
189
原创 【进阶】QQ聊天机器人--群聊机器人篇
【进阶】QQ聊天机器人–群聊机器人篇看完本篇博客,能将能做到为你的QQ群定制一个人工智障!使用一位大佬的框架PICQ实现更多强大的功能!欢迎加入我的java技术交流群,点击加入,一起学习和成长代码已经上传到了github,可以看到更多细节(远程部署,连接数据库)什么是PICQ?picq:一个基于 酷Q HTTP 插件 的 Java QQ 机器人类库基于这个框架,能够很容易的实现...
2020-01-14 20:37:38
8704
2
原创 【入门】QQ聊天机器人--HelloWorld篇
看完本篇博客,你将能做到qq消息秒速99+搭建云环境(或者虚拟机),部署qq机器人使用springboot为你的人工智障写一个简单的hello world灵感来源伟哥的博客基于酷Q的一个插件coolq-http-api本地部署步骤一:下载酷Q和插件coolq-http-api酷Qcoolq-http-api步骤二:解压酷Q添加coolq-http-api解压...
2020-01-11 20:21:35
3681
2
原创 【分布式入门】Dubbo和Zookeeper的基本使用
Dubbo+Zookeeper+Spring+SpringMVC一 相关概念1.Dubbo框架图2.节点角色说明NodeRole SpecProvider提供程序所公开的远程服务Consumer使用者调用远程服务Registry注册中心负责服务发现和配置Monitor监视器计算服务调用的次数和时间Container容器管理服务的生存期...
2020-01-09 20:08:54
320
原创 【应用篇】MyBatis学习笔记
MyBatis学习笔记一 环境配置1 什么是MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)...
2019-12-14 20:52:12
480
原创 JavaWeb中的IO流路径问题
问题:最近在学习如何给网站添加点击量和同时在线人数.在不利用数据库存储点击量的前提下,长期保存一个数据(包括服务器关闭时)使用原生的IO流是很简便的.想法很简单,在实现IO流的iListener类同路径下创建一个txt文本来保存点击量.所以当时代的代码就这么写了.String s = "";BufferedReader br = null; try {//读取主页的...
2019-11-15 17:23:56
453
原创 免费认证Intellij全家桶
利用学生身份免费认证Jet Brains全家桶1 进入认证页面https://www.jetbrains.com/student/2 填写信息3 本校邮件系统mail.XXXX.edu.cn4 收到邮件后(几分钟)5 然后注册一个Jet Brains账号就行了...
2019-11-06 21:42:44
920
原创 【JavaWeb】如何搭建个人网站?
从零搭建JavaWeb个人网站/***Author:the Tian*QQ:942546014*CSDN:https://me.csdn.net/weixin_43544077**/上传到csdn有些地方可能不全,在pdf中可以看到1.服务器:从阿里或者腾讯的云服务器上购置服务器(下面的是阿里云ECS服务器),购买完后创建一个实例(系统选CentOS)。2.JavaWeb:...
2019-10-24 19:34:33
19783
原创 Java使用TCP实现聊天室系统
目标功能:1.群聊2.退出3.私聊4.查询其他在线玩家5.管理员登陆6.踢人7.禁言8.实现JDBC9.实现界面化:注册,登录,聊天框10.连接公网目前实现了两个功能服务器import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent...
2019-10-17 11:17:38
1541
1
原创 使用Java实现UDP一对一聊天
发送者进程import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetSocketAddress;p...
2019-10-14 19:34:20
550
原创 如何使用Java实现复制文件夹的操作
如何使用Java实现复制文件夹的操作复制文件夹的操作需要对IO中的字节流有一定的掌握,并且能清晰地使用递归来便利文件夹。import java.io.InputStream;import java.io.FileInputStream;import java.io.OutputStream;import java.io.FileOutputStream;import java.io.I...
2019-10-06 20:15:36
354
xmshop.sql
2020-09-02
从零搭建JavaWeb个人网站.pdf
2019-10-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人