自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 问答 (3)
  • 收藏
  • 关注

原创 Java并发基础之对于CAS和AQS原理的一点理解

CAS(Compare And Swap)CAS可以简单的理解为比较并替换,利用CPU的CAS指令,同时借助JNI(Java Native Interface为JAVA本地调用)来完成Java的非阻塞算法,实现原子操作。CAS机制中,使用了3个参数,当前状态下内存中的数值:a;内存中原值:b(该值不是当前状态下内存中的值,而实在操作开始时,从内存中读取的值);要修改的新值:c。在更新一个变量的...

2019-03-24 21:45:14 1099

原创 分布式事务及相应解决方案的一点理解

事务首先,先理解一下什么是事务:提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败,都将导致整个事务的回滚。简称:All or Nothing数据库事务数据库事务四大特性ACID;A 原子性(Atomicity) All or Nothing。C一致性(Consistency...

2019-03-15 02:38:15 245

原创 Redis深入理解之主从复制

主从复制,在多机环境下,保持从服务器的状态(数据)与主服务器的状态(数据),保持一直。Redis的复制功能分为同步(sync)和命令传播(command propagate)两个操作;同步:用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。命令传播:主服务器将自己执行的写命令,发送给从服务器,使得二者的数据库状态保持一致状态旧版复制功能的实现当客户端向从服务器发送SLAV...

2018-12-15 19:59:59 221

原创 Redis持久化之RDB与AOF

Redis是一个内存数据库,他将自己的数据库状态储存在内存中,所以,如果不想办法将内存中的数据库状态保存到磁盘里面,一旦redis服务器进程退出,服务器中的数据库状态就会消失,为了解决这样的问题,Redis提供了持久化功能(RDB持久化、AOF持久化),将数据库状态保存保存在磁盘中,避免了数据的意外丢失。RDB持久化RDB持久化既可以手动执行,也可以根据服务器配置定期执行,将数据库状态保存到一...

2018-10-05 16:51:12 207

原创 Redis深入理解之数据结构(链表与哈希)

Redis作为比较热门的中间件,一个主要特点就是支持数据类型的更多。Redis有五种基本数据类型,字符串、列表对象、哈希对象、集合对象、有序集合对象。上一篇对于动态字符串(SDS)做了详细的介绍,本篇对于其余四种类型做一个详细的介绍。链表链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活的调整链表的长度。链表和链表节点的实现链表的节点的源码如下:...

2018-10-02 00:25:19 663

原创 Redis深入理解之简单动态字符串(SDS)

Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是提高网站性能的重要手段。Redis没有使用C语言传统的字符串表示,而实自己构建了一种名为SDS(Simple Dynamic String)的简单动态字符串的的抽象类型,并将SDS用作redis的默认字符串表示。下面就来了解一下SDS的结构与特点SDS的结构SDS的源码如下:struct...

2018-07-29 21:02:10 898

原创 关于HTTPS的一点理解

https原理介绍http的缺点通信使用明文(不加密),内容可能会被窃听。不验证通信方的身份,因此有可能遭遇伪装。无法证明报文的完整性,所以有可能已经遭到篡改。https的优劣分析什么是httpsHTTPS = http + 认证 + 加密 + 完整性保护https是与SSL(安全套接层)组合使用的http协议(Http Secure),使用SSL之...

2018-05-27 00:37:57 441

原创 关于JVM内存区域、内存溢出异常与垃圾回收策略的一点理解

JVM内存区域程序计数器(Program Counter Register)程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。每个线程都需要一个独立的程序计数器,各条线程之间计数器互不影响,独立存储,即:线程私有。虚拟机栈(Virtual Machine Stacks)java虚拟机栈也是线程私有的,他的生命周期与线程相同。虚拟机栈描述的是java方法...

2018-03-13 22:11:57 439

原创 从底层实现重新理解HashMap

HashMap是平时经常使用的一种集合,是一种键值对(K-V)形式的存储结构,由此可以推测出一些HashMap的属性: 1.key和value都可以为空值。 2.value随意重复,key重复就会被覆盖。 3.放置其中的键值对无序。 查看HashMap的源码就会发现这样一个静态内部类: static class Entry<K,V> implements Map.En

2017-07-19 22:48:58 433

原创 从底层实现和性能优劣势两方面再理解ArrayList

ArrayList是开发人员经常使用的一个集合类,从名称上看,ArrayList是一个以数组的形式实现的集合, private static final Object[] EMPTY_ELEMENTDATA = {}; public ArrayList() { super(); this.elementData = EMPTY_ELEMENTDATA; }

2017-06-17 21:54:38 387

原创 计算机体系结构原理——数据操控(CPU工作原理)

CPU:计算机中控制数据操控的电路,称为CPU。Central Processing Unit。中央处理器,简称为处理器。电子电路元器件方面的硬件这里就不多谈了。主要说说内部构造,软件层面上的东西。CPU,主要由三部分构成:1.算术/逻辑单元,主要执行数据的运算,2.控制单元,协调机器的各项活动。3.寄存器单元,作为CPU内部数据信息临时的存储。其中寄存器分为通用寄存器和专用寄存器。通用寄存器很好理

2016-12-25 00:37:22 1164

原创 《JAVA编程思想》阅读笔记之对于对象的理解(1)

一种面向对象的语言——java,刚接触java的时候就听到了一个这样的例子:什么是面向对象,那先来举个例子,我早上醒来,我起来之后先上了个厕所,我上完厕所之后开始穿衣服、洗漱,然后 我吃早饭。这个“我”,就是对象,面向“我”,就是面向对象。第一次听到这个例子,就明白了这个例子想说明的问题,但是也只是意会的程度。直到我听到了另外的一种解释。首先来聊聊为什么要编程,有一个问题出现了,要写一段程序来解决这

2016-12-11 23:39:26 455

原创 关键字static与单例模式的一点理解

static是java语言中的一个关键字,表示一个静态修饰符,修饰符比较容易理解,静态修饰符又有什么特点呢,首先程序中的任何变量或者代码都是在编译时,由系统自动分配内存来存储的,而静态的特点就是指,在编译后所分配的内存会一直存在,直到程序退出是才会释放这个空间。计算机语言是这样描述的,那程序语言又应该怎样去解释这个东西呢,以java语言为例:java语言中所有的东西都可以理解为对象(java是一门面

2016-12-04 22:09:02 4938

原创 菜鸟笔记之JAVA设计模式——策略模式的一点理解

java设计模式之策略模式,各大书籍中的定义可以整理为:定义了算法族,分别封装起来,让他们之间可以互相替换,此模式可以让算法的变化独立于使用算法的客户。策略模式的核心思想是:将代码中可能会变化的部分抽取出来,使其独立于其他不会改变的代码,以便在将来对其进行改变的时候不会影响其余的代码。使程序更具弹性,更好维护。该设计模式中用到的比较关键的编程思想分别为:封装、多态、继承和针对接口编程,不针对实现编程

2016-11-24 00:10:45 508

空空如也

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

TA关注的人

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