自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM中的常量池

目录JVM中的常量池一、class常量池1.1 字面量1.2 符号引用二、字符串常量池三、三种创建字符串的方式(jdk1.7及以上版本)四、字符串常量池的位置JVM中的常量池一、class常量池Class常量池可以理解为是Class文件中的资源仓库。Class文件中除了包含类的版本、字段、方法、接口等信息外,还有一项信息就是常量池(constant pool table),用于存放编译器生成的各种字面量(Literal)和符号引用(Symbolic Referen

2021-12-21 21:00:52 604

原创 Rabbitmq入门(一)

rabbitmq官网:Messaging that just works — RabbitMQmq的优势 应用解耦 异步提速 削峰填谷 mq的劣势 降低系统的可用性 系统引入的外部依赖越多,系统稳定性越差,一旦mq宕机,整个系统就会瘫痪 系统的复杂度提高 保证消息的同步消息、避免重复消费、消息丢失等一系列问题 一致性问题 如何保证多个服务写操作一致rabbitmq基于AMQP协议AMQP,即Advanced Message Q.

2021-10-20 16:00:38 333

原创 微服务架构-子模块使用mvn install或者mvn package失败 提示: 找不到符号

一、问题描述在微服务架构中,项目是子父级关系,在子模块中下执行mvn install 或者 mvn package失败,提示:找不到符号例如:查看这一行代码,并没有发现什么问题:二、解决问题开始按照网上的各种方法都试过了,先执行什么mvn clean 清理一下,或者 清除idea项目缓存,再或者重新组织倒入pom依赖等等都不好使。我的问题解决方法:在项目的根目录下执行:mvn clean install,然后再去子模块下执行mvn clean install 或者pac.

2021-03-16 09:33:36 1456

原创 并发编程-读写锁上锁流程

并发编程之读写锁上锁流程目录并发编程之读写锁上锁流程一、写锁上锁流程二、读锁上锁流程一、写锁上锁流程/** * 写锁的上锁流程 */@Slf4j(topic = "liheng")public class RWLock2 { //读写锁 static ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); static Lock r = rwl.readLock(); static

2021-02-08 16:03:36 355

原创 并发编程-读写锁的读读并发理解

并发编程之读写锁的读读并发的理解代码例子@Slf4j(topic = "liheng")public class Lock2 { //读写锁 static ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); static Lock r = rwl.readLock(); static Lock w = rwl.writeLock(); public static void main(St

2021-02-08 15:30:33 221 1

原创 并发编程-ReentrantLock解锁流程

并发编程之ReentrantLock解锁流程目录并发编程之ReentrantLock解锁流程一、解锁流程二、代码执行流程一、解锁流程情景:线程t1持有锁,t2在park。然后t1释放锁,唤醒t2解锁之前AQS(NonfairSync)的状态。重点关注waitStatus的值和当前线程拥有者。 图1解...

2021-02-08 00:07:46 202

原创 并发编程-ReentrantLock非公平锁加锁流程

ReentrantLock之非公平锁加锁流程目录ReentrantLock之非公平锁加锁流程一、非公平锁和AQS的关系二、非公平锁加锁流程2.1 t1第一次加锁2.2 t2第二次加锁2.3 t3来加锁一、非公平锁和AQS的关系二、非公平锁加锁流程2.1 t1第一次加锁final void lock() {//第一次加锁 if条件成立,加锁成功 if (compareAndSetState(0, 1)) setExclusiveOwn

2021-02-07 22:33:04 152

原创 并发编程-AQS

并发编程之AQS框架一、定义AQS是AbstactQueuedSynchronizer的简称,它是一个Java提供的底层同步工具类,用一个int类型的变量表示同步状态,并提供了一系列的CAS操作来管理这个同步状态。AQS的主要作用是为Java中的并发同步组件提供统一的底层支持,例如ReentrantLock,CountdowLatch就是基于AQS实现的,用法是通过继承AQS实现其模版方法,然后将子类作为同步组件的内部类。总结:全称是AbstactQueuedSynchronizer 阻塞

2021-02-07 19:40:23 82

原创 并发编程-Lock

并发编程之Lock目录并发编程之Lock一、Lock的特点二、基本语法三、代码示例3.1 重入3.2 可打断(lock.lockInterruptibly())3.3 超时3.4 多个条件一、Lock的特点可打断,可重入 可以设置超时时间 可以设置为公平锁 支持多个条件变量 支持读写锁二、基本语法reentrantLock.lock();try{ //todo 临界区}finally{ reentrantLock.unlock(

2021-02-06 20:57:53 129

原创 并发编程-保护性暂停模式

并发编程之保护性暂停模式目录并发编程之保护性暂停模式一、定义(Guarded Suspension Design Pattern)二、简单实现三、超时实现四、最终实现一、定义(Guarded Suspension Design Pattern)某个结果需要在多线程之间传递,则可以让这些线程关联到一个对象GuardedObject 但是这个对象需要不断从一个线程到另外一个线程,那么可以使用消息队列 join和future采用的就是这种模式二、简单实现@Slf4j

2021-02-06 19:27:47 107

原创 并发编程-wait和sleep

并发编程之wait和sleep的区别一、区别相同点:线程的状态相同,都是阻塞状态不同点:wait是Object的状态,任何对象都可以调用;sleep时Thread的静态方法。

2021-02-06 17:15:40 418

原创 并发编程-synchronized的工作模式monitor

并发编程之synchronized的工作模式monitor一、ObjectMonitor原理图二、原理解释持有锁的线程发现条件不足,调用wait,即进入Waitset变为waiting状态 blocked和waiting的线程都处于阻塞状态,不占用cpu时间片 blocked的线程会在持有锁的线程释放锁时被唤醒 waiting线程会在持有锁的线程调用 notify或者notifyAll时唤醒,但唤醒后不意味着立刻获得锁,仍然需要进入EntryList重新竞争...

2021-02-06 11:26:18 190

原创 并发编程-锁膨胀

并发编程之锁膨胀前言:记录一下并发编程的学习,做个笔记加深印象。并发编程学习的路神的视频。锁膨胀是针对很对场景而言的,下面主要记录一些常见场景,然后最后总结一下。一、第一次加锁第一次加锁,走匿名偏向锁的流程,产生一个偏向自己的mark,然后调用cas替换头对象,成功则加锁,失败则撤销偏向并且升级轻量级锁。二、第二次偏向加锁2.1 t1把锁释放,t1又来加锁/** t1再次加锁*/synchronized(header){}synchronized(heade

2021-01-31 16:55:02 132

原创 并发编程-锁膨胀(预备知识)

并发编程之锁膨胀预备知识前言:记录一下并发编程的学习,做个笔记加深印象。并发编程学习的路神的视频。此篇内容需要对象头的知识,可查看文章https://blog.csdn.net/yibailiheng/article/details/112857062目录并发编程之锁膨胀预备知识一、无锁二、轻量锁三、Header header = new Header();四、线程加锁synchronized五、线程释放锁(四中的t1释放锁)一、无锁无锁分为两种情况。无锁可.

2021-01-30 19:04:27 170 2

原创 并发编程-公平锁与非公平锁

并发编程之公平锁与非公平锁前言:准备记录一下并发编程的学习,做个笔记加深印象。并发编程学习的路神的视频目录并发编程之公平锁与非公平锁一、问题二、代码示例2.1synchronized实现的锁2.2 lock实现的锁三、公平锁和非公平锁的加锁流程和区别一、问题是否被阻塞的线程被唤醒的顺序不为乱序就是公平锁,反之则为非公平锁?二、代码示例2.1synchronized实现的锁public class TestSysn { private stat..

2021-01-30 16:35:11 156 1

原创 rabbitmq创建队列绑定交换机失败

目录一、问题描述:二、错误代码三、绑定失败和成功截图四、解决问题一、问题描述:在项目中创建消息队列和交换机绑定的时候,发现在同一个服务中,创建多个队列分别绑定不同的交换机,只有最后一个可以绑定成功。二、错误代码ImportOrganizationRabbitConfig.java@Configurationpublic class ImportOrganizationRabbitConfig { @Bean public Queue ImportOrg.

2021-01-27 09:12:20 4247 2

原创 并发编程之-synchronize原理

java 对象头分析前言:准备记录一下并发编程的学习,做个笔记加深印象。并发编程学习的路神的视频。一、为什么学习java的对象头?因为要研究java的内置锁synchronize,就得去研究java的头对象,所谓锁就是给对象一个标识,而这个标识便是存储在对象头中。二、对象头的分析2.1通过jol分析java的对象头布局添加maven依赖<dependency> <groupId>org.openjdk.jol</groupId>

2021-01-20 18:48:27 290 6

原创 mysql数据库使用mysqldump进行全量备份和增量备份脚本

mysqldump是mysql自带的逻辑备份工具,记录一下使用mysqldump备份的脚本目录mysqldump是mysql自带的逻辑备份工具,记录一下使用mysqldump备份的脚本一、数据库全量备份二、数据库增量备份2.1查看mysql是否打开了二进制日志文件2.2 增量备份脚本一、数据库全量备份#!/bin/bash#数据库全备份db_user=''db_password=''bak_dir=/data/backup/mysqltime=`date +%F`

2020-12-01 09:48:32 2503

原创 macos big sur 升级导致nacos启动失败

一、问题描述 在我将macos系统升级到big sur后我发现nacos服务启动失败报错日志:二、问题解决可以看到上面问题应该是java的jdk环境路径导致的1.查看当前java_home,并不是我自己安装jdk的java_home路径。2.查看 ~/.bash_profile配置文件:3.执行: source ~/.bash_profile使配置文件生效4.查看java_home路径:5.然后启动nacos,发现启动成功:...

2020-11-16 14:42:09 1711 25

原创 docker上传镜像到服务器报错, no space left on device

问题描述:在本地向服务器上传镜像的过程中报错:[INFO] Step 7/9 : ADD ./target/blade-auth.jar ./app.jar[INFO] [ERROR] Error processing tar file(exit status 1): write /blade/auth/app.jar: no space left on device[WARNING] An attempt failed, will retry 1 more timesorg.apache

2020-09-24 17:50:01 1798

原创 maven 下载依赖不走私服

问题环境:macos问题描述:我在项目的根目录下执行mvn install package 提示我发现相关依赖失败,具体的失败提示显示如下:com.oracle:ojdbc7:jar:12.2.0.1 这个依赖是在我私服中的,可问题是我的pom文件中已经配置了私服地址,配置如下:问题解决:因为我系统中有两个maven,一个是自带的,一个是我后面自己安装的。也就是有两个配置文件,我在idea中配置的是自己安装的maven,如下:系统变量中显示的也是自己安装的maven:折腾了好

2020-08-13 13:39:22 3854

原创 小程序的支付和退款(证书相对路径和绝对路径)

前记这里主要是记录一下最近小程序开发支付和退款功能,主要还是实践为主。本文没有涉及mch-id、mch-key和商户证书(用来退款)的申请和下载。相信你做小程序开发一定知道他们什么和怎么申请。其实遇到最大的坑是微信退款的证书在相对路径的还是绝对路径下的问题,先描述一下这个坑,这个坑在下面解决。我们使用的是阿里的SAE部署,所以证书文件我是采用的相对路径存储1.绝对路径:如果你不是容器化部署(不是使用docker镜像或者阿里的SAE),yml文件中key-path你就直接在服务器或者本地的绝对路.

2020-06-07 18:22:50 3841 2

原创 nodejs 同步循环(使用async的eachSeries和waterfall,解决异步循环问题)

记录nodejs实际使用问题。需求描述:使用nodejs开发后台,对同一个表的同一个字段会有多次循环连续的查询和修改操作。//data 是个数组集合data.foreach(function (item) { //1.查询a表的content字段 //2.修改a表的content字段})开发中出现的问题:最开始只是使用了waterfall来控制查询和更新操作保...

2020-01-03 17:54:29 3949 2

原创 java脚本 打jar包 服务器上命令行运行

记录一下使用java写的处理生产数据库数据的过程。需求描述:由于公司有几个表的数据有一个字段存在问题,具体说就是本来应该存储的是mathml格式的数据,但是现有的数据并不是这个格式。所以,需要将这个字段的数据进行改造,重新保存,为什么要搞这么复杂呢,因为第一、生产库的数据库不能在外网直接连接,不能直接操作。第二、涉及到数学公式格式的转换,不能在存储过程中完成。解决方案(当然这个是我自己...

2019-12-30 11:29:49 547

原创 @SpringBootTest 单元测试遇到的坑

spring boot测试类包名与main下application.class启动类的包名默认要一致今天在做数据库连接单元测试测时候发现,jdbcTemplate自动注入不进去提示Could not autowire. No beans of 'JdbcTemplate' type found运行测试单元报错提示如下:后来折腾了半天,发现是因为单元测试的路径和main下a...

2019-12-26 15:02:01 7677

原创 北航 2017 991 编程题第八题 从字符串中提取连续整数

记录一下自己考研路上做的c语言编程题目。北航991 2017编程题第八题题目意思是将字符串中的数字提取出来,并按照从大到小的顺序输出。比如:"abc123de45f*#6?789&" 输出为 789,123,45,6#include <stdio.h>#define M 80/** 把字符串转为整数 */int stoi(char *p,int n)...

2019-12-18 12:23:26 395

原创 vmware虚拟机中centos7网络配置

vmware虚拟机中centos7网络配置最近需要在虚拟集中安装centos7系统,每次比较烦的就是网络问题,连接不上。记录一下,怎么配置网络连接。这里使用的是动态连接(基础linux操作就不描述了)。1.首先需要一个安装好的centos7的虚拟机系统。在虚拟机->设置 里面将网络适配器改为NAT模式。2.打开系统使用root权限进入到...

2019-08-14 10:41:46 215

原创 基于独立服务的springcloud的Eureka+feign+hystrix的简单demo

Eureka+feign+hystrix简单demo搭建一、业务需求最近公司给的需求是开发一个基础数据的服务,提供给其他的服务去调用,然后我就想把这个基础数据做成微服务架构的,之前对微服务也不是很了解。网上的demo基本都是子父级关系的例子。因为我公司其他的项目都已经是完成的项目了,所以也不合适改成子父级的形式。刚刚开始做的时候感觉还是很蒙B的,但做完之后发现原来如此的简单。虽然很简单...

2019-07-23 10:30:52 303

原创 springboot2.x引入feign踩的坑

springboot2.x引入feign一、需求最近公司项目需求,需要调用第三方服务的接口,所以选用了feign来实现(这里只说springboot2.x的pom引用,没有怎么使用,网上一大顿)。二、什么是feignfeign是声明式的web service客户端,它让微服务之间的调用变得更简单了,类似contr...

2019-07-22 20:25:13 8338

原创 Springboot web入门搭建 整合mybatis+junit4+swagger+thymeleaf+druid+redis(四)

springboot集成druid+redis一、为什么使用Druid1. 替代C3P0、DBCP数据库连接池(因为它的性能更好)2. 自带监控页面,实时监控应用的连接池情况二、Springboot集成druid1. 在pom.xml中添加相关依赖<dependency> <...

2019-06-02 14:54:02 168

原创 Springboot web入门搭建 整合mybatis+junit4+swagger+thymeleaf+druid+redis(三)

Springboot集成thymeleaf+swagger一、.模板引擎(thymeleaf)SpringBoot 推荐使用模板引擎来渲染html,如果你不是历史遗留项目,一定不要使用JSP,常用的模板引擎很多,有freemark,thymeleaf等,其实都大同小异,其中springboot 强烈推荐的是用thymeleaf。二、pom.x...

2019-05-30 19:33:31 329

原创 Springboot web入门搭建 整合mybatis+junit4+swagger+thymeleaf+druid+redis(二)

springboot集成mybatis+junit41.先在数据库中创建user表,用于测试mybatis是否搭建成功CREATE TABLE `user` ( `id` int NOT NULL AUTO_INCREMENT , `passwd` varchar(255) NULL , `username` var...

2019-05-30 18:51:04 155

原创 Springboot web入门搭建 整合mybatis+junit4+swagger+thymeleaf+druid+redis(一)

Springboot简单web工程搭建一、springboot简介1.1SpringBoot介绍Spring Boot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run"。 我们为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用需要很少的Sp...

2019-05-30 17:31:30 256

原创 java 基于springboot邮箱找回密码功能

一、主要内容基于springboot实现密码找回功能。二、邮箱找回密码的思想。1.输入注册邮箱,点击获取验证码。会将验证码发送到邮箱。2.用户进入邮箱,查看验证码。3.用户输入验证码,输入新密码,点击修改密码,完成修改。三、前台页面四、注意事项如果是163或者qq邮箱需要打开授权,以163为例:如果是阿里的企业邮箱,则不用打开五...

2019-04-09 19:12:28 7269 8

原创 OAuth2.0协议-授权码模式介绍及案例应用

一、关于OAuth2.01.什么是OAuth2.0OAuth2.0(开放授权)是一个关于授权的开放的网络协议。2.OAuth2.0的作用是什么?让客户端安全可控地获取用户的授权,与服务提供商之间进行交互。可以免去用户同步的麻烦,同时也增加了用户信息的安全。3.设计理念OAuth在第三方应用与服务提供商之间设置了一个授权层。第三方应用不能直接登录服务提供商,只能登录授权层,以...

2019-03-26 18:50:09 2330 1

原创 Spring Data Mongondb在使用Aggregation时碰到的问题

一、在使用Spring Data Mongondb进行Aggregation操作的时候会碰到根据某个集合的ObjectId分组的情况。exam_result的集合结构:例如以下的sql需要根据_id分组:db.exam_result.aggregate([{$unwind:{ path: "$students" }},{$unwind:{ path: "$students...

2018-07-19 17:08:41 1711

转载 oracle job定时执行存储过程

转载地址:http://blog.csdn.net/funnyfu0101/article/details/52999017Oracle job在oracle 重新启动后,还会执行。一:简单测试job的创建过程案例: 1,先创建一张JOB_TEST表,字段为a 日期格式SQL> create table JOB_TEST(a date);Table crea

2017-07-18 15:47:14 514

转载 Hadoop-YARN(资源管理系统)

转:http://www.cnblogs.com/sy270321/p/4398703.htmlYARN (Yet Another Resource Negotiator另一种资源协调者)Apache Hadoop Yarn是 Hadoop MRv2计算机框架中构建的一个独立的、通用的资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据

2017-04-25 18:43:43 1450

转载 hadoop-MapReduce

Hadoop简介Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce,分布式文件系统HDFS,以及分布式数据库Hbase,同时Hadoop的相关项目也很丰富,包括ZooKeeper,Pig,Chukwa,Hive,Hbase,Mahout,flume等.这里详细分解这里面的概念让大家通过这篇文章了解到底是什么hadoop:

2017-04-19 18:01:13 402

转载 hadoop-hdfs学习1

简介HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS(Google File System)Google 文件系统(中文,英文)。HDFS有很多特点:    ① 保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。    ② 运行在廉价的机器上。

2017-04-19 17:07:06 239

空空如也

空空如也

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

TA关注的人

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