自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

魔教中人

学习记录

  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

原创 JAVA BigDecimal的equals和compareTo

一,区别因为BigDecimal是对象,所以不能用==来判断两个数字的值是否相等。那使用equals和compareTo这两个方法有啥区别呢???equals方法会比较两部分内容,分别是值(value)和精度(scale),而compareTo方法比较会忽略精度。二,为什么BigDecimal精度不同这个问题其实是比较复杂的,由于不是本文的重点,这里面就不过多介绍。大家感兴趣的话,可以在去看下BigDecimal构造函数的源码。BigDecimal一共有以下4个构造方法:BigDe

2021-08-26 16:32:57 523

原创 Cookie Session Token JWT简单理解

1、什么是认证(Authentication)通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就打卡成功) 互联网中的认证: 用户名密码登录 邮箱发送登录链接 手机号接收验证码 只要你能收到邮箱/验证码,就默认你是账号的主人 2、什么是授权(Authorization)用户授予第三方应用访问该用户某些资源的权限 你在安装手机应用的时候,APP 会询问是否允许授予权限(访问相册、地理位置等.

2021-07-07 16:26:37 328 1

原创 JDK1.8所有得版本下载

JDK1.8所有版本官网下载链接https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

2021-06-24 00:55:21 961

原创 ArrayList数据去重的方法

1.使用LinkedHashSet删除arraylist中的重复数据LinkedHashSet是在一个ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事: 1 删除重复数据 2 保持添加到其中的数据的顺序import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedHashSet; public class ArrayListExample { pu

2021-01-28 14:56:00 8619

原创 Java线程的生命周期

Java 中实现并发的主要手段就是多线程。线程是操作系统里的一个概念,Java 语言里的线程本质上就是操作系统的线程,它们是一一对应的。要想整明白操作系统中线程的生命周期,就需要搞懂生命周期各个状态之间是如何转换的。接下来先让我们了解下操作系统的线程生命周期,进而再去学习 Java 中线程的生命周期。操作系统中线程的生命周期操作系统的线程生命周期基本上可以用下图这个五态模型来描述。这五态分别是:初始状态、可运行状态、运行状态、休眠状态和终止状态。这五态模型的详细情况如下所示。1.初始状态:指的

2021-01-05 17:32:56 108

原创 常用SQL语法

SQL命令SQL命令分可以分为四组:DDL、DML、DCL和TCL。四组中包含的命令分别如下DDLDDL是数据定义语言(Data Definition Language)的简称,它处理数据库schemas和描述数据应如何驻留在数据库中。CREATE:创建数据库及其对象(如表,索引,视图,存储过程,函数和触发器)ALTER:改变现有数据库的结构DROP:从数据库中删除对象TRUNCATE:从表中删除所有记录,包括为记录分配的所有空间都将被删除COMMENT:添加注释RENAME:重命名对

2020-12-10 18:06:36 90

原创 工作中常用 Linux 命令

一.文件路径和目录1 cd命令,用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。cd /home 进入 '/ home' 目录cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录2 pwd命令,显示工作路径[root@mailvip ~]# pwd/ro

2020-12-09 20:23:44 132

翻译 星巴克不使用两阶段提交

1. 请给我一杯热巧克力(Hotto Cocoa o Kudasai)刚结束了一次为期两周的日本之旅。印象深刻的是数量多到难以置信的星巴克 —— 尤其是在 新宿和六本木地区。在等待咖啡制作时,我开始思考星巴克是如何处理订单的。与大多数商业公司一样,星巴克主要关心的也是订单最大化。更多的订单就意味着更多的收入。因此,他们采用异步的方式处理订单:点好咖啡后,收银员会拿出一个杯将你的订单在杯子上做个标记,然后将杯子放到一个队列。这里所说的队列其实就是咖啡机上的一排杯子;队列将收银员和咖啡师解耦,使收银员

2020-12-04 16:00:35 96

原创 RPC和RESTful区别

区别RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹啦!下面来具体说一说RPC服务和HTTP服务。OSI网络七层模型在说RPC和HTTP的区别之前,我觉的有必要了解一下OSI的七层网络结构模型(虽然实际应用中基本上都是五层),它可以分为以下几层:(从上到下)第一层:应用层。定义了用于在网络中进行通信和传输数据的接口;第二层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等;

2020-11-30 15:18:01 327

原创 spring boot异步请求(调用)

一、Spring Boot中异步请求的使用1、异步请求与同步请求特点:可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在耗时处理完成(例如长时间的运算)时再对客户端进行响应。一句话:增加了服务器对客户端请求的吞吐量(实际生产上用的比较少,如果并发请求量很大的情况下,一般会通过nginx把请求负载到集群服务的各个节点上来分摊请求压力,当然还可以通过消息队列来做请求的缓冲)。2、异步请求的实现方式一:Servlet方式实现异步请求@Reque

2020-09-04 12:05:13 366

原创 ‘telnet‘ 不是内部或外部命令,也不是可运行的程序

问题原因:window系统中的telnet客户端默认是关闭状态。即默认没有安装telnet功能。解决方式:1 打开控制面板 -> 程序2 点开"启动或关闭window功能"3 勾选 telnet client。待运行后,问题就可以解决...

2020-09-01 16:27:05 1483

原创 Spring Boot 注解大全

一、注解 (annotations) 列表@SpringBootApplication:包含了 @ComponentScan、@Configuration 和 @EnableAutoConfiguration 注解。其中 @ComponentScan 让 spring Boot 扫描到 Configuration 类并把它加入到程序上下文。@Configuration 等同于 spring 的 XML 配置文件;使用 Java 代码可以检查类型安全。@EnableAutoConfiguration

2020-08-26 15:39:51 112

原创 POS机选择和使用

POS使用前提:支付牌照和一清二清机养卡之前我们要确认手上的pos机是否安全,其实有支付牌照的正规支付公司都是安全的。**怎么知道一个支付公司是否有支付牌照呢?**可以去央行官网查询(中国人民银行 http://www.pbc.gov.cn/ ),进入官网后拉到最底部在左下“政务公开”找到“政务公开目录”,进入“政务公开目录”之后 在左侧“行政执法信息”这一栏点击“行政审批公示”,进入行政审批公示后 在“《支付业务许可证》核发信息公告”这一栏点击“已获许可机构(支付机构)”,最后在检索框中输入你想查询.

2020-08-25 21:35:22 888

原创 FTP-基础知识

基础知识:FTP(File Transfer Protocol)是文件传输协议的简称。正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。FTP 是一种基于 TCP 的上层 应用层协议,它== 不支持 UDP 协议**。FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口) ==。通常21端口是命令端口,20端口是数据

2020-08-21 16:56:55 402

原创 PPT多张图片的融合插件

这款插件叫「OKPlus」,是一款免费的PPT插件.这款插件,解决了我多年以来的一个难题,就是多张图片的融合问题。就是像下图这样的一种效果。我们准备两种照片,拼合在一起的时候,边界很明显。如果直接做背景会有些生硬。解决这个问题,我们最开始的做法就是用两个渐变蒙版,来实现过渡。但是这种方法,中间哪一块全是黑色,显得也有些生硬。之前我都是用PS来解决这个功能,但是现在用这个okplus插件就可以了。使用这个okplus插件的里面的图片透明功能,效果也很好。我们选中图片,点击图片透明,然

2020-08-21 16:41:20 1351

原创 i = i++和 i = ++i 的区别

1、题目package pers.mobian.questions01;public class test01 { public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i + ++i * i++; System.out.println("i="+i); System.out.println

2020-08-21 11:45:57 1326 2

原创 限流简介

什么是限流?限流可以认为服务降级的一种,限流就是限制系统的输入和输出流量已达到保护系统的目的。一般来说系统的吞吐量是可以被测算的,为了保证系统的稳定运行,一旦达到的需要限制的阈值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延迟处理,拒绝处理,或者部分拒绝处理等等。为什么要限流?开篇也有说到限流是为了「== 保证系统的稳定运行 ==」。假设我们一个系统一小时之最多只能处理10000个请求,但是一小时流量突增10倍,这突增的流量我们如果不进行限制的话,任由它直接进入系统的话,是不是直接会把我

2020-08-21 10:59:57 514

原创 Spring Boot之事务

一、事务传播机制:事务的传播行为是针对嵌套事务而言。示例:@Transactional(propagation = Propagation.REQUIRED)1.1 REQUIREDspring默认的事务传播行为就是它。支持事务。如果业务方法执行时已经在一个事务中,则加入当前事务,否则重新开启一个事务。外层事务提交了,内层才会提交。内/外只要有报错,他俩会一起回滚。只要内层方法报错抛出异常,即使外层有try-catch,该事务也会回滚!因为内外层方法在同一个事务中,内层只要抛出了异常,

2020-08-20 16:05:06 354

原创 Idea上Spring boot本地启动,报原来的端口已经被占用或者被监听的错误

1)查看窗口占用进程win+R打开doc窗口输入命令:netstat -ano | findstr 80802)关闭占用进程输入命令:taskkill /f /t /im 61772执行后可再用用查看命令查看端口占用情况。命令:netstat -ano | findstr 80803)重新启动应用用idea或者其他编译工具重新启动应用...

2020-07-26 22:32:43 401

原创 JAVA常见的加密类

JAVA常见的一些加密类和方法一、工具类1. md5加密工具类package 加密Tester.util;import java.security.MessageDigest;public class MD5Utils { private static final String hexDigIts[] = {"0","1","2","3","4","5","6","7","8...

2020-04-08 15:15:33 705

原创 JAVA的OkHttp使用

使用OkHttp发送请求主要分为以下几步骤:创建OkHttpClient对象创建Request对象将Request 对象封装为Call-通过Call 来执行同步或异步请求,调用execute方法同步执行,调用enqueue方法异步执行创建连接:private OkHttpClient client = new OkHttpClient();GET请求:@Testpublic...

2020-04-02 19:44:00 536

原创 HttpClient使用介绍

使用HttpClient发送请求主要分为以下几步骤:创建 CloseableHttpClient对象或CloseableHttpAsyncClient对象,前者同步,后者为异步创建Http请求对象调用execute方法执行请求,如果是异步请求在执行之前需调用start方法创建连接:CloseableHttpClient httpClient = HttpClientBuilder.c...

2020-04-02 19:38:55 654 2

原创 8种常用数据结构

数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操作。快速介绍程序中经常用到的8中数据结构1.数组数组是固定大小的结构,可以容纳相同数据类型的项目。它可以是整数数组,浮点数数组,字符串数组或什至是数组数组(例如二维数组)。数组已建立索引,这意味着可以进行随机访问。数组运算遍历:遍历所有元素并进行打印。插入:将一个或多个元素插入数组。删除:从...

2020-03-23 21:24:08 1108

原创 B树、B-树、B+树、B*树

平衡算法,在B树在经过多次插入与删除后,有可能导致不同的结构,极端一点就是出现线性的蹩脚树,通过平衡算法(左旋和右旋),使树的节点分布均匀,是树的查找算法等同于二分查找。

2020-03-23 11:52:33 155

原创 docker下kafka安装流程

前提安装好docker环境,安转好docker-composecurl -L https://github.com/docker/compose/releases/download/1.6.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose1、下载镜像这里使用了wurstmeister/kafk...

2020-03-18 18:04:45 155

原创 docker在window的安装

Docker安装1下载和安装Docker Toolbox  从Docker官网可以下到Docker Toolbox:https://www.docker.com/products/docker-toolbox,选择windows版本下载。或者在阿里云下载http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/。双击下载...

2020-03-17 09:54:44 292

原创 redis中set、setnx和setex

1 使用介绍set格式:SET key value说明: 将字符串值 value 关联到 key 。如果 key 已经持有其他值, SET 就覆写旧值,无视类型。setnx格式:setnx key value说明:将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在,则 SETNX 不做任何动作。SETNX 是『SET if Not eXi...

2020-03-13 15:00:08 5614 2

原创 for(;;)和while(true)区别

for(;; ) 比 while(true) 好for(;; )和 while(true)都是“死循环”有两种写法,为啥源码中多数是for( ; ; )这种形式的。见下图 编译前 编译后 while (1); mov eax,1 test eax,eax je f...

2020-03-12 18:43:13 178

原创 不使用synchronized和lock,实现线程安全的单例

饿汉模式实现单例。(线程安全)public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return instance; }}...

2020-03-12 18:38:10 181

原创 JVM 级锁

synchronizedsynchronized 关键字是一把经典的锁,也是我们平时用得最多的。在 JDK1.6 之前, syncronized 是一把重量级的锁,不过随着 JDK 的升级,也在对它进行不断的优化,如今它变得不那么重了,甚至在某些场景下,它的性能反而优于轻量级锁。在加了 syncronized 关键字的方法、代码块中,一次只允许一个线程进入特定代码段,从而避免多线程同时修改同一数...

2020-03-12 17:58:54 158

原创 Java 对象内存布局

对象头区域此处存储的信息包括两部分:1、对象自身的运行时数据( MarkWord )存储 hashCode、GC 分代年龄、锁类型标记、偏向锁线程 ID 、 CAS 锁指向线程 LockRecord 的指针等, synconized 锁的机制与这个部分( markwork )密切相关,用 markword 中最低的三位代表锁的状态,其中一位是偏向锁位,另外两位是普通锁位。2、对象类型指...

2020-03-12 17:34:42 141

原创 HTTP基本介绍

HTTP 是什么?HTTP 是超文本传输协议,也就是HyperText Transfer Protocol。为方便理解可以吧HTTP拆为三部分。(超文本、传输、协议)超文本HTTP 传输的内容是「超文本」。可以换种方式理解「超文本」,它就是超越了普通文本的文本,比如文字、图片、视频等的混合体。HTML 就是最常见的超文本了,它本身只是纯文字文件,但内部用很多标签定义了图片、视频等的链接,...

2020-03-10 21:00:29 227

原创 redis-原子性和存取速度

Redis操作原子性的原因Redis的操作之所以是原子性的,是因为Redis是单线程的。Redis为什么这么快1、完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1);2、数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的;3、采用单线程,避免了不必要的上下文切换和竞争条...

2020-03-06 16:26:58 699

原创 对称加密和非对称加密

(一)对称加密(Symmetric Cryptography)对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。优点简单快捷,密钥较短,且破译困难。缺点如果用户一旦多的话,管理密钥也是一种困难。不方便直接沟通的两个用户之...

2020-03-04 14:53:03 467

原创 Java异常的分类

Java标准裤内建了一些通用的异常,这些类以Throwable为顶层父类。Throwable又派生出Error类和Exception类。错误:Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现。因此,程序员应该关注Exception为父类的分支下的各种异常类。异常:Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件...

2020-03-04 14:44:52 227

原创 volatile使用和Java单例模式中的volatile理解

为了更好理解单例模式中的volatile之前,需要先简单了解下Java的内存模型。Java的内存模型Java内存模型简称JMM(Java Memory Model),是Java虚拟机所定义的一种抽象规范,用来屏蔽不同硬件和操作系统的内存访问差异,让java程序在各种平台下都能达到一致的内存访问效果。Java内存模型是什么样子的呢?可以理解为下图的样子:解释下:1、主内存(Main M...

2020-02-26 17:24:26 312

原创 设计模式-单例模式

一 介绍单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。优点:1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实...

2020-02-26 12:21:17 124

原创 @RequestParam和@RequestBody的使用

一 @RequestParam注解(1)@RequestParam总体上来说,该注解类拥有三个参数:value、name 属性都标识请求参数名(必须配置);required:参数是否必传,默认为 true,可以设置为非必传 false;(如果设置了必传或默认,请求未传递参数,将会抛出异常);defaultValue:参数默认值,如果设置了该值,required 将会自动设置为 false...

2020-02-25 17:03:08 1573

原创 网络七层协议

网络七层协议比较枯燥性的知识点,但是在定位问题和对网络传输过程的理解还是很重要的,下面请耐心看完。希望对你的学习有所帮助。信号的传输总要符合一定的协议(protocol)。计算机之间的通信也要遵循不同层次的协议,来实现计算机的通信。为使不同计算机厂家的计算机能够互相通信,以便在更大的范围内建立计算机网络,有必要建立一个国际范围的网络体系结构标准。国际标准化组织ISO 于1981年正式推荐了...

2020-02-23 21:14:40 477

原创 使用git的简单命令

git命令介绍1、导出命令git clone …2、提交命令git add 新建文件夹名称git commit -m “描述提交的内容”git pull origin mastergit push origin master3、更新本地仓库git pull4、预览差异git diff5、显示修改文件git status6、用户设置git config --global...

2020-02-22 23:11:04 112

机械键盘-海盗船 Icue的安装包

机械键盘-海盗船 Icue的安装包

2022-08-09

Apifox-2.1.15

window上的Apifox-2.1.15

2022-08-09

空空如也

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

TA关注的人

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