自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(917)
  • 资源 (10)
  • 收藏
  • 关注

原创 HashTable putIfAbsent()方法,带示例

方法,如果给定的键不与值相关联或映射为空,则允许将值映射到给定的键。如果哈希表中已经存在这样的键值集,则返回空值。

2024-03-18 19:37:47 23

原创 定点数与浮点数

假设计算机空间可以存储一个三位数,小数点在最低位之后,表示一个三位整数,则它能表示的最大数位999,如果两个三位整数相加的结果要存储在这个计算机空间中(如:500+501=1001),这个计算结果超出了这个计算机空间所能表示的最大数,最高位的1会溢出,导致计算结果出现错误。小数也是如此,假设一个三位数,小数点在最高位之前,表示一个三位小数,如果你要用它在表示0.1025,则最低位的5会溢出,会使计算结果精度降低。1. 先对阶,阶码小的向阶码大的对阶,尾数向右移。n:阶码/指数,其长度决定浮点数的取值范围。

2024-03-07 09:28:59 38

原创 原码、反码和补码及其由来

了解了原码,我们再来说说反码,为什么会出现反码这个概念,首先咱们都知道原码的第一位是符号位, 我们自己在计算的时候会根据符号位选择正负数,再计算后面的部分,但是对于计算机,计算时要辨别符号位将会使硬件变得格外复杂或增加大量健壮性代码,于是人们想着将符号位也纳入计算。与此同时,人们发现,使用0和1我们只能在计算机中表示正数,为了方便使用,规定机器数的第一位为符号位,比如-5可以表示成-0000101,这种带符号的机器数我们叫做。将负数的符号位不变,后面真值部分按位取反,而正数的反码不变。

2024-03-03 22:58:58 47

原创 模2除法(CRC冗余码计算)和二进制/十进制除法

发送方先把冗余码的位置放n个0,然后把整个数据(k+n)位作为一个数字,除以(用的是模2除法,很重要!不是常规除法)一个事先准备好的除数p(n+1位),除下来的余数R就是n位的,这n位余数就作为发送方的CRC循环冗余码。复习网络,不小心碰到差错控制的CRC冗余码计算,随便算了一下,发现自己算的不对,于是发现了一串知识,总结如下。如果余数首位为1,则商为0,且再和除数异或一次,第二次的余数首位一定为0了,但是这一次只右移,并不得到商。模2除法的每一位的计算是完全独立的,就是异或,根本没有什么进位借位的事儿。

2024-03-03 22:56:49 83

原创 nohup command > &

Linux shell中有三种输入输出,分别为标准输入,标准输出,错误输出,分别对应0,1,2。2>&1:将程序的标准错误输出(STDERR)重定向到标准输出中,使得标准输出和标准错误都被写入到 /jack/cloudmes/jar/out.file 文件中。2>&1 :接着,将标准错误输出重定向到标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。1> 表示stdout标准输出;因此,>/dev/null 2>&1 也可以写成“1> /dev/null 2> &1”

2024-01-08 10:55:37 401

原创 SwitchHosts - 修改hosts

打开上面的官网,就可以看到最新版的下载,往下滑动就可以看到很多其他版本,点击。就可以下载自己需要的版本,Windows版如下所示。

2023-12-15 14:53:19 411

原创 Linux不重启添加新磁盘

一般来说,当我们在服务上插入新的磁盘时,服务器是会对磁盘进行识别的。但是,有的时候服务器并没有对这些新插入的磁盘进行识别。这时,我们可以通过重启服务器,来使服务器重新加载硬盘。在生产环境中我们的服务器上都存在着重要的服务,并不可以对服务器进行重启。下面介绍的就是无需重启服务器,使其识别新磁盘的方法。fdisk -l添加了新磁盘并没有发现两种方法(一重启,二重新识别)一、查看磁盘大小lsblk 查看的是block device,也就是逻辑磁盘大小。

2023-12-04 18:48:48 832

原创 分布式锁实现

查看Redis官方文档,对于单节点的Redis ,使用setnx和lua del删除分布式锁是足够的,但是主从架构的场景下:锁先加在一个master节点上,默认是异步同步到从节点,此时master挂了会选择slave为master,此时又可以加锁,就会导致超卖。此命令会返回扣减后的最新库存,若小于0则表示超卖。可以把分布式锁的性能提升5倍。里面有一个subscribe的逻辑,会监听对应加锁的key,当锁释放之后publish对应的消息,此时如果没有到达对应的锁的超时时间,也会尝试获取锁,避免时间浪费。

2023-11-29 10:41:57 916

原创 docker部署nginx

一、拉取镜像一般学习一项技术,会先用一个最简单的例子或最典型的例子来向大家讲解入门内容,所以此文为大家介绍使用docker安装nginx容器服务。,虽然基础但很重要,所以建议认真学习。

2023-11-22 16:36:39 50

原创 Docker常用基础命令

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker 基础常用命令。

2023-11-22 12:32:33 33

原创 云原生介绍

原先冗长、复杂、颇费时费力的技术工作和体力活,现在可以轻轻松松搞定。说这么多,现在略略见识一下:以上是两条kubernetes命令,其中,第一条命令部署两个nginx容器,第二条命令则让它们更新成一个最新的镜像版本。看,这多么简单。

2023-11-22 11:09:52 31

原创 关系数据理论

在 R(U) 的任一关系 r 中,如果存在元组 t 、s 使得 t[X]=s[X],那么就必然存在元组 w 、v∈R ,(w 、v 可以与 s 、t 相同),使得 w[X]=v[X]=t[X],而 w[Y]=t[Y],w[Z]=s[Z],v[Y]=s[Y],v[Z]=t[Z](即交换 s 、t 元组的 Y 值所得的两个新元组必在 r 中),则 Y 多值依赖于 X,记为 X→→Y。【例 6.8】关系模式 STJ(S,T,J) 中,S 表示学生,T 表示教师,J 表示课程。

2023-11-06 11:29:54 65

原创 Windows Git配置SSH

进入桌面,或者文件管理中右键——>打开Git命令窗口。

2023-07-01 15:55:58 1945

原创 nginx的配置转发

有这样一个需求:项目中跳转到某个地址,但这个地址不想暴露给用户。因此我们想到要做一层代理,通过项目某个路径直接用ngnix代理到这个地址。

2023-07-01 13:54:38 1192

原创 如何关闭swagger

原理跟第一个差不多,只是判断条件不同(profile判断配置文件,也即的参数)swagger2 关闭主要是根据条件使swagger 配置不再生效,如。方法一:@ConditionalOnProperty。方法三 @Value 配置Docket 失效办法。其他基于Conditional的方式。方法二 @Profile。

2023-06-08 00:32:56 1299

原创 时间同步-Chrony

该命令会显示有多少 NTP 源在线/离线。可以查看更多 chronyc 的交互命令。检查 NTP 访问是否对特定主机可用。手动移除 NTP 服务器或对等服务器。手动添加一台新的 NTP 服务器。在客户端报告已访问到服务器。手动设置守护进程时间。

2023-06-07 18:13:22 354

原创 Spring Boot 集成 WebSocket

WebSocket 协议是基于 TCP 的一种新的网络协议,它实现了浏览器与服务器全双工(full-duplex)通信—允许服务器主动发送信息给客户端,这样就可以实现从客户端发送消息到服务器,而服务器又可以转发消息到客户端,这样就能够实现客户端之间的交互。对于 WebSocket 的开发,Spring 也提供了良好的支持,目前很多浏览器已经实现了 WebSocket 协议,但是依旧存在着很多浏览器没有实现该协议,为了兼容那些没有实现该协议的浏览器,往往还需要通过 STOMP 协议来完成这些兼容。

2023-06-05 16:18:16 130

原创 telnet退出

2.ctrl + ]3.quit。

2023-05-23 14:08:27 84

原创 git branch -m 改分支名

git

2023-05-16 14:38:40 100

原创 接口优化技巧

关于锁粒度:就是你要锁的范围有多大,不管是 synchronized 还是 redis 分布式锁,只需要在临界资源处加锁即可,不涉及共享资源的,不必要加锁,就好比你要上卫生间,只需要把卫生间的门锁上就可以,不需要把客厅的门也锁上。我们都用过数据库连接池,线程池等,这就是池思想的体现,它们解决的问题就是避免重复创建对象或创建连接,可以重复利用,避免不必要的损耗,毕竟创建销毁也会占用时间。变换思路,更高一级思考问题,站在接口设计者的角度去开发需求,会避免很多这样的问题,也是降本增效的一种行之有效的方式。

2023-05-15 09:51:47 118

原创 堆内存溢出自动生成DUMP文件

如果发生了内存泄露,如果好重现,使用JVisualvm,或者jmap,Jprofiler进行Heap Dump,使用MAT进行分析。快照格式为java_pid2821.hprof(2821为Java进程号)-XX:+HeapDumpOnOutOfMemoryError :当内存溢出时触发java.lang.OutOfMemo: Java heap space。-XX:HeapDumpPath=/opt/heap·: 内存溢出时,保存内存快照文件。VisualVm和MAT。

2023-04-27 17:32:35 2349

原创 nginx配置ssl证书

比如你的Nginx安装目录是/usr/local/nginx,则先在/usr/local/nginx/conf目录下新建一个文件夹cert,然后将这两个文件上传放置在这个目录下。将第1步中的证书文件(.pem结尾)和密钥文件(.key)文件上传到Nginx服务器中,这两个文件具体的放置路径是在Nginx安装目录下的conf/cert文件夹中。在阿里云控制台中的SSL操作界面中找到刚申请成功的免费SSL证书,点击右侧的「下载」链接,弹出下载页面,然后点击Nginx右侧的下载按钮,下载证书文件。

2023-04-27 14:51:05 896

原创 java缓存

持久化 统计监控 支持多种缓存淘汰算法,包括LRU、LFU和FIFO 缓存支持堆内存储、堆外存储、磁盘存储(支持持久化)三种 支持多种集群方案,解决数据共享问题

2023-04-24 13:40:07 53

原创 系统多级缓存

运维

2023-04-24 13:24:10 98

原创 MYSQL如何列转行

我们的动态sql是拼接实现的, 主要就是拼接我们的课程成绩那一句, 所以要先看一下CONCAT函数拼接课程语句。IF(s1,s2,s3)表达式,类似三木运算符取值,s1值为真取s2值,假取s3个值,最后可得到某一科成绩。有三张表,学生表、成绩表和课程表,我们可以通过连表查询出学生姓名、课程及对应的成绩: 所需表sql。然后我们分组且用MAX函数获取每个学生的数学课程的成绩,替换这一课的字段名称。好的,现在呢我们要把课程名称呢变成横行呢?是的,结果就是上面要的MAX函数。好的 那么我们来封装成存储过程。

2023-04-20 16:17:17 1847

原创 Nginx 调整文件上传大小

ng

2023-01-12 13:40:02 4543

原创 jetCache缓存

jetcache

2022-11-10 17:39:07 306

原创 SPRING @ASYNC @TRANSACTIONAL 失效的原因及解决方案

spring

2022-10-27 16:56:25 873

原创 eclipse 插件 MAT 下载

MAT

2022-10-22 15:29:43 858

原创 MySQL中tinytext、text、mediumtext和longtext

mysql

2022-10-08 15:21:51 562

原创 SpringBoot 发送邮件

springboot

2022-06-06 23:44:23 280 1

原创 [设计模式]工厂模式

设计模式

2022-05-23 00:32:15 185

原创 [设计模式]单例模式五种方式

设计模式

2022-05-16 23:26:39 185

原创 [设计模式]单例模式-DCL

设计模式

2022-05-16 00:25:54 472

原创 领域建模与系统架构

领域

2022-05-16 00:01:04 424

原创 领域建模例子

领域建模

2022-05-15 23:58:07 888

原创 Flowable基本操作

flowable

2022-04-27 16:23:24 396

原创 DDD划分领域、子域、核心域、支撑域的目的

领域

2022-04-25 00:02:07 299

原创 SpringBoot中RabbitMQ集群的搭建详解

单个的 RabbitMQ 肯定无法实现高可用,要想高可用,还得上集群。今天就来和大家聊一聊 RabbitMQ 集群的搭建。1. 两种模式说到集群,小伙伴们可能第一个问题是,如果我有一个 RabbitMQ 集群,那么是不是我的消息集群中的每一个实例都保存一份呢?这其实就涉及到 RabbitMQ 集群的两种模式:普通集群 镜像集群1.1 普通集群普通集群模式,就是将 RabbitMQ 部署到多台服务器上,每个服务器启动一个 RabbitMQ 实例,多个实例之间进行消息通信。

2022-02-18 11:27:43 1137

原创 rabbitmq-死信交换机和死信队列

如果使用消息拒绝机制,同时 requeue 参数设置为 false时,消息丢失了,这点作为程序员我们不能忍。所以 RabbitMQ作为一个高级消息中间件,提出了死信交换器的概念,死信,意思就是死了的信息。这种交换器专门处理死了的信息(被拒绝可以重新投递的信息不能算死的)。死信交换器是 RabbitMQ 对 AMQP 规范的一个扩展,往往用在对问题消息的诊断上(主要针对消费者),还有延时队列的功能。消息变成死信一般是以下三种情况:消息被拒绝,并且设置 requeue 参数为 false 消息过期

2022-02-07 21:28:33 1253

SpringCloudGateway2.1使用手册中文版.rar

springcloudgatewaySpringCloudGateway2.1使用手册中文版.rar

2019-09-04

velocity例子

java velocity例子

2016-06-12

spring源码解析

spring源码解析

2016-05-23

dispatcher 源码详解

javaweb项目 DispatcherServle源码详解 web.xml 配置

2016-05-23

C#显示水平滚动条

C# WinForm textBox 滚动条 属性Scrobars设置为Both或者Vertical 不会显示水平滚动条 为什么? 本文档 有答案

2013-01-01

C# TextBox 换行功能实现

C# TextBox 换行功能实现

2013-01-01

C# 控件缩写大全

C# CSharp 控件 缩写 大全 很有用途

2012-12-31

C#中MessageBox用法大全(附效果图)

C# MessageBox 用法大全 附效果图

2012-12-30

C#入门经典

C# 经典 相当的经典

2012-11-23

空空如也

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

TA关注的人

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