自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CAS乐观锁

众所周知锁有两种:乐观锁与悲观锁。独占锁是一种悲观锁,而 synchronized 就是一种独占锁,synchronized 会导致其它所有未持有锁的线程阻塞,而等待持有锁的线程释放锁。所谓乐观锁就是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。而乐观锁用到的机制就是CAS。**CAS**CAS是项乐观锁技术,当多个线程尝试使用CAS同时更新同一个...

2020-05-05 23:45:31 175

原创 SpringMVC的工作流程与主要注解

文字描述:1.用户发送请求到前端控制器(DispatcherServlet)2.前端控制器请求处理器映射器(HandlerMapping)去查找处理器(Handler)3.找到之后处理器映射器(HandlerMapping)向前端控制器返回执行链(HandlerExecutionChain)4.前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter...

2020-04-28 23:21:15 398

原创 Linux基本命令

系统信息arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作cat /proc/cpuinfo 显示CPU info的信息c...

2020-04-28 23:18:33 169

原创 SQL的链接查询语句

**交叉连接CROSS JOIN**如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积;举例,下列A、B、C 执行结果相同,但是效率不一样:A:SELECT * FROM table1 CROSS JOIN table2B:SELECT * FROM table1,table2C:select * from table1 a inner...

2020-04-28 23:13:57 694

原创 Nginx

**Nginx介绍**Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和 HTTP 缓存。大部分 Web 服务器使用 Nginx,通常作为负载均衡器。Nginx 是免费的开源软件,根据类 BSD 许可证的条款发布。nginx命令:启动nginx在Windows上安装好nginx后,我们需要启动nginx服务,启动nginx服务的命令行操作主要有两种方式,即cd D:\...

2020-04-27 21:32:20 141

转载 redis的缓存过期策略与内存淘汰机制

Redis对已过期的key如何处理?设置了expire的key缓存过期了,但是服务器的内存还是会被占用,这是因为redis所基于的两种删除策略。redis有两种策略:(主动)定时删除定时随机的检查过期的key,如果过期则清理删除。(每秒检查次数在redis.conf中的hz配置)(被动)惰性删除当客户端请求一个已经过期的key的时候,那么redis会检查这个key是否过期,如果过期了,...

2020-04-26 23:07:05 74

转载 redis持久化方案

Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把...

2020-04-26 23:01:11 90

转载 布隆过滤器使用

**什么是布隆过滤器**布隆过滤器可以理解为一个不怎么精确的 set 结构,当你使用它的 contains 方法判断某个对象是否存在时,它可能会误判。但是布隆过滤器也不是特别不精确,只要参数设置的合理,它的精确度可以控制的相对足够精确,只会有小小的误判概率。当布隆过滤器说某个值存在时,这个值可能不存在;当它说不存在时,那就肯定不存在。打个比方,当它说不认识你时,肯定就不认识;当它说见过你时...

2020-04-26 11:01:37 344

转载 redis分布式锁

**Redis命令介绍**使用Redis实现分布式锁,有两个重要函数需要介绍SETNX命令(SET if Not eXists)语法:SETNX key value功能:当且仅当 key 不存在,将 key 的值设为 value ,并返回1;若给定的 key 已经存在,则 SETNX 不做任何动作,并返回0。GETSET命令语法:GETSET key value功能:将给定 ke...

2020-04-26 10:38:51 72

原创 Redis简介

**什么是redis**Redis是一个非常快速的开源非关系、Key-Value数据库,通常称为数据结构服务器;它存储了五种不同类型值的键映射。用作数据库,缓存和消息代理。Redis和其他键值数据库之间的主要区别之一是Redis存储和操作高级数据类型的能力。这些数据类型是大多数开发人员熟悉的基本数据结构(列表,映射,集合和排序集)。Redis的卓越性能,简单性和数据结构的原子操作有助于解决...

2020-04-26 10:24:40 590

原创 HashMap的数据结构,解决哈希冲突,JDK1.7和JDK1.8 HashMap的区别

**HashMap概述**HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。**HashMap的数据结构**在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。Has...

2020-04-25 00:18:19 239

原创 CAP理论与BASE理论

**CAP理论**CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。CAP原则是NOSQL数据库的基石。分布式系统的CAP理论:理论首先把分布式系统中的三个特性进行了如下归纳:一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。...

2020-04-25 00:09:12 332

原创 分布式事务的解决方案

**什么是分布式事务**分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。**分布式事务解决方...

2020-04-24 23:55:09 151

原创 分布式事务和本地事务

**什么是事务**举个生活中的例子:你去小卖铺买东西,“一手交钱,一手交货”就是一个事务的例子,交钱和交货必须全部成功,事务才算成功,任一个活动失败,事务将撤销所有已成功的活动。​ 明白上述例子,再来看事务的定义:​ 事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。**本地事务**​ 在计算机系统中,更多的是通过关系型数据库来控制事务,这是利...

2020-04-23 22:48:07 216

原创 数据库事务

**什么是事务**事务就是指是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。事务是数据库运...

2020-04-23 22:41:26 137 1

原创 数据库锁分类

**锁**锁是网络数据库中的一个非常重要的概念,当多个用户同时对数据库并发操作时,会带来数据不一致的问题,所以,锁主要用于多用户环境下保证数据库完整性和一致性。锁分类从数据库系统角度分为三种:排他锁、共享锁、更新锁。从程序员角度分为两种:一种是悲观锁,一种乐观锁。悲观锁顾名思义,很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人拿这个数据就会bl...

2020-04-23 22:33:27 249

原创 数据库优化:结构优化

**数据库结构优化的目的:**1、减少数据冗余,数据冗余是指相同的数据在多个地方存在,表中的某个列可以在其他某个列中获取到。2、尽量避免数据维护中出现更新、插入和删除异常,插入异常:如果表中的某个实体随着另一个实体而存在,则无法插入更新异常:如果更改表中的某个实体的单独属性时,需要对多行进行更新删除异常:如果删除表中的某一实体则会导致其他实体的消失3、节约数据库存储空间。4、提...

2020-04-22 22:03:34 433

原创 索引原则

什么是索引索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。如何创建索引索引的创建:1.-- 创建索引的语法格式2.-- alter table 表名 add index 索引名[可选](列名...

2020-04-21 22:34:59 747

原创 tomcat类加载器

Java默认的类加载机制是通过双亲委派模型来实现的。而Tomcat实现的方式又和双亲委派模型有所区别。原因在于一个Tomcat容器允许同时运行多个Web程序,每个Web程序依赖的类又必须是相互隔离的。因此,如果Tomcat使用双亲委派模式来加载类的话,将导致Web程序依赖的类变为共享的。双亲委派模式Java是一门面向对象的语言,而对象又必然依托于类。类要运行,必须首先被加载到内存。我们可以简单...

2020-04-21 15:58:49 85

原创 Java类加载器

一、类的加载在介绍类的加载机制之前,先来看看,类的加载机制在整个java程序运行期间处于一个什么环节,下面使用一张图来表示:从上图可以看,java文件通过编译器变成了.class文件,接下来类加载器又将这些.class文件加载到JVM中。其中类装载器的作用其实就是类的加载。二、类加载的过程类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初...

2020-04-20 16:00:22 70

原创 微信小程序登录

1.调用wx.login()接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。1.调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。2.调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会...

2020-04-17 15:49:58 186

原创 Spring框架的IOC和AOP

Spring介绍Spring框架是个轻量级的Java EE框架。所谓轻量级,就是指不依赖于容器就能运行的。像一些Struts、Hibernate也是轻量级的的框架。轻量级框架是相对于重量级框架而言的,重量级框架必须依赖特定的容器,例如EJB框架就必须运行Glassfish、JBoss等支持EJB的容器中,而不能运行在Tomcat中。Spring包含六大模块:DAO、ORM、AOP、J2EE...

2020-04-14 21:27:34 158

原创 垃圾回收(GC)是什么

什么是GC垃圾回收GC(Garbage Collection):JAVA/。NET中的垃圾收集器。Java是由C++发展来的。它摈弃了C++中一些繁琐容易出错的东西。其中有一条就是这个GC。而C#又借鉴了JAVA。在老式的C/C++程序中,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值。由于内存是有限的,所以当程序不再需要使用某个变量的时候,就需要销毁该对象并释放其所占用的内...

2020-04-13 12:50:46 422

原创 jvm的内存结构

JVM简介1.java程序经过一次编译之后,将java代码编译为字节码也就是class文件,然后在不同的操作系统上依靠不同的java虚拟机进行解释,最后再转换为不同平台的机器码,最终得到执行2.Java虚拟机(JVM) 处在核心的位置,是程序与底层操作系统、硬件无关的关键。JVM的下方是移植接口,移植接口由两部分组成:适配器和Java操作系统, 其中依赖于平台的部分称为适配器,JVM 通过移...

2020-04-13 10:24:16 89

原创 rabbitMQ的工作模式

1.RabbitMq1.1介绍RabbitMQ是一个消息代理:它接受并转发消息。你可以把它当成一个邮局:当你想邮寄信件的时候,你会把信件放在投递箱中,并确信邮递员最终会将信件送到收件人的手里。在这个例子中,RabbitMQ就相当与投递箱、邮局和邮递员。AMQP协议中的核心思想就是生产者和消费者隔离,生产者从不直接将消息发送给队列。生产者通常不知道是否一个消息会被发送到队列中,只是将消息发送到...

2020-04-10 22:05:53 103

空空如也

空空如也

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

TA关注的人

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