- 博客(20)
- 资源 (3)
- 收藏
- 关注
原创 https和http的区别与比较
https和http的区别与比较httphttpsSSL(TSL 传输层安全协议)总结区别http是一个基于tcp/ip的应用层的的请求/响应式协议, 全称超文本传输协议.特点:简单快速灵活, 常用方式 Post Get Put Delete , 支持多种传输数据类型无状态, 多次请求没有状态保持无连接, 每次处理一个请求端口 80不加密的, 任何内容都可能被伪装或者篡改ht...
2019-01-28 14:55:35
758
原创 Spring 事务
Spring 事务事务定义事务的特性(ACID)Spring 事务管理器Spring 的事务属性定义常用Spring事务的实现总结事务定义单个逻辑工作单元执行的一系列操作, 这一系列操作要么全部执行, 要么全部不执行.从生活示例转账的逻辑来看, A 向 B 转账 100元, 可以分为两步: 1. A 扣款 100 ,2. B 加款 100. 这两步要么全部执行, 要么全部不执行 才是真正完成...
2019-01-05 21:08:32
328
原创 TCP/IP的三次握手和四次挥手
TCP/IP的三次握手和四次挥手前言前置知识三次握手四次挥手前言tcp/ip 握手挥手是网络连接的基本知识, 值的花时间弄懂到底干了什么.前置知识TCP 在发送过程中, 会借助一个TCP标志选项来确定当前TCP段的目的, 这就叫着TCP标志位(TCP Flag), 告诉另一端如何正确使用该TCP段.TCP 一共有6 个标志选项Urgent pointer : 紧急指针, 接收端接收到...
2019-01-04 22:18:23
391
原创 Mysql系列进步一: MySQL 实现乐观锁和悲观锁
[OTC](Mysql系列进步一: MySQL 实现乐观锁和悲观锁)前言基于数据库的乐观锁和悲观锁主要目的是为了解决在数据库并发时, 对数据更新不一致导致的问题.悲观锁悲观锁具有独占和排他两种特性, 修改数据时必须先拿到锁, 否则直接拒绝. 在操作数据的过程中, 全称持有锁, 操作完毕后, 释放锁.实现悲观锁一般在MySQL中实现悲观锁, 使用 select … for update ...
2019-01-03 20:26:02
1428
1
原创 NoSql之Redis系列四: Redis实现分布式锁
[OTC](NoSql之Redis系列四: Redis实现分布式锁)前言分布式锁的实现方式很多, 可以使用 数据库乐观锁, 可以适用 Zookeeper, 可以使用Redis, 本文总结一下Redis的分布式锁的常用方式.Redis分布式锁的特点安全: 在任一时刻, 只有一个客户端持有锁, 同一把锁相互排斥.保活1: 无死锁, 持有锁的客户端崩溃或者网络断开, 也可以获取新锁保活2:...
2019-01-03 09:28:42
359
原创 NoSql之Redis系列四: Redis为什么这么快之服务器事件驱动
NoSql之Redis系列四: Redis为什么这么快之服务器事件驱动前言Redis 服务器事件驱动类型文件事件(file event)文件事件构成时间事件总结 为什么这么快参考资料前言Redis 是使用 C语言编写的 key-value 数据库, 操作速度极快, 整体来说, 可以从数据结构和服务器事件驱动两个方面类来解释. 下面就介绍redis的服务器事件驱动.Redis 服务器事件驱动类...
2019-01-01 20:49:44
1530
原创 NoSql之Redis系列三: Redis为什么这么快之数据结构
NoSql之Redis系列三: Redis为什么这么快之数据结构前言String 类型的数据结构SDS链表 LinkedList字典 Dic跳跃表 skiplist整数集合 intset压缩列表 ziplist对象 object总结参考资料前言Redis 是使用 C语言编写的 key-value 数据库, 操作速度极快, 整体来说, 可以从数据结构和单线程多路复用两个方面类来解释. 下面就介绍...
2018-12-31 20:58:58
613
原创 NoSql之Redis系列二: Redis的数据持久化方式
NoSql之Redis系列二: Redis的数据持久化方式Redis 的持久化简介Redis 存储的两种方式RDB持久化AOF持久化Redis 的持久化简介Redis提供了两种不同的方式将数据持久化到硬盘中, 使得数据在Redis 重启后仍然存在. 将内存中的数据存储到硬盘的一个主要问题就是为了在之后重用数据, 或者是为了防止系统故障而将数据备份到一个远程位置. 另外, 存储在Redis 里面...
2018-12-30 22:26:24
389
原创 NoSql之Redis系列一: Redis的数据类型和基本使用
[OTC](NoSql之Redis系列一: Redis的数据类型和基本使用)Redis简介及特点Redis是一个开源高效率的Key-Value数据库.支持多种数据结构 string, list, set, zset, hash, 并支持push, pop, 交并差集等多种操作, 并支持数据的持久化.全内存操作, 性能极高, 官方数据: read高达 110000次/s, write高达 ...
2018-12-29 22:55:01
1189
原创 红黑树的实现原理及应用
@OTC什么是红黑树红黑树(R-B Tree, 全称 Red-Black Tree)是一种特殊的二叉查找树, 其中每个节点都有颜色, 红色或者黑色.红黑树的特性:树的节点是黑色或者红色树的根节点和指向null的叶子节点都是黑色不能有两个红色节点是连续的每个节点至为null的子节点的任何路径, 都含有相同数量的黑色节点示例: 8B ...
2018-12-29 09:25:24
2475
原创 Spring MVC的请求处理流程
Spring MVC的请求处理流程DispatcherServlet的处理流程图核心处理流程步骤DispatcherServlet 的初始化过程DispatcherServlet的处理流程图核心处理流程步骤检测是否是文件上传, 并处理根据 Request 获取 HandlerExecutionChain2-1: 首先解析 Request 的请求的Path2-2: 根据 Path 在...
2018-12-27 21:58:17
469
3
原创 Spring Bean的作用域和生命周期
Spring Bean的作用域和生命周期Spring中5种作用域基本作用域的使用基本作用域Bean的生命周期验证基本作用域生命周期Spring中5种作用域在Spring配置Bean时, 可以通过设置scope属性来定义Bean的作用域, 按照scope的值来分, Bean的作用域分为以下几种:[基本作用域]singeton: 单例模式(默认方式), 每次返回同一个对象实例. 通过设置其 l...
2018-12-26 22:34:18
858
原创 spring中的两种aop实现方式jdk动态代理和cglib代理
spring中的两种aop实现方式jdk动态代理和cglib代理Aop的概念主要应用jdk动态代理如何使用动态代理的代理类生成过程jdk动态代理的注意事项cglib代理如何使用cglib代理的注意实现Spring中的aop概念定义切面的示例spring的aop总结Aop的概念aop (Aspect Oriented Programming), 直译: 面向侧面编程, 通过 预编译方式 或者 动...
2018-12-25 21:24:16
1383
原创 常用Map的比较与实现(jdk1.8+)
@OTC常用的Map比较比较项ConcurrentHashMapHashTableHashMapTreeMap线程安全是是否否线程安全方式锁分段技术方法synchronized不安全不安全Key可以为null否否是否Value可以为null否否是是继承自AbstractMapDictionaryAbstra...
2018-12-24 22:07:36
893
原创 volatile的使用方法及一些注意事项
volatile的使用方法及一些注意事项volatile的定义使用场景常见的使用问题总结volatile的定义volatile是java虚拟机提供的最轻量级的同步机制, 当一个变量定义为volatile之后, 具备两个特性:保证此变量对所有线程的可见性, “可见性” 指当一个线程改变了这个变量的值, 新值对于其他线程来说是立即可见的. 普通变量的值在线程之间传递必须通过主内存完成.禁止指...
2018-12-23 19:03:59
777
原创 ThreadLocal使用场景及内存泄漏
ThreadLocal使用场景及内存泄漏定义如何使用它们为什么ThreadLocal能实现线程变量隔离ThreadLocal的问题(可能内存泄漏)ThreadLocal带来的好处主要应用场景定义ThreadLocal官方定义: 该类提供线程局部变量。这些线程局部变量与普通变量的不同,每个线程都有自己独立初始化的变量副本(通过其get或set方法)。如果希望将类的局部变量和线程状态关联(如 u...
2018-12-23 14:31:37
691
原创 如何实现线程安全
如何实现线程安全什么是线程安全为什么会造成线程不安全如何实现线程安全总结什么是线程安全个人理解: 多个线程同时读写某实例对象中同一数据, 可能会造成数据的不正确结果, 这就是线程不安全.在操作数据时, 避免同一数据同一时刻被多个线程共享, 就不会造成数据的混乱, 这就是线程安全.//线程不安全简单示例public class ThreadSafeDemo { int index ...
2018-12-17 17:51:48
198
原创 深入理解线程池
深入理解线程池什么叫线程池为什么使用如何使用深入参数分析如何配置线程池大小总结什么叫线程池一个线程集合, 统一管理线程的数量, 线程的生命周期, 并尽可能重用池中的线程. 我们常用的数据库连接池也是相同思想的产物.为什么使用一个线程在创建和销毁时, 非常消耗资源. 为了尽可以减少线程创建和销毁的次数, 多次重用同一线程, 将资源消耗分摊到多个任务上.不使用线程池管理线程, 若运行的线程...
2018-12-15 17:11:05
207
原创 MySQL为什么不推荐使用null值
(随笔)MySQL为什么不推荐使用null值1新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入1你好! 这是...
2018-12-14 22:44:08
1801
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人