自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis事务分布式锁

redis相关学习redis事务Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。Redis事务的主要作用就是串联多个命令防止别的命令插队。Multi、Exec、discardMulti:开启事务相当于创建一个队列,将需要执行的redis操作放入队列中Exec:执行队列中的redis操作discard:直接关闭创建的队列不需要执行redis事务对异常的处理multi:开启组队,向队列中放redis

2022-04-26 09:17:24 1273

原创 rabbitmq基础

RabbitMq为什么中间件能够削封串行执行:是所有操作都一次执行最终完成时间所有流程时间总和并行执行:将各部操作由多线程并行操作,各步骤完成时间最长为单步最长时间中间件进行削峰主要是,消息中间件能够将大量并发的消息存到自己的消息队列中,然后快速稳定的让消费方进行消费处理消息中心协议(amqp)各种中间件必须遵守的一种规范TCP/UDP1.长链接2.分布式事务支持3.消息持久化4.高性能和高可靠消息中心的消息分发策略1.发布订阅:队列中有100条消息,没有个订阅的消费者都能够收到

2021-06-26 16:08:38 127

原创 Maven项目中的dependencyManagement和dependencies的区别

Maven项目中的dependencyManagement和dependencies的区别1.dependencyManagement见名知意依赖的管理1.dependencyManagement出现在父pom中,规定了其子模块需要用的依赖,当子模块导入这些依赖是不需要定义版本号 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

2021-05-22 15:08:51 189

原创 java线程基础

线程1.程序、进程、线程程序:简而言之就是我们的代码进程:是一个程序运行起来动态的过程,会占用系统资源(内存,cpu)线程:进程是一个动态的过程,进程可以产生线程2.并发和并行并发:同一时刻,多任务交替执行,单核cpu在多任务就是并发并行:同一时刻,多任务同时执行。多核cpu实现并行。并行也会出现并发情况3.ThreadThread类继承Runnable接口,实现Runnable中的run方法,run方法实际就是我们的业务逻辑代码3.1 Thread中run方法 /**

2021-05-09 15:47:12 207 4

原创 Linux常用命令

Chmod修改权限命令: chmod (change mode)功能: 改变文件的读写和执行权限。有符号法和八进制数字法。选项:(1)符号法:命令格式:chmod {u|g|o|a}{+|-|=}{r|w|x} filenameu (user) 表示用户本人。g (group) 表示同组用户。o (oher) 表示其他用户。a (all) 表示所有用户。用于给予指定用户的许可权限。用于取消指定用户的许可权限。= 将所许可的权限赋给文件。r (read) 读许可,表示可以拷贝该

2020-08-22 10:15:36 554

原创 SpringBoot之常用注解

SpringBootApplication@SpringBootConfigurationspring的配置类,继承了configuration他能够将类中带有@Bean注解的实例添加到spring容器中,默认实例名就是方法名@EnableAutoConfiguration这个是用来配置springmvc,自动配置的注解,这个注解会根据我们添加的组件jar来完成一些默认配置,我们做微服时会添加spring-boot-starter-web这个组件jar的pom依赖,这样配置会默认配置sprin

2020-08-22 09:46:40 116

原创 Oauth2.0

第一步:引导用户到授权服务器那需要传递哪些参数呢?response_type:表示响应类型,必选项,此处的值固定为"code";client_id:表示客户端的ID,用来标志授权请求的来源,必选项;redirect_uri:成功授权后的回调地址;scope:表示申请的权限范围,可选项;state:表示客户端的当前状态,可以指定任意值,授权服务器会原封不动地返回这个值。https://graph.qq.com/oauth2.0/authorize?client_id=100410602 &

2020-08-20 09:30:51 117

原创 spring-cloud五大基本组件

Eureka注册中心1.eureka注册中心需要对外暴露,其他服务需要注册到注册中心2.注册中心会将服务的地址列表发送给订阅服务的消费者3.各种服务需要定期向eureka发送心跳,刷新自己的状态4.服务下线则注册中心就会剔除掉服务5.如果某个服务无法正常工作,但并没有向服务器提出下线,则会创建一个定时任务,每隔60s发送一次确认,如果90s没有响应则剔除.6.如果15分钟之内某个服务的续约成功率不足85%,则会剔除Zuul网关作用:用来控流,控制,路由1.身份验证与安全,识别访问某个资源的

2020-08-19 17:52:03 255

原创 HashMap

HashMap1.HashMap中存放数据的数据结构hashmap中有三种数据结构:数组,链表,和红黑树我们想hashmap中put添加元素时,会根据hash值和hashmap的容量计算出一个索引下标,往这个下标进行元素的存放,但是由于hash值是随机给的会产生hasp冲突问题,造成hash碰撞,索引就会在某个索引下面形成链表,用于存放元素,但是链表的查询效率特别低,时间复杂度可能是O(n),所以当链表长度达到8时引入了类似于平衡二叉树的红黑树用来存放元素时间复杂度O(log10),通过一系列的左旋

2020-08-16 15:59:39 89

原创 数据库索引

什么是数据库索引数据库库索引能帮主我们快速检索得到我们需要的数据,索引是一种分散的数据结构,一般都是硬盘及索引.查询熟读的快慢可以说完全取决于我们的索引数据类型二叉树查找最先放进去的作为根节点,之后放进来的比根节点大的放到根节点右边,小的放到根节点的左边,这样一定程度上能够加快查询速度.但是如果都是自增的话我们查找就和全表查找没有什么区别.平衡二叉树平衡二叉树相对于二叉树,增加了树高度的约束,通过一些列的逻辑约束保证不会出现全表查询的情况(左旋转,右旋转).二叉树的缺点:树的高度决定了查询的

2020-08-13 18:09:19 151

原创 volatile关键字的使用及底层原理

volatile关键字的使用及底层原理1.没有使用volatile关键字,各个线程会将主内存中的变量放到自己的工作内存,不能实现工作内存变量的可见性问题,各线程不能知道其他线程对变量进行了什么操作.2.可以通过lock锁的情况对线程进行加锁,当工作内存中的变量发生修改并且write到主内存后才会解锁,然后其他线程才能在主内存中获取到变量.但是这样会导致并行的变成了串行,严重影响工作效率3.加上volatile修饰以后,就会开启缓存一致性协议,和cpu的嗅探机制,缓存一致性就是当线程内的工作内存对变量

2020-08-13 12:00:01 174

原创 Nacos使用

1.Nacos使用Nacos作为服务注册中心和配置中心<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--这是注册服务--&g

2020-08-07 15:19:05 343

原创 如何打包maven项目成jar包

1.我们需要在想要被打包的项目pom文件中添加 <build> <finalName>wxgzh</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo

2020-08-01 11:07:17 435

原创 spring 动态代理,静态代理,AOP,IOC,事务管理

Spring框架1.基本使用1.1添加依赖 <!-- Spring常用依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.6.RELEASE</version> <

2020-05-08 21:15:18 208

原创 MyBatis中的常见的标签(resultMap)sql where if标签 set标签 trim标签 foreach标签

MyBatis中的标签1.resultMap完成实体类和数据表的映射<resultMap id="唯一表示" type="声明映射的对象"><id property="对象中的主键属性" cloum="表中的主键"><result property="对象中的主键属性" cloum="表中的对应字段"></resultMap>2.sq...

2020-04-30 22:43:00 545

原创 MyBatis中的ResuleMap映射

MyBatis中的ResuleMap映射1.介绍由于实体类中的属性命名放大是小驼峰规则与数据表中字段的命名规则不同所以会出现实体类属性名与表中的字段名不相同的情况,则查询出的数据该属性会为null2.在动态代理中使用resuleMap标签完后映射<!--id:唯一表示type:给哪个实体类映射关系--><resultMap id="userResultMap" ...

2020-04-30 21:21:18 400

原创 MyBatis主键回填的方式

MyBatis主键回填 <!-- useGeneratedKeys:开启主键回填 keyProperty:主键回填到对象中的那个属性 --><insert id="addUser" useGeneratedKeys="true" keyProperty="id"> insert into t_user (name,password)...

2020-04-30 20:51:41 230

原创 MyBatis动态表技术

MyBatis动态表技术#{}可以获取到方法的参数#{}被解析成占位符 <select id="getUserById" resultType="user"> select #{cloums} from t_User where id = #{id} </select>${}可以获取到方法的参数${}解析后会被直接拼接在sql语...

2020-04-30 20:12:43 140

原创 MyBatis方法传入参数的获取的方式

MyBatis方法传入参数的获取1.通过索引获取1.#{arg0},#{arg1}的形式,方法参数的传入存放在一个数组中2.#{param1},#{param2}.....依次获得方法中的参数//通过#{arg0}的形式或的方法传入参数的第一个参数 public User login(String name,String password); //通过#{param1}的...

2020-04-30 19:27:48 1018

原创 MyBatis中的Log4j

log4j是一个日志框架,替换System.out.println();log4j可以把日志输出到文件,而且每天一个日志文件。。。。。MyBatis底层执行的流程设置一个log4.propertiesj的配置文件# Global logging configurationlog4j.rootLogger=DEBUG, stdout# MyBatis logging configura...

2020-04-29 22:23:10 211

原创 MyBatis中为实体类起别名

1.为某一个实体类起别名通过typeAliases标签 <!--给实体类设置别名--> <typeAliases> <typeAlias type="com.lqq.entity.User" alias="user"/> //这是给具体的某一个实体类起别名 </typeAliases>在实现类的xml中,引...

2020-04-29 22:02:56 1236

原创 MyBatis使用jdbc.properties

标题MyBatis使用jdbc.properties1.需要在resources下创建一个jdbc.properties的文件jdbc.url=jdbc:mysql://localhost:3306/2001jdbc.username=rootjdbc.password=123456jdbc.driverClass=com.mysql.jdbc.Driver2.在mybatis-co...

2020-04-29 21:57:38 1197

原创 在Maven下搭建MyBatis环境步骤

配置MyBatis环境的步骤1.引入MyBatis依赖(jar包)<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version>...

2020-04-28 20:19:04 165

原创 JavaScript基本语法,函数,流程控制

1.JS概述1.1概述JavaScript1995年~~是基于对象和事件驱动的脚本语言,应用在客户端基于对象:提供了很多对象,可以直接使用事件驱动:js实现动态效果作用:提高用户体验,提供交互效果1.2特点交互性:实现信息地动态交互安全性:不可以直接访问磁盘上的文件跨平台性:只要是可以解析js的浏览器都可以使用1.3和java的关系JavaScript和Java没有任...

2020-04-08 22:38:56 183

原创 哈希表的存储机制,树形结构存储

1.哈希表中只能存放hashcode值唯一的数据,但他是桶状结构,只要hashcode值一样但是里面的呢具体内容不一样,就可以存入hash表,我们可以通过重写hashcode来改变判断标准具体流程是1.判断两个对象呢的hashcode值是否相同,假设id为hashcode的值2.保存在统一单元格,通过equals比较两个对象是否一致,来决定是否能够储存3.如果equals方法为true则无...

2020-04-06 11:20:04 508

原创 Map双边队列复习

1.什么是双边队列双边队列:一个键,对应一个值Map分为HashMap<K,V>,TreeMap<K,V>Map<K, V>双边队列方法增:put(K k, V v);存入一个键值对类型,K和V都要符合泛型约束putAll(Map<? extends K, ? extends V> map);存入另一个Map双边队列,并且要求添加的M...

2020-04-06 11:00:16 177

原创 Idea和eclipse的Tomcat服务器添加以及idea如何创建web项目

启动Tomcat服务器和验证启动Tomcat服务器是在安装路径下bin目录中找到 startup.bat 批处理文件,双击打开。在浏览器中输入 http://localhost:8080/IDEA配置Tomcat服务器新建项目选择Tomcat安装路径3.7 Eclipse配置Tomcat服务器过程菜单栏 Windows -->选择Tomcat版本选择Tomc...

2020-03-28 21:36:15 183

原创 JDBC链接(mysql)

JDBC介绍Java Database ConnectivityJava规定的数据库连接接口,SUN公司提供的,为了简化程序员操作数据库的过程。SUN公司要求数据库提供商,按照JDBC API接口规范,完成对应Java程序的数据连接操作,规范Jar包,并且提供对应的操作方法。JDBC接口中核心的内容 java.sql.* javax.sql.*JDBC连接数据库所需的必要条件...

2020-03-23 18:19:03 202

原创 MySQL语句

MySQL基本操作连接数据库mysql -hlocalhost -uroot -p123456#-hlocalhost -h host端口,当前数据库所处的服务器ip地址,域名或者主机名#localhost 表示本地,如果是本地连接可以省略#-uroot -u user用户 root用户表示用户#-p -password 密码推荐方式:mysql -uroot -pEnter p...

2020-03-19 22:05:30 88

原创 java中的NIO Non-Block IO(非阻塞IO)

NIO非阻塞IO,运行当前程序在处理IO事务时,不会影响其他程序的运行,可以在不使用多线程的情况下,满足IO的操作要求三大核心部分:通道Channel文件操作,网络数据传递操作使用的通道缓冲Buffer缓冲使用可以提供操作效率,减少不必要的读写次数选择器Selector真·核心 老大 boss常常使用Buffer和Channel完成文件的操作java.nio.Buff...

2020-03-13 21:24:07 438

原创 java中的单列模式

1.单例模式的要求当前类有且只有一个对象,一旦当前类存在一个对象之后,无法在重新创建当前类的对象。就算是你要创建,代码返回的对象依然是上一次创建的对象。懒汉模式,饿汉模式单例模式推导【懒汉】package com.qfedu.a_single;import java.util.concurrent.locks.Lock;import java.util.concurrent.lo...

2020-03-13 21:17:55 108

原创 java中Stream流

Stream流的引入Stream流完全不是i/o流,按照流水线处理方式来考虑代码中的思想。JDK1.8之后,我们拥有了Lambda表达式,让代码的中心偏向解决实际问题Stream流中使用了大量的Lanbda表达式,优化了代码Stream流的一些特征:1.带有很多Sreeam流操作的方法,filter,limit,map,sorted,skip…这些方法大多是函数式接口,由lanbda...

2020-03-12 22:37:44 110

原创 常用的函数式接口FunctionInterface

常见的四类函数式接口Supplier 生产者, 返回一个指定类型的数据 有且只有一个方法 T get(); 不需要参数,返回指定T类型数据package com.qfedu.c_supplier;import java.util.function.Supplier;/** * 利用函数式接口Supplier其中get方法,找出数组中最大值下标位置 * * @author ...

2020-03-11 21:27:25 527

原创 Java函数式接口

函数是接口1.首先函数式接口是一个接口2.接口内只有一个方法,该方法还是缺省属性的public static常用的函数式接口ComparatorRunnableLambda表达式对比匿名内部类使用简化了代码结构.2. 节约了内存资源3.让程序员更加关注,我要做什么,而不是为了做 什么需要完成什么** @FunctionalInterface **函数式接口的格式检查,类试...

2020-03-11 13:00:59 158

原创 JSON

JSON格式概述JSONJavaScriptJavaScript Object Notation(JavaScript Object Notation,JavaScript对象表示法,读作/ˈdʒeɪsən/)是一种由道格拉斯·克罗克福特构想和设计、轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。尽管JSON是JavaScript的一...

2020-03-09 22:48:50 65

原创 IDEA导第三方jar包

1.右键项目新建文件夹2.将需要导入的包复制粘贴到lib文件夹中3.选择左上角File4.选着到lib目录就可以ok

2020-03-09 17:25:15 95

原创 XML解析和保存

XML解析1.解析思路DOM解析Document Object Model 文件对象解析把整个xml文件看作一个Document对象每一个节点看作一个Element,节点中有Attribute,或者当前节点中保存在Text文本内容DOM是将整个xml文件读取都计算机内存中,可以进行CRUD操作缺点:占用了大量的内存空间适用环境:服务器对于xml文件的解析过程SAX解析逐行读取,给...

2020-03-07 18:04:32 480

原创 Java中的反射

反射说起来反射,我们需要明确Java文件和.class文件的关系笼统的说:java文件通过编译生成.class文件这就是他们之间的关系细致的说:java文件中含代码的所有内容:成员变量,构造方法,成员方法…编译成对应的.class文件,我们将编译好的.class文件放进内存的代码区,.class字节码文件所占的内存空间就可以看作一个Class类对象:构造方法Constructor,成员方法...

2020-03-05 20:21:44 124

原创 IO流,网络编程

IO流文件在计算机中的输入输出是以内存为参考的,从硬盘中获取文件到内存则为输入我们需要输入流输入流分为字节输入流,字符输入流,字节输入缓冲流,字符输入缓冲流这四种输入方式:FileInputStreamFileReaderBufferedInputStream上面上种方法都是通过read();来完成数据的输入,我们可以通过创建byte数组的形式提高输入效率,BufferedInput...

2020-03-04 21:58:00 163

原创 Lambda表达式,线程池的概念

线程池我们为什么要使用线程池,因为通过Runnable接口的实现类创建的线程或者继承Thread的类都只能运行一次run方法,就会被销毁,并且我们不论是继承Thread类还是实现Runnable接口都需要重写run方法我们可以用Runnable来提供执行目标,借助于Thread执行线程线程池:(就是一个实现容纳线程个数的池子)程序可以聪线程池中获取线程来完成目标代码 同时还可以将线程归...

2020-03-03 21:08:41 125

空空如也

空空如也

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

TA关注的人

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