自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MAC上Git安装与GitHub基本使用

目录安装git 创建ssh key、配置git 提交本地项目到GitHub一、安装gitMAC 上安装Git主要有两种方式首先查看电脑是否安装Git,终端输入:git安装过则会输出:WMBdeMacBook-Pro:~ WENBO$ gitusage: git [--version] [--help] [-C <path>] [-c name=value] [--exec-path[=<path&gt...

2022-01-06 17:58:21 699

翻译 消息队列中的问题| 丢消息| 重复消费| 消息积压

阅读目录(Content)1. 丢消息 检测消息丢失的方法 确保消息可靠传递 1. 生产阶段 2. 存储阶段 3. 消费阶段 2.重复消息 消息重复的情况必然存在 用幂等性解决重复消息问题 1. 利用数据库的唯一约束实现幂等 2. 为更新的数据设置前置条件 3. 记录并检查操作 3.消息积压问题 优化性能来避免消息积压 1. 发送端性能优化 2. 消费端性能优化 消息积压的紧急处理 如何保证消息的严格顺..

2021-10-14 09:12:58 1303

翻译 Java并发之CAS原理分析

在 Java 并发领域,我们解决并发安全问题最粗暴的方式就是使用 synchronized 关键字了,但它是一种独占形式的锁,属于悲观锁机制,性能会大打折扣。volatile 貌似也是一个不错的选择,但 volatile 只能保持变量的可见性,并不保证变量的原子性操作。CAS 全称是 compare and swap,即比较并交换,它是一种原子操作,同时 CAS 是一种乐观机制。java.util.concurrent 包很多功能都是建立在 CAS 之上,如 ReenterLock 内部的 AQS,各种

2021-09-27 21:33:18 241

原创 关于Bigdecimal 的DOWN模式截断问题

此篇文章记录了Bigdecimal使用Bigdecimal.Down这个模式遇到的坑 //保留两位小数 BigDecimal a = new BigDecimal(0.0100000); BigDecimal b = new BigDecimal(10.01000000); BigDecimal c = new BigDecimal(100.01000000); BigDecimal d = new BigDecimal(0.10);

2021-07-29 20:56:00 728

原创 java学习数据结构可视化网站

最近在学习数据结构,有几个网站能让我们更直观的理解各种数据结构。 https://www.cs.usfca.edu/~galles/visualization/Algorithms.html a1.gif https://visualgo.net/en a2.gif

2021-07-25 15:58:36 224

原创 十八.原型模式(原型设计模式)详解

在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效,就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样简单。原型模式的定义与特点原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。例如,Windows 操作系统的安装通常较耗时,如果复制就快了很多。..

2021-06-28 15:58:06 238

原创 十七.单例设计模式

1.单例设计模式的概念 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创 建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供 了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 2.单例设计模式的结构 单例模式的主要有以下角色: 单例类。只能创建一个实例的类 ...

2021-06-27 15:52:47 79

翻译 十五.合成复用原则——面向对象设计原则

合成复用原则是面向对象设计原则的 7 条原则中剩下的最后一条,下面我们将对其进行详细地介绍。合成复用原则的定义合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP)。它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。如果要使用继承关系,则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现规

2021-06-26 18:47:09 92

原创 十四.迪米特法则——面向对象设计原则

前几节分别详细介绍了面向对象设计原则中的开闭原则、里氏替换原则、依赖倒置原则、单一职责原则和接口隔离原则,本节将详细介绍迪米特法则。迪米特法则的定义迪米特法则(Law of Demeter,LoD)又叫作最少知识原则(Least Knowledge Principle,LKP),产生于 1987 年美国东北大学(Northeastern University)的一个名为迪米特(Demeter)的研究项目,由伊恩·荷兰(Ian Holland)提出,被 UML 创始者之一的布奇(Booch)普及,后来

2021-06-26 18:37:10 141

原创 十.依赖倒置原则——面向对象设计原则

依赖倒置原则的定义依赖倒置原则(Dependence Inversion Principle,DIP)是 Object Mentor 公司总裁罗伯特·马丁(Robert C.Martin)于 1996 年在C++Report 上发表的文章。依赖倒置原则的原始定义为:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象(High level modules shouldnot depend upon low level modules.Both should dep..

2021-06-24 20:20:23 120

原创 八.开闭原则——面向对象设计原则

在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 7 条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。我们将在下面的几节中依次来介绍这 7 条原则,本节首先介绍开闭原则。开闭原则的定义开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体

2021-06-24 19:52:07 76

原创 五.UMLet的使用与类图的设计

本实验是为后续实验做准备的。在《设计模式》教程中,各个程序实例都要画类图,所以读者必须掌握用某种 UML 建模工具来画类图,本教程选择 UMLet 作为 UML 的建模工具。实验目的本实验的主要目的如下。理解类的基本概念,掌握如何从需求分析中抽象出类的方法。 理解类之间关系,掌握如何分析具体实例中的类之间的关系。 掌握在 UMLet 中绘制类图的基本操作方法。实验原理在绘制类图之前,我们先来介绍一下UMLet 工具。UMLet的使用UMLet 是一款免费且开源的 UML 建模.

2021-06-24 19:36:21 774 2

原创 一.软件设计模式概述

本节是后面各章学习的基础,从整体上介绍软件设计模式的概念与特点、软件设计模式的基本要素,以及 GoF 的 23 种设计模式简介。软件设计模式的产生背景“设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977 年,美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造(A Pattern Language: Towns Building Construction

2021-06-24 19:02:06 88

原创 理解对称加密和非对称加密,公钥私钥签名验签数字证书HTTPS加密方式

原创,转载请留言联系为什么会出现这么多加密啊,公钥私钥啊,签名啊这些东西呢?说到底还是保证双方通信的安全性与完整性。例如小明发一封表白邮件给小红,他总不希望给别人看见吧。而各种各样的技术就是为了保障通信的安全。(本文务必从上到下看)1.对称加密与非对称加密对称加密:对称加密是最快速的一种加密方式。加密和解密用的是同样的密钥。对称加密是怎么实现的呢?举个例子说明。小明写了一封信给小红。他用箱子装着信,同时箱子上锁,他去快递店把这个箱子和开启箱子的钥匙一起快递给小红。小红收到箱子后,用钥匙打开箱子,

2021-06-21 03:07:46 463

原创 手机安装 & 卸载CA证书

手机安装 & 卸载CA证书安装CA证书首先下载正确的证书。这里以安装burpsuite证书为例。burpsuite为抓包软件,默认情况下抓不到HTTPS的数据包,需要安装信任证书才行。要抓取手机端的HTTPS流量,需要如下几步:(这里网络上教程很多,我不细说,看不懂的可以自行百度)前提:手机终端与电脑终端处于同一网络,连接同一WiFi手机连接WiFi,长按所连接的WiFi,选择修改网络 --> 勾选显示高级选项 --> 选择代理为手动 --> 输入电脑终端的ip,如

2021-06-16 18:03:03 15832 1

原创 MySQL查询以及修改表、表字段备注信息

一、查询字段名以及对应的备注SELECT COLUMN_NAME 列名, COLUMN_COMMENT 备注 FROM INFORMATION_SCHEMA.COLUMNSwhere-- hypercenter_example为数据库名称,到时候只需要修改成你要导出表结构的数据库即可table_schema ='hypercenter_example'AND-- user_relation为表名,到时候换成你要导出的表的名称-- 如果不写的话,默认会查询出所有表中的.

2021-03-24 20:56:23 718 1

原创 今天分享springboot自定义logback.xml并且在java代码中自定义,动态变化打印的日志

一、基础知识 a.log4j、logback、slf4j的介绍 slf4j是日志的规范(也就是一种日志标准),而logback、log4j是具体实现的日志系统。 b.logback速度比log4j执行速度更快,官方推荐使用logback作为日志系统。 c.官方推荐使用logback-spring.xml自定义配置SpringBoot框架的日志配置。 d.SpringBoot默认使用logback来记录logger(日志)。二、logback-spring.xml(按大...

2021-03-24 15:26:31 898

原创 ---------Java中JDK下载安装与环境变量的配置----------

在本章节中我们将为大家介绍如何搭建Java开发环境。Windows 上安装开发环境 Linux 上安装开发环境 安装 Eclipse 运行 Javawindow系统安装java下载JDK首先我们需要下载java开发工具包JDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,点击如下下载按钮:在下载页面中你需要选择接受许可,并根据自己的系统选择对应的版本,本文以 Window 6.

2021-03-23 17:07:38 119

原创 程序员想进大厂必须知道的几个刷题网站

一.leetcode力扣(LeetCode)是领扣网络旗下专注于程序员技术成长和企业技术人才服务的品牌。源自美国硅谷,力扣为全球程序员提供了专业的IT技术职业化提升平台,有效帮助程序员实现快速进步和长期成长。 [1-4]力扣力扣是一个为全球程序员提供IT技术职业化提升的平台,提供了完善的在线判题服务、学习工具、社区讨论及模拟面试功能,全方位打磨程序员职业所需的核心技能。力扣为用户提供了多种多样的开发工具,适用于真实的日常技术开发和学习场景。其中,Playground无需设置环境,就能够帮助用户进行测

2021-01-27 10:33:13 1793 1

原创 干货分享 | 12个程序员必逛的网站,值得收藏!

作为一个拥有强劲上进心的程序员,一个励志走向职场巅峰的IT精英,自我提升的平台与机会实在是太重要了。那么问题来了,学技术、卖代码、向大牛们讨经验、寻找项目机会哪家强?小编结合网上资源,吐血整理了一些程序员必逛的国内外网站,不好用你来打我。先说国外的(部分需要 Fan Qiang ,且翻且珍惜):http://1.stackoverflow.com是一个与程序相关的IT技术问答网站。用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的HTML。一句话点评:有干货的地方。代码遇到

2021-01-21 16:15:06 729

转载 xshell下载文件到本地/上传文件到服务器

xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz首先你的Ubuntu需要安装rz.sz(如果没有安装请执行以下命令,安装完的请跳过.其它版本linux请自行安装相应软件)yum install lrzsz安装完毕即可使用rz,sz是便是Linux/Unix同Windows进行ZModem文件传输的命令行工具windows端需要支持ZModem的telnet/ssh客户端(xshell支持,好像putty不支持),SecureCRT

2020-12-25 11:22:24 1812

原创 在linux搭建Zookpeeper

如果在阿里云安装必选在阿里云控制台设置安全组搭建端口号.否则在linux系统中能查看,本地去连接连接不到…Zookeeper是java开发的可以运行在windows、linux环境。需要先安装jdk。jdk安装步骤https://blog.csdn.net/kxj19980524/article/details/84976803先把zookeeper压缩包上传到linux当中,然后解压zookeeper安装包https://download.csdn.net/download/kxj19980524

2020-12-17 18:02:54 103

翻译 [linux基础学习]默认的目录介绍

以下用一个表格来罗列linux默认的目录或文件及其用途:目录/文件用途来源//处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录、文件、设备都在/之下。-/bin该目录存放着系统最常用的最重要的命令,相当于DOS下的内部命令,只不过它们是以独立的文件形式存在。比如:ls、cp、mkdir等命令。这个目录中的文件都是可执行的并且是普通用户都可以使用的命令。作为系统最基础的命令都放在这里。binary/usr该目录是系统存放程序的地方,

2020-12-16 11:49:39 6234

原创 如何进行画流程

一.流程图的基本要素 组合:流程图的主要的要素包含 圆角矩形、矩形、菱形、平行四边形、箭头组成。 作用: 流程图一般都是用圆角矩形来表示“开始”与“结束”,用矩形表示行动方案、普通工作环节,菱形表示判断,平行四 边形表示输入输出,箭头表示工作流方向。二.流程图的实例这个流程图是简单描述在登录的时候判断账号和密码的流程图三.总结 我觉得流程图的画法很简单,它采用的符号也很简单,结构清晰,逻辑性强,便于描述和理解。我们在日常的学习中可以多多的使用,但是也要酌情使用,毕竟流程图是面向

2020-11-13 17:20:52 934

原创 快速读懂UML类图

一、类的属性的表示方式在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和email这3个属性,以及modifyInfo()方法。那么属性/方法名称前加的加号和减号是什么意思呢?它们表示了这个属性或方法的可见性,UML类图中表示可见性的符号有三种:· + :表示public· - :表示private· #:表示protected(friendly也归入这类)因此,上图中的Employ

2020-11-11 17:12:36 328 1

原创 关于Springboot中引入其他jar报出现的注入问题

Description:Field helloService in com.example.demo.service.TestController required a bean of type 'com.example.service.HelloService' that could not be found.Action:Consider defining a bean of type 'XXX' in your configuration.这种情况主要的原因有两个1.在你注入的实现

2020-08-14 10:51:53 1856

原创 记录使用JPA中@Query注解传对象参数时候遇到的坑

1.传参数首先是要使用JPA,然后自定义sql更新的情况下,如下图:注意:使用时候加上@Transactional@Modifying在@Query里面接收参数时候用 [:参数名 ] 这种语法进行赋值比如 传参数productName这个时候需要 set product_name = :productName2.传对象这里需要注意了,可能比较多人会写错传对象的话 语法是:#{#对象名称.对象属性} 如下图希望初学者注意加快开发速度...

2020-07-11 22:02:01 7320 4

原创 Springboot显示RunDashBoard的配置

1.找到.idea文件下的workspace.xml,并找到RunDashboard2.拷贝如下配置到workspace.xml<component name="RunDashboard"> <option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationType" /> </set> &lt

2020-07-09 11:40:07 602

原创 elastic-master-head整合elasticsearch

首先,要安装node.js然后一、下载插件下载插件二、解压到任意目录注意:为避免找不到,一定要和elasticsearch的安装目录区分开三、安装Node.js因为head是一个Node.js项目。所以,如果没有安装nodejs需要先安装Node.js。[32位安装包下载地址](https://nodejs.org/dist/v4.4.3/node-v4.4.3-x86.msi)64位安装包下载地址检测PATH环境变量是否配置了Node.js,打开命令行输入命令"path",输出如下结

2020-07-08 22:45:43 165

原创 安装mysql出现的问题由于找不到VCRUNTIME140_1.dll的问题

执行mysql初始化命令,报错”由于找不到VCRUNTIME140_1.dll,无法继续执行代码…“点墨漫雪 2020-04-14 15:12:41 1890 收藏分类专栏: 问题解决 文章标签: mysql数据库版权一、背景cmd命令,提示缺少文件执行mysql初始化命令,报错二、解决方案:安装微软常用库链接:https://pan.baidu.com/s/1e4RIrbGWUSdSrIe2ApWptw提取码:5hvn三、结果:安装后再次运行成功原文链接:https://b

2020-07-05 12:43:22 562

原创 jdk的安装流程

一、JDK的下载及安装官网地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html根据自己需要,下载所需的JDK安装包(记得勾选 同意许可协议 那个小圆框)。下载完成之后,双击运行点下一步,这里有个安装路径,默认是安装到C:\Program Files下,可点击右边的 更改 按钮进行修改,自定义安装路径。(注意一点,选择路径一定要新建一个空的文件夹进行选择,如下图)PS:大多数软件的默认安装位置都在C盘,

2020-07-05 00:04:38 196

空空如也

空空如也

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

TA关注的人

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