自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

田成荣

真正厉害的人都在默默的努力......

原创 【并发编程】--AQS实现原理

AQS lock之所以能实现线程安全的锁,主要的核心是AQS(AbstractQueuedSynchronizer),AQS提供了一个FIFO队列,可以用来实现锁以及需要同步功能的框架。称为AQS。 AQS使用依靠继承来完成,子类通过继承自AQS并实现所需的方法来管理同步状态。Reentrant...

2019-07-31 21:48:35 104 0

原创 【并发编程】--Condition底层实现原理

Condition await方法 调用Condition的await()方法(或者以await开头的方法),会使当前线程进入等待队列并释放锁,同时线程状态变 为等待状态。当从await()方法返回时,当前线程一定获取了Condition相关联的锁。 public final void awai...

2019-07-31 21:45:56 139 0

原创 【并发编程】--compareAndSet底层实现原理

compareAndSet实现原理 compareAndSetHead private final boolean compareAndSetHead(Node update) { return unsafe.compareAndSwapObject(this, headOffset, n...

2019-07-31 21:43:21 416 0

原创 【并发的艺术】--同步锁-ReentrantLock底层实现原理

同步锁 锁是控制多个线程访问共享资源的方式,一个锁防止多个线程同时访问共享资源。 Lock接口出现之前,java程序只能依靠synchronized关键字来实现同步锁。在java5以后增加的JUC的并发包并且提供了lock接口用来实现锁的功能。提供与synchronized类似的功能,比syn...

2019-07-31 21:42:13 84 0

原创 【并发编程】--CountDownLatch、CyclicBarrier、Semaphore

JUC中提供常用的并发工具类,CountDownLatch、CyclicBarrier、Semaphore。 CountDownLatch countdownlatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完毕再执行。从 命名可以解读到countdown是倒数的意...

2019-07-31 21:34:28 68 0

原创 【并发编程】synchronized底层实现原理

synchronized 原子性、可见性、有序性 应用 加锁的三种方式: 1、普通同步方法,锁的是实例对象 2、静态同步方法,锁的是当前类的对象。 3、同步方法块,锁的是synchronized括号里的对象 synchronized的字节码指令: 对于同步块的实现使用了monitorente...

2019-07-31 21:31:58 86 0

原创 【并发编程】--volatile底层实现原理

1、volatile 解决可见性使用缓存一致性。 防止指令重排序使用内存屏障,保证有序性。 有volatile变量修饰的共享变量,编译时会有lock前缀。 volatile实现原则: ·Lock前缀指令会引起处理器缓存回写到内存。(总线锁、缓存锁) ·一个处理器的缓存回写到内存会导致其他处理器的...

2019-07-31 21:30:01 101 0

原创 Spring-Bean的生命周期

12345

2019-07-07 21:43:23 61 1

原创 SpringMVC起步

起飞

2019-06-30 21:36:22 78 1

原创 spring实战-DI实站【bean装配】

自动化装配

2019-06-23 23:05:27 49 1

原创 final

final学习

2019-06-16 21:44:02 47 1

原创 【jvm】案例分析

1、查看垃圾回收器 运行 java -version 32位jvm分server和client,64位jvm只有server 查看gc日志 cms 是为了gc时减少停顿时间。cpu到100% 2、JDK自带的监控工具 JDK自带的 监控工具 https://docs.orac...

2019-06-09 22:14:40 103 1

原创 【MySQL】之性能优化-事务+锁+MVCC

事务 1、概念 **数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作; 事务是一组不可再分割的操作集合(工作逻辑单元);**是什么**update user_account set balance = balance - 1000 where userID = 3; update...

2019-05-30 08:27:49 62 3

原创 【MySQL】之性能优化-索引+查询优化

索引 A、索引真的去了解 正确的创建合适的索引是提升数据库的查询性能的基础。索引是为了加速对表中数据的检索而创建的一种分散存储的数据结构。是什么 为什么1、极大地减少存储引擎需要扫描的数据量。2、把随机io编程顺序io。3、帮助我们在分组、排序等操作时避免使用临时表。 B、索引为什么选B+T...

2019-05-26 23:05:51 55 1

原创 mycat使用【大数据系统数据库性能优化】

2019-05-19 21:46:14 229 1

原创 RabbitMQ-原理【从生产者近MQ出消费者过程】

样式再修改 首先需要明确,效率与可靠性是无法兼得的,如果要保证每一个环节都成功,势必会对消息的收发效率造成影响。 如果是一些业务实时一致性要求不是特别高的场合,可以牺牲一些可靠性来换取效率。 1 代表消息从生产者发送到Exchange; 2 代表消息从Exchange路由到Queue; 3 代表消...

2019-05-12 21:36:17 330 1

原创 RabbitMQ从无知到了解

慢慢学习中。

2019-05-05 23:02:08 42 0

原创 springBoot项目使用redis实例操作

【1、pom文件引入redis】 <!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp...

2019-04-07 19:06:36 263 0

原创 redis-五种数据类型入门到实例精通

初始-redis 特点: 速度快 数据存在内存中。 C语言实现,“距离”操作系统越近执行速度越快。 单线程,预防了多线程可能产生的竞争问题。 Redis源代码精打细磨。 键值对的数据结构存储 五中键值对的形式,许多的应用场景,提高开发效率。 功能多 键过期 发布订阅 lua脚本 事务功能 流水...

2019-03-31 21:56:43 69 0

原创 zookeeper的2PC、3PC、ZAB协议的深入讲解

zookeeper解决分布的问题 主要解决分布式环境下的服务协调问题。1、防止单点故障搭集群,满足高性能分担客户端的请求流量,高可用某一个宕机不影响数据和提供服务的可能性。2、数据一致性-2PC3PC3、leader选举-ZAB leaderg挂了如何恢复数据? 2PC:两个阶段。 阶段...

2019-03-24 22:37:25 110 0

原创 zookeeper认识

1/ 2/ 3/

2019-03-17 22:16:46 49 0

原创 分布式系统的基础HTTP及HTTPS协议

2.2分布式系统的基础HTTP及HTTPS协议 HTTP 特点http是无状态的。本状态不知道上一个状态。解决无状态,cookie和session交互使用,现在用token。 HTTPS 怎么实现安全的?1.对称加解密。–不安全2.非对称。(公钥、私钥) 使用CA认证。 1、先CA认证C私钥...

2019-03-10 21:41:38 61 0

原创 【分布式】—架构设计

1.2、分布式架构设计 1、SOA和微服务 SOA 各模块间相互调用,ESB来隔离各模块,各模块都走ESB。特点:1.有序。2.复用。3.高效。 微服务架构:业务需要彻底的组件化和服务化特点:1.组件化。2.按业务能力划分服务和开发团队。3.去中心化。4.基础设施的自动化。 差异:1、微服务没有...

2019-03-03 19:22:23 113 0

原创 Lombok-通俗的讲解

Lombok是什么 减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。 常用注解 • val:用在局部变量前面,相当于将变量声明为final • @NonNull:给方法参数增加这个注解会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出NPE(Null...

2019-02-17 21:05:17 60 0

原创 JVM类加载过程—详解

类加载 class加载验证流程 加载 获取类的二进制,转为方法去数据结构,在Java堆中生成对应的Java.lang.Class对象。 链接 验证(验证class文件) 文件格式的验证 (1)是否以0xCAFEBABE开头。 (2)版本号是否合理 元数据验证(class内基本的语法语义的...

2019-02-10 21:07:26 129 0

原创 2018年总结

项目 项目 项目

2019-01-31 16:06:30 93 2

原创 ionic实现动态轮播图

温馨提示 Ionic和angular在不断发展,项目也在不断更新迭代,此文档必然是有时效性的,继而温馨提示读者在使用此文档时,注意项目架构。如有变化,请持续更新此文档。 一.所需资源 Ionic4 二.集成具体步骤 2.html代码 &lt;ion-slide *ngFor=...

2019-01-20 21:36:42 400 4

原创 JVM—GC参数、GC回收算法

后期将改成导图。

2019-01-13 20:54:34 83 1

原创 JVM类加载过程

2019-01-06 22:46:36 69 0

原创 JVM中GC算法详细通俗讲解

2018-12-30 20:55:54 93 0

原创 springBoot整合mybatisPlus——实战

2018-12-23 21:40:34 159 2

原创 spring和springMVC父子容器的理解

spring和springMVC父子容器的理解

2018-12-09 21:23:32 102 0

原创 angular项目结合微信扫一扫的js换成ts

js: 在index.html 引入 在typings.d.ts定义: declare var wx:any; ts:装东东 cnpm install weixin-js-sdk --save cnpm install @types/node --save-dev 代码加入: d...

2018-11-25 23:07:47 848 3

原创 SpringMVC的工作原理

大概明白了,我来说一说。

2018-11-18 23:56:10 42 1

原创 MyBatis事务管理&缓存机制

2018-11-11 19:54:45 110 1

原创 MyBatis基本用法

1、MyBatis的关键核心对象SqlSessionFactory和SqlSession SqlSessionFactory 是单个数据库映射关系经过编译后的内存镜像。 此对象实例是通过SqlSessionFactoryBuilder对象加载mybatis配置文件产生,每一个MyBatis的应用程...

2018-11-04 21:50:43 85 0

原创 自考总结

自考,这次是报着最后一次学习自考的心态来学习的。应该不要说是学习,是思想的提升是对历史的认知。 这次学习的是马克思和近代史,我是个理科生终于有个机会学习近现代史和马克思了呢。 近代史 马克思 之前的巨人是局限在米老师和马爸爸线内,这次学习后我的巨人又高等级了,马克思。哈哈 ...

2018-10-28 20:57:54 123 18

原创 MyBatis入门

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MyBatis是一个支持普通查询、存储过程和高级映射的持久层框架。并不支持...

2018-10-28 20:16:23 106 14

原创 Spring Boot 结合Swagger2

成功!

2018-10-21 21:38:54 101 5

原创 Spring Boot 新建项目使用idea

2018-10-14 18:42:54 78 3

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