自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (6)
  • 收藏
  • 关注

原创 linux安装maven

如果提示没权限,执行:chmod -R a+x {maven路径}创建仓库目录:/usr/local/repository。export MAVEN_HOME={maven路径}在/etc/profile添加maven路径。查看是否配置成功,执行:mvn -v。解压后上传到服务器的目录。

2023-01-12 14:52:35 370 1

原创 linux下rocketmq单机启动,部署rocketmq-dashboard

启动broker:nohup sh bin/mqbroker -c conf/broker.conf autoCreateTopicEnable=true &生产:sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer。消费:sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer。修改conf/broker.conf,添加如下,这是为了对外ip开放,不然不能访问。

2023-01-12 11:50:12 2756

原创 JNI简单描述

JNI简单描述

2022-09-21 15:18:33 252

原创 用简单的方式去描述RPC原理

RPC原理

2022-09-15 14:57:05 736

原创 用简单的方式去描述jvm的设计思路及原理

加载器将代码转换完成后并不结束,而是接着执行转换后的代码,这样转换后的代码才能使用加载器封装过的方法(可以理解成加载器将转换后的代码热加载进来,变成自己的一部分,然后执行)。原来的转换器将class代码转换成平台代码是一步,然后手动执行转换完的代码是一步,这两步是独立的(是两个进程)。举个例子你就明白了,平时你启动多个java程序,你会发现进程名都是叫java,并不是main函数对应的那个类的名字,这就说明了,其实jvm才是真正启动的程序,我们开发的代码只是被热加载进去的待执行代码而已。

2022-09-14 16:19:03 176

原创 java调优和排查

java调优和排查

2022-09-14 15:55:07 119

原创 RocketMQ用生活例子概念转化为代码设计概念

RocketMQ用生活例子概念转化为代码设计概念

2022-09-07 12:00:04 175

原创 linux交互式脚本expect

2.项目中添加CMakeListsdeps 目录下创建 CMakeLists.txt文件=================================================add_subdirectory(hiredis)add_subdirectory(linenoise)add_subdirectory(lua)123deps/hiredis目录下创建CMakeLists.txt文件文件内容:add_library(hiredis STATIC hir...

2022-01-25 16:13:55 1323

原创 redis服务搭建

cd [程序目录]wget http://download.redis.io/releases/redis-5.0.7.tar.gztar -zxvf redis-5.0.7.tar.gzcd redis-5.0.7make./src/redis-server这种方式只能本地访问,外网访问需要如下操作cp redis.conf redis_net.conf将 redis_net.conf 文件里NETWORK模块下的:bind 127.0.0.1 改为 bind 0.

2021-12-30 14:02:32 414

原创 汇编代码调试程序debug参数说明

汇编语言开发调试的步骤如下1.EDIT,编写汇编程序代码,生成.asm文件2.MASM,汇编程序,将.asm文件编译成二进制代码,生成.obj文件3.LINK,链接程序,将.obj链接成为可执行文件,生成.exe文件4.DEBUG,调试程序学习前我们先准备环境,工具下载地址如下:https://download.csdn.net/download/shanghaichongmin/67356237使用工具,先解压,不用位数的计算机开启方法不一样32位:dos路径切

2021-12-20 14:50:53 9665

原创 MAVEN配置多代码目录

我们在使用maven管理代码的时候maven的默认目录有,代码目录:src/main/java,资源目录:src/main/resources如果我们在开发过程中多人开发一个项目,为了开发好管理,我们会给每个业务建一个文件夹例如:src/main/order,src/main/log,src/main/login这时候我们会发现maven只编译了src/main/java目录下的代码,其它没有编译,这是因为其它目录没有被指定为代码资源目录,所以需要配置,这个功能需要使用插件:build-he

2021-12-13 10:31:52 912

原创 Linux内存段式管理和页式管理

1.分页内存管理1.物理内存划分成无数个大小一样的块,每个块被称为页框2.内存大小为2^n,页框大小为2^m,那么就有2^(n-m)个页框3.页表则存在2^(n-m)个页号,页表的每个页表项为n-m位,一般为了整数操作会凑个整,多出来的做留着用来做标志位, 的最大占用空间则为2^(n-m)*((n-m)/8的大整数)上面的n=32,代表32位,m=12代表每个叶框大小为2^12=4K,页表长度为2^20=1M,页表项为4B,所以整个页表始终占用空间为4MB,可能程序访问的时候一直访问前面的小部分

2021-12-10 10:43:16 734

原创 C语言,栈区、堆区、静态数据区、常量区、代码区 解析

#include<stdio.h>char* a0="test";char* a1;char b0[]="test";char b1[2];int c0=1;int c1;static int d0=2;static int d1;void test(){ char* e0="test"; char* e1; char f0[]="test"; char f1[2]; int g0=3; int g1; static int h0=4...

2021-12-08 10:06:08 1032

原创 linux环境c创建链接库并使用

什么是链接库:链接库就是一个包含了多个功能函数的文件,里面提供了一堆现成的函数方法,不需要再重复造轮子先把工作思路理清楚,怎么创建和使用链接库1.创建链接库2.创建调用链接库函数的代码,然后编译(包含链接库),生成可执行文件3.链接库注册到系统我们用取最大值来做一个例子1.创建链接库最大值的库源码//func.cint max(int a ,int b){ return (a>b)?a:b;}生成链接库文件,会生成一个libfunc.sogcc

2021-12-03 12:34:57 1634

原创 c学习socket

int socket(int domain, int type, int protocol);int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);int listen(int sockfd, int backlog);int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);ssize_t recv(...

2021-11-25 13:37:16 1916

原创 linux下c调用定时器

先理思路,我们一般肯定在前端或后端都使用过定时器,定时器设置肯定是有相似的步骤的,一般处理思想如下1.声明定时触发的方法2.声明定时执行的间隔时间3.声明定时器,设置间隔时间和回调方法一般其它语言定时器时间间隔多用一个整数值,单位是毫秒,但是c不一样,它是一个结构,如下/*1秒=1000毫秒=1000,000微秒*/strcut timeval{ long tv_sec; /*秒*/ long tv_usec; /*微秒*/};它是把秒和微秒拆开设置,时间间.

2021-11-18 18:11:05 1715 3

原创 c语言监听键盘

#include<stdio.h>#include<termios.h>/*存储原来的配置*/struct termios stored_settings;/*恢复原来的配置*/void resetConfig(){ tcsetattr(0,TCSANOW,&stored_settings);}/*新配置*/struct termios new_settings;/*设置按键监听配置*/void setNewConfig(){ .

2021-11-18 15:36:30 1432

原创 c语言printf控制与格式

输出控制\033[0m 关闭所有属性\033[1m 设置高亮度\03[4m 下划线\033[5m 闪烁\033[7m 反显\033[8m 消隐\033[30m -- \033[37m 设置前景色30: 黑,31: 红,32: 绿,33: 黄,34: 蓝,35: 紫,36: 深绿,37: 白色\033[40m -- \033[47m 设置背景色40: 黑,41: 红,42: 绿 ,43: 黄,44: 蓝,45: 紫,46: 深绿...

2021-11-18 09:46:12 1765

原创 Linux环境java使用jni调用本地方法

干活前先把流程理清楚,先把工作场景,分析步骤1.创建一个本地方法的java定义2.将java定义转化成c定义3.实现c定义4.将实现的c定义转化成链接库5.加载链接库,调用本地方法触发链接库的实现先查看本地方法的类,步骤1/** * 调用本地方法的组件 */public class NativeUtils { /*比大小*/ public native int max(int i, int y);}编译生成字节码文件:javacNativeUt.

2021-11-17 14:25:05 957

原创 nginx使用子域名绑定到指定端口

安装nginx,使用下面网站的方式一链接添加配置cd/etc/nginx/conf.dvi api.confserver { listen 80; #监听端口 root /usr/******/springboot/static/; #网站根目录,建议使用绝对路径 index index.php index.html index.htm; #默认文件 location / {...

2021-11-12 16:10:54 3216

原创 linux自动拉取码云springboot并打包启动半自动脚本方式

卸载重装gitgit --versionyum remove gityum -y install git配置gitgit config --global user.name "******"git config --global user.email "******@126.com"生成秘钥ssh-keygen将公钥文件内容填入码云(头像=》设置=》安全设置=》SSH公钥=》添加)/root/.ssh/id_rsa.pub下载maven​http

2021-11-11 11:18:33 1011

原创 Mysql常用语法

获取系统应用信息服务器版本信息:select version() 当前数据库名:select database() 当前用户名:select user() 服务器状态:show status 服务器配置变量:show variables用户管理查看结构:desc mysql.user 查看所有用户:select * from mysql.user 创建用户:create user 用户名[@主机地址] identified by [明文密码],[@主机地址]不填,Host为%,即任意地

2021-11-03 17:29:33 61

原创 网络通信的加密和认证简述

前段时间我研究抓包,然后发现抓自己数据库交互的时候,是能抓出数据的,但是朋友的数据库是一长串字节,并不能抓取出真实数据,然后就研究为什么会这样。然后查看抓取到的包有什么差异,发现在在登陆的时候多了一步TLS连接操作,然后就查询了相关的文档,TLS(传输层安全协议)其实就是SSL(安全套接字协议)的一个升级,那一切就明了了,SSL的主要功能就是对通信数据加密。我们先讲解加密方式1.对称加密对数据的加密和解密是同一把密钥 加密快,安全性相对较低 多用于加密大内容,例如:会话内容2.非对称加

2021-11-03 14:55:43 830 1

原创 wireshark常用条件

1.过滤IPip.srceq 192.168.1.1 请求端IPip.dst eq 192.168.1.1 服务端IPip.addr eq 192.168.1.1 不区分2.过滤端口tcp.srcport == 80 请求端端口tcp.dstport == 80 服务端端口tcp.port == 8080 不区分3.过滤MACeth.src== ff:ff:ff:ff:ff:ff...

2021-10-25 09:22:52 804

原创 网络抓包及分析

今天我们主要来讲一下网络抓包的教程,我们用WireShark来说明我们先说明下抓包工具界面我们现在本地机子上用上面两个比较多上面是抓无线网卡,就是你访问外网的包下面是抓环回地址,就是你访问127.0.0.1或localhost的包我们抓上面WLAN的包进行解说我们先启动抓包抓包开始了,然后我们会获得抓包的一系列数据,我们多访问几个页面,然后我们去网上随便找个页面的logo访问下:http://www.hznmv.com/Public/skin1/img/pic/l...

2021-10-22 17:06:03 6834

原创 码云创建仓库,git拉取

按照惯例我们先把流程理一下:码云创建仓库 -> 本地带着公钥去请求克隆代码 -> 码云验证公钥 -> 公钥通过返回仓库代码上面流程很明显,需要以下几样资源1.码云仓库2.给码云和本地共同设置公钥我们开始解决这两个问题仓库创建完成获取git克隆地址:git@gitee.com:******/test.git下载安装好git设置git信息git config --global user.name "用户名"gi...

2021-10-14 17:28:12 450

原创 Tomcat源码阅读流程

前面我们将tomcat的流程理了一遍,这里将流程和代码结合起来通读,下面的图就是代码的整体运行流程,阅读方式是先右后下,右代表调用方法,下代表同级顺序执行

2021-09-17 11:28:51 54

原创 Tomcat设计结构流程

前面把tomcat的源码运行起来后,然后把源码主流程通读了一遍,这里,我将流程列出来阅读方式是先右后下,右代表调用方法,下代表同级顺序执行

2021-09-16 15:27:08 121

原创 Idea启动Tomcat源码

参考:https://www.cnblogs.com/yangjiming/p/10953710.htmlhttps://blog.csdn.net/qq_33135813/article/details/88216149下载tomcat源码,地址:https://tomcat.apache.org/解压到目录在项目的根目录下添加pom.xml文件,内容如下:<?xml version="1.0" encoding="UTF-8...

2021-09-07 15:32:26 355

原创 AQS抽象队列同步器原理

aqs的原理很简单,就是1.当前执行信息,2.Node同步链当前执行信息包含:1.占用状态-state,大于0就说明锁被占用了2.当前线程-exclusiveOwnerThread,占用锁的线程,命名排除是因为重入的时候直接排除判断3.同步链首-head,执行中或者已执行完的Node(执行中的是插队的Node),执行中完成后用唤醒head后的Node4.同步链尾-tailfeioNode包含:1.前Node2.后Node3.后Node的等待的行为-waitStatusThread0请求

2021-08-24 18:31:04 88

原创 CHLLock的原理

​我们今天来讲一下CHL锁的原理,CLH锁其实就是一种是基于逻辑队列非线程饥饿的一种自旋公平锁,由于是 Craig、Landin 和 Hagersten三位大佬的发明,因此命名为CLH锁。原理如下:1.首先有一个尾节点指针,通过这个尾结点指针来构建等待线程的逻辑队列,因此能确保线程线程先到先服务的公平性,因此尾指针可以说是构建逻辑队列的桥梁;此外这个尾节点指针是原子引用类型,避免了多线程并发操作的线程安全性问题;2.通过等待锁的每个线程在的某个变量上自旋等待,这个变量一般依赖前一个线程,数据也是由前

2021-08-19 14:02:24 162

原创 队列和锁的关系

我们在并发开发的时候,队列是一直在使用的,那我们今天就来讲讲队列我们分为两种:1.阻塞队列,2.非阻塞队列,那我们怎么去区分这两个队列呢我们还是举个例子:公司里面有A和B都要用会议室,然后他们两个都去申请使用,A先到了1分钟,所A就获取会议室的锁钥匙,然后B就只能等着A用好了才能使用了,那B怎么知道A什么时候用好呢?这时候留给A的方式有两种:1.询问型:在会议室边上等着,每隔几分钟看下A有没用好,好了立马使用2.休息型:在会议室边上的沙发上睡觉,A用好了怕怕肩膀说,我用好了,你可以使用,然后A调整

2021-08-14 09:51:00 684

原创 多线程开发

进程和线程的关系:一个进程就是一个程序,一个进程包含1个以上的线程,通俗的讲就是,进程是正常运作的工厂,线程生产线,一个工厂至少要有1条以上的生产线,这样才是一个正常运作的工厂。一个java程序默认有几条线程2条线程,一个是mian线程,一个是gc线程什么并发和并行并发:一个处理器交替执行多个任务并行:多个处理器一直同时运行线程的状态有6个,分别为:NEW:新建,RUNNABLE:运行,BLOCKED:阻塞,WAITING:永久等待,TIMED_WAITING:限时等待,TERMINATED

2021-08-08 12:23:07 88

原创 位运算在开发中的使用

我们今天讲一个a和b两个数值交换的位运算使用方式传统:上面这个是我们最常用的方式,需要使用一个中间临时变量,今天我们换一个方式位运算:^是异或运算,那这个的原理是什么呢?我们来分析一下先转二进制m: 0101n : 1010m = m ^ n;m : 1111n = m ^ n;n : 0101 (等于原来的m了)m = m ^ n;m : 1010转换成10进制:m=10,n=5;这个有个疑问,异或到底是什么呢?我们来举个例子假设...

2021-08-06 18:11:26 165 1

原创 Stream原理

还是老样子,不要流式处理这个高大上的名字给忽悠了,我们看两个例子,

2021-08-03 17:10:22 90

原创 Spliterator的原理

测试代码/*初始化数据*/String[] strings = {"A", "a", "B", "b", "C", "c" , "AB", "Ab", "aB", "ab", "BC", "Bc", "bC", "bc", "AC", "Ac", "aC", "ac" , "ABC", "ABc", "AcC", "aBC", "Abc", "aBc", "abC", "abc"};List<String> lists = Arrays.asList(str...

2021-08-02 16:37:04 204

原创 声明式事务的五个特性

1.事务传播机制 参考:https://blog.csdn.net/shanghaichongmin/article/details/1190058182.事务隔离机制3.只读 如果一个事务只对数据库执行读操作,那么该数据库就可能利用那个事务的只读特性,采取某些优化措施。通过把一个事务声明为只读,可以给后端数据库一个机会来应用那些它认为合适的优化措施。 由于只读的优化措施是在一个事务启动时由后端数据库实施的, 所以只有将会启动一个事务的方法声明只...

2021-07-23 15:52:06 230

原创 事务的传播机制

REQUIRED(默认) 如果当前没有事务,则自己新建一个事务,如果当前存在事务,则加入这个事务 SUPPORTS 当前存在事务,则加入当前事务,如果当前没有事务,就以非事务方法执行 MANDATORY 当前存在事务,则加入当前事务,如果当前事务不存在,则抛出异常 REQUIRES_NEW 创建一个新事务,如果存在当前事务,则挂起该事务 NOT_SUPPORTED 始终以非事务方式执行,如果当前存在事务,则挂起当前事务 ...

2021-07-22 18:06:25 379

原创 声明式事务失效原因

我们在开发中会发现一个问题,controller调用service中的一个普通方法,普通方法调用一个有事务注解的方法,结果发现事务失效了,service类如下:@Serviceclass TransactionalService { public void a() throws Exception {//标记1 b(); } @Transactional public void b() throws Exception {//标记2 }}.

2021-07-22 17:28:51 364 1

原创 原码、反码、补码

计算机表示数字的方式为二进制,数字分为正负两种格式,我们分别来讲解正数原码、反码、补码 都是原来的值负数原码:高位为1,其它和正数一个表示方式一样反码:排除高位,其它位的数值0改为1,1改为0补码:低位加1例子(8位)-2929 => 00011101-29 => 1001 1101原码:1001 1101反码:11100010补码:1110 0011那原码、反码、补码为什么是这么计算的呢8为带符号的二进制,第1位是符号..

2021-07-21 16:58:09 888

expect & tcl 的安装文件

expect & tcl 的安装文件

2022-01-25

Makefile中文教程

Makefile中文教程

2022-01-06

redis-5.0.7.tar.gz & redis-desktop-manager-0.8.8.384.exe

redis-5.0.7.tar.gz & redis-desktop-manager-0.8.8.384.exe

2021-12-30

汇编文档 & masm/link工具

汇编文档 & masm/link工具

2021-12-20

MySQL的协议分析pdf

MySQL的协议分析pdf

2021-10-28

医疗系统生成的dcm文件

医疗系统生成的dcm文件

2021-10-28

空空如也

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

TA关注的人

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