自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

智者不入爱河,冤种重蹈覆辙。

问题记录&学习笔记&心路历程

  • 博客(36)
  • 收藏
  • 关注

原创 Docker常用命令整理

Docker常用命令整理DockerHubDocker 安装启动镜像命令容器命令DockerfileDocker Compose命令yml文件配置DockerHubDockerHub:https://registry.hub.docker.com/DockerHub 是一个由 Docker 公司运行和管理的基于云的存储库。Docker 安装启动安装Docker:yum install docker启动Docker:systemctl start docker查看Docker状态:syst

2021-12-28 11:32:54 404

原创 RTL(ReentrantLock) 学习笔记

RTL(ReentrantLock) 可重入锁学习笔记什么是ReentrantLock 及其作用二级目录三级目录什么是ReentrantLock 及其作用ReentrantLock 基于 AQS(AbstractQueuedSynchronized),在并发编程中它可以实现公平锁和非公平锁来对资源进行同步,同时和synchronized一样,ReentrantLock支持可重入。ReentrantLock在调度上更灵活,支持更多丰富的功能。二级目录三级目录...

2021-12-02 17:07:32 690

原创 JVM内存分区笔记

JVM内存分区笔记JVM内存分区线程共享和线程隔离程序计数器虚拟机栈(Java方法栈)栈帧局部变量表(Local Variable)操作数栈(Operand Stack)动态连接(Dynamic Linking)返回地址(Return Address)本地方法栈方法区方法区概念方法区-类型信息常量池(Constant Pool)运行时常量池堆内存管理是JVM中的重要命题,当JVM对内存进行管理后降低了开发者的门槛,提高了程序的可维护性。注:内存区域和内存模型并不是一个概念,内存模型传送门。JVM内存分

2021-11-12 15:23:45 1394

原创 硬件内存模型&Java内存模型学习笔记

硬件&Java内存模型学习笔记硬件内存模型抽象结构单CPU模型多CPU模型缓存一致性问题缓存一致性协议指令重排问题Java内存模型抽象结构线程之间的通信三要素可见性原子性有序性硬件内存模型硬件内存模型的目标是为了让汇编代码能够运行在一个具有一致性的内存视图上。抽象结构单CPU模型cpu---->寄存器---->缓存---->内存(主存)多CPU模型模型可以在单CPU中运行,但是当计算机引入多CPU时,就会出现缓存一致性问题(数据不同步)。 如下图缓存一致性问题问题

2021-11-11 16:41:27 370

原创 Java类加载机制&类加载器学习笔记

Java类加载学习笔记类加载机制Java类生命周期类加载加载连接-验证连接-准备连接-解析初始化Java类加载器类加载器的分类Hotspot JVM具体实现视频链接:https://www.bilibili.com/video/BV14U4y1L75q?spm_id_from=333.999.0.0Java文件执行过程:Java文件通过javac编译成.class文件(字节码文件)。JVM加载字节码文件,运行时解释器将字节码解释为机器码来执行。在整个程序运行期间,即时编译器会针对热点代码将改部分字节码

2021-11-09 19:00:29 435

原创 Java线程模型学习笔记

Java线程模型学习笔记线程线程模型是什么线程和进程OS两种CPU状态OS指令划分特权级别内核态&用户态区别三种线程模型一对一多对一多对多Java线程调度线程线程模型是什么因为Java字节码运行在JVM(Java虚拟机)中,JVM运行在各个OS(操作系统)上,所以当JVM想要进行线程创建和回收的操作时,必须要调用OS的相关接口。JVM线程与OS线程之间存在某种映射关系,这两种不同维度的线程之间的规范和协议,就是线程模型。JVM线程对不同OS原生线程进行了高级抽象,使使用者不需要关注下层细节

2021-11-08 15:31:23 103

原创 AQS 同步框架学习笔记

AQS(AbstractQueuedSynchronizer) 学习笔记思路同步管理框架设计思路细节实现xx思路同步管理框架设计思路目标: CAS只能原子的修改内存上的一个值,然而实际的业务场景中,需要同步的资源却是以对象的形式进行封装,如何利用CAS的特性对对象资源进行同步通用性:下层实现透明的同步机制,与上层业务解耦利用CAS的原子性,修改共享标志位:如果标志位为空,则表示当前资源空闲,如果标志位部位空,则表示当前资源正在被使用,线程需要等待等待队列:阻碍其他线程的调用细节实现xx

2021-11-02 18:27:46 107

原创 JAVA 策略模式实践应用

JAVA 策略模式应用实践记录问题场景问题分析策略模式应用问题场景问题分析策略模式应用

2021-08-10 17:49:37 194 1

原创 各种工具安装记录

各种工具安装记录数据库mysqlwindows下载安装配置mysql 5.7orcale数据库mysqlwindows下载安装配置mysql 5.7下载安装链接配置:https://www.cnblogs.com/winton-nfs/p/11524007.html问题:端口占用不能启动mysql解决方法:https://segmentfault.com/a/1190000014781074orcale...

2021-07-14 16:33:54 1440 1

原创 Mysql 索引 事务 锁 记录

explain 关键字可以看到sql语句的运行情况,是否有索引的使用。Hash 索引:将索引列做哈希运算得到散列值,将散列值和这一行的磁盘文件地址指针存储在节点中。mysql存储引擎有:MyISAM、InnoDB、Memory等,其中InnoDB是默认的存储引擎,存储引擎是形容表的。MyISAM 使用非聚集索引:意思是数据和索引分开存放,InnoDB使用。索引类型:主键索引、唯一索引、联合索引、全文索引、普通索引、聚集索引。联合索引:最左匹配原则, 与联合索引的底层数据结构有关,如图。

2021-03-15 19:57:22 217

原创 HashMap 要点详细记录

HashMap 要点详细记录HashMap基础hash方法put方法扩容机制HashMap基础HashMap存储结构为数组、链表、红黑树(JDK1.8)。HashMap由节点Node<K,V>组成。HashMap只允许一个key为null和“”,且若为null,hash值会被赋为0,若为“”空字符串,hash值本来就是0。若数组某个节点上的Node>=7,则会将链表进化为红黑树,反之若节点<6则会由红黑树退化为链表。HashMap线程不安全,ConcurrentHash

2021-03-03 18:32:09 263 5

原创 API v3版微信支付 验签

API v3版微信支付 验签关于验签构造验签名串根据证书进行验签关于验签微信平台证书可以对响应进行验签,也可以对回调的请求进行验签,是同一套。构造验签名串验签串儿的格式如下。应答时间戳\n应答随机串\n应答报文主体\n /** * 构造验签名串 * * @param wechatpayTimestamp HTTP头 Wechatpay-Timestamp 中的应答时间戳 * @param wechatpayNonce HTTP头 Wechatpay-Nonce 中

2021-01-18 16:09:07 2581 1

原创 API v3版微信支付平台证书获取与自动更新

API v3版微信支付平台证书获取与自动更新关于微信平台证书获取平台证书证书自动更新首次下载证书关于微信平台证书微信支付开发有两份证书:一份是商户证书,可以使用商户平台证书私钥对请求进行签名,微信服务器进行验签可以验证请求者的身份;另一种证书是微信平台证书,是由微信服务器使用私钥对响应签名之后,我们自己的服务器使用平台证书对响应进行验签,从而可以验证响应的合法性。获取平台证书微信官网有对应的API可以获取平台证书,请求之前也需要进行相应的签名,响应的数据大致如下。若有新旧证书更替,则可能不止一条证

2021-01-18 13:04:03 7061 1

原创 API v3版微信支付请求签名

微信支付APIv3请求签名获取证书私钥构造签名串生成签名设置请求头获取证书私钥商户申请商户API证书时,会生成商户私钥,并保存在本地证书文件夹的文件apiclient_key.pem 中。可以将私钥串儿写到项目的配置文件中(注意中间不能有换行),也可以读取私钥文件获得。构造签名串签名串格式为五行,每一行为一个参数,行尾以 \n结束。报文主体可能为空,此时依然有\n。注:若报文主体为空则可能是null\n,需要注意直接空字符串即可,不要null。HTTP请求方法\nURL\n请求时间戳\n请

2021-01-15 18:13:16 3106 4

原创 API v3版微信支付开发(JAVA)

java微信支付开发开发前准备签名请求平台证书验签响应接口调用开发前准备在进行开发前需要准备一些参数。签名请求调用接口之前需要对请求进行签名,保证安全平台证书接口响应之后需进行验签,验签就需要微信支付平台证书。验签响应在获取完平台证书之后就可以对响应进行验签了。接口调用接口响应的数据有可能是加密数据,需要相应的进行解密...

2021-01-15 17:44:49 2202 4

原创 web前端小记20201216

web前端小记布局标签CSS样式样式添加位置居中布局大部分布局都使用div标签块来进行分割调整,div可以加上class类选择器进行样式添加,将样式封装起来可以进行复用而且修改时只需要改一处即可。最好能进行多层div嵌套使用,但也不能过多嵌套。class类选择器的命名,头head,xx忘了,内容container,页脚bottom;命名时最后使用下划线(_),因为中划线(-)是很多开源CSS文件使用的命名规则可能会与自己的命名重复造成样式覆盖,命名时都是小写即可使用下划线分开。<div

2020-12-16 19:55:36 132

原创 Clion Git安装配置

Clion Git安装配置1.下载git安装包官网下载:https://git-scm.com/download/win选择32位或64位下载2.双击安装git直接默认安装,有需要可以修改安装路径3.初始化本地git仓库1)打开git终端2)git init(初始化git仓库)3)git config --global user.name “用户名”(设置用户名)4)git config --global user.email “邮箱” (设置邮箱)5)git remote add o

2020-09-17 18:29:46 8483

原创 JetBrains IDE-Clion配置远程代码调试

Clion配置远程调试服务端配置环境cmakegccgdbClion配置配置Settings上传项目调试项目服务端配置环境Linux x86_64CentOS7配置远程调试需要在服务器上安装时cmake、gcc、gdbcmake在线安装cmake: yum -y install cmake查看cmake安装版本:cmake --version但是,有可能在线安装的cmake 版本太低,需要卸载掉重新手动安装需要的版本卸载cmake :yum -y remove cmake

2020-09-07 10:35:19 793

原创 CentOS7 配置Dns域名解析器

没有配置域名解析器ping baidu.com 解析不出来baidu.com之能ping IP,如下图所示vi /etc/resolv.conf添加:nameserver 你的网关eg:nameserver 192.168.235.200如下图所示即可:ping baidu.com

2020-09-04 11:50:56 605

原创 由中文名图片资源加载失败引起的修改tomcat默认编码

1.找到 /tomcat/conf/server.xml 文件2.添加配置URIEncoding="UTF-8"如下图所示 ,将修改后的文件重新上传至服务器3.重启tomcat------------------以上是正经解决方法往下是瞎唠的过程,不感兴趣可以出去了-------------------------------- 起因是这样的,今天突然发现在客户服务器部署的服务部分图片不见了,于是在浏览器上f12点击出问题的图片位置,可以看到图片的路径,发现图片资源名称是中文,将图片路径拷出来加

2020-08-19 18:52:23 256

原创 Linux服务器上设置全局代理访问外网并验证

Linux服务器上设置全局代理访问外网昨天碰到了内网需要访问外网下载的情况,需要在服务器上设置代理,没别的,就记录一下自己跳过的坑.1.前提是已经搭建好了一台代理服务器2.Linux设置全局代理编辑文件 : vi /etc/skel/.bash_profile添加如下内容:export http_proxy=http://IP:端口eg:export http_proxy=http://172.101.34.100:8080export https_proxy=http://172.101

2020-08-18 18:36:20 7643

原创 设置避免wps中的英文首字母自动大写

设置避免wps中的英文首字母自动大写1.进入WPS单击左上角的文件,会出现下拉选项,单击选项,如下图.2.选择编辑–>勾掉键入时自动进行句首字母大写更正–>确定保存

2020-08-18 17:59:22 1656

原创 Jmeter压测c语言多线程socket

Jmeter压测c语言多线程socket(TCP)1.打开jmeter需要点击jmeter.bat黑窗口打开jmeter,点进黑窗口敲回车键,如下图.2.新建线程组3.新建TCP样本4.新建监听树5.启动测试

2020-08-07 15:52:07 638

原创 linux安装gcc报错:version ‘GLIBC_2.14‘ not found或者Hearder V3 REA/SHA256 Signature,keyID:NOKEY

linux安装gcc报错: /xxx/libc.so.6:version ‘GLIBC_2.14’ not found (required by gcc)原因:我的CentOS版本为6.5,但是下载gcc的rpm包版本是7的,所以安装报错解决办法:找到对应版本的gcc安装即可正确安装gcc文章链接:https://blog.csdn.net/weixin_43648994/article/details/107634171...

2020-07-28 16:01:23 730

原创 CentOS7/6使用rpm离线安装gcc7/6

CentOS7/6使用rpm离线安装gcc7/61.安装gcc之前需要确认CentOS的版本,版本不同安装的gcc也不同,可以使用以下命令进行查看,我的服务器版本是6.5注意:版本一定要对应,不然安装不上,亲测各种出错.[root@localhost bin]# cat /etc/redhat-releaseCentOS release 6.5 (Final)[root@localhost bin]# cat /proc/versionLinux version 2.6.32-431.el6.x

2020-07-28 13:57:21 2479

原创 win10安装CentOS7虚拟机并配置静态IP开启ssh

1.下载CentOS镜像文件链接:http://mirrors.163.com/centos/7.8.2003/isos/x86_64/点击创建新的虚拟机选择典型就行,然后下一步然后按照提示敲回车,可以选择简体中文可以设置root用户的密码

2020-07-27 11:29:54 399

原创 Linux常用命令整理

Linux常用命令整理一.命令行操作及常用命令使用1 shell:shell是用户和Linux操作系统之间的接口。Linux有多种shell Linux的shell作为操纵系统的外壳为用户提供使用操作系统的接口,是一个命令语言解释器 用户在提示符下输入的命令都由shell先解释然后传给Linux核心。1 shell控制太使用方法:Linux是一个真正的多用户操作系统,可以同时接受多个用户登录,也可一个用户进行多次登录二.文件目录常用命令:1.ls 查询文件列表:ls -a(显示文件包括隐藏文

2020-07-24 15:48:50 190

原创 win下载MinGW并安装详细记载

win下载mingW并安装记录1.官网下载安装mingW点击continue后悔进入下载界面然后,然后我就提示下载失败…嘤嘤嘤

2020-07-23 15:36:37 1520 1

原创 问题整理

问题描述页面使用ajax提交数据到后台并写入到mysql数据库中。解题过程查看mysql数据库是否可用,并查看其中有哪些库表,以便后续的建表。(没有Navicat,使用黑窗口写指令查看,需在网上查询mysql指令)新项目的创建:工具是刚下载的idea开启30天试用版,然后进行springBoot项目搭建,简单在网上找了些教程避免踩坑。测试项目是否可用:下载完依赖,搭建完成后尝试编译运行项目(可能在启动类上需要添加注解使其忽略还未配置的mysql),编写测试类启动没问题后使用浏览器访问。然后就是

2020-06-29 11:02:41 131

原创 Mybatis使用foreach参数失效,在不修改任何分页拦截器的情况下的解决办法

Mybatis使用foreach参数失效,在不修改任何分页拦截器的情况下的解决办法起因是这样,存的库表中有数组形式的json,然后需要对json字段进行查询,例如数据库中有三条记录包含这三个json:[1,2,3]; [2,3,4];[3,4] 此时需要查询包含2或4的记录,那么自然是这三条都要查询出来。去网上查了一下mysq支持json的查询,所以sql是这样的select * form ...

2019-12-04 13:55:14 2046 2

原创 使用lambda中的流并根据对象类型中的属性对list进行去重

list根据对象类型中的typeId属性进行去重set集合中的元素不可重复allDevTypes.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(IOTVirDevType::getTypeId))), ...

2019-11-27 11:42:59 833

原创 java代码实现模糊查询用以筛选list中数据

java代码实现模糊查询用以筛选list中数据 List<IOTDeviceStatus> list = returnList.stream().filter(d -> d.getName().contains(iotMindDevice.getDeviceName())).collect(Collectors.toList());...

2019-11-26 19:08:29 3410

原创 java比较时间大小

今天碰到了需要比较时间的大小,用来循环每一天的业务,记录一下。1、用字符串。查了一下可以将时间转化成字符串来比较两个字符串是否一样来判断时间是否相等,但是这样子只能判断俩是啊金不等,但是比不了大小。2、用getTime()。getTime()所返回的是一个long型的毫秒数 ,这个就可以用来比较大小了...

2019-11-25 15:59:20 2842

原创 git基本命令整理

一、git相关git init 初始化git仓库git分支管理git branch (branchName) 创建分支git branch 列出分支git checkout (branchName) 切换分支git checkout (newBranchName) 创建并切换新分支git branch -d (branchName) 删除分支查看历史提交git log...

2019-07-15 17:13:38 119

转载 Java8中Stream简单使用整理

Stream 流流可以让人以一种声明的方式处理数据,流在管道中传输,并且可以在管道的节点上进行处理,筛选、排序、聚合等。元素在管道中经过中间操作处理,最后由最红操作得到前面处理的结果。流是一个来自数据源的元素列表并指出聚合操作。1.生成流stream():为集合创建串行流parallelStream():为集合创建并行流2、foreachstream可以用foreach来迭代流...

2019-07-15 16:20:09 191

转载 Java8Lambda、方法引用整理

一、Lambdalambda允许将一个函数作为一个方法的参数,函数作为参数传递进方法中方法引用通过方法名字来指向一个方法,方法的引用可以使语言更加紧凑简介,减少冗余代码lambda允许将一个函数作为一个方法的参数,函数作为参数传递进方法中(param1, param2, … ) -> { xxx; }1、参数:一个参数可以直接写,多个参数需要加上括号()2、大括号:若主体中只包含一个...

2019-07-15 14:22:53 252

空空如也

空空如也

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

TA关注的人

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