摘要:
公众号首发、欢迎关注 安装-登录-配置 下载镜像 docker pull sonatype/nexus3 运行 docker run -d -p 9998:8081 --name nexus --restart=always sonatype/nexus3 进入容器中查看密码是多少 docker e 阅读全文
摘要:
JMM与问题引入 为啥先说JMM,因为CAS的实现类中维护的变量都被volatile修饰, 这个volatile 是遵循JMM规范(不是百分百遵循,下文会说)实现的保证多线程并发访问某个变量实现线程安全的手段 一连串的知识点慢慢缕 首先说什么是JMM, JMM就是大家所说的java的内存模型, 它是 阅读全文
摘要:
Why 红黑树 为什么大家都这么推崇红黑树呢? 这就是数据结构的魅力!!! 下面我简述一下常用数据结构的优缺点 数组 大家对数组很熟悉, 都知道对数组来说,它底层的存储空间是连续的,因此如果我们根据index去获取元素,速度是相当快, 但是对于数组来说有时候查询也不见得就一定块, 比如我们查询数组中 阅读全文
摘要:
MyISAM引擎的B+Tree的索引 通过上图可以直接的看出, 在MyISAM对B+树的运用中明显的特点如下: 所有的非叶子节点中存储的全部是索引信息 在叶子节点中存储的 value值其实是 数据库中某行数据的index MyISAM引擎 索引文件的查看: 在 /var/lib/mysql目录中 . 阅读全文
摘要:
在说B树之前最好先看看2-3树, 2-3树是B树的一种特例, 什么B树, B树就是2-3树, 2-3-4 树 , 2-3-4-5... 树的统称, 而B+树又是B树的一种变形 性质: 什么是二节点, 三节点...? 像上图那样,可以有两个子节点的节点叫做二节点, 可以有三个子节点的节点叫做三节点, 阅读全文
摘要:
why 树 顺序存储 顺序存储的特点是各个存储单位在逻辑和物理内存上都是相邻的,典型的就是代表就是数组,物理地址相邻因此我们可以通过下标很快的检索出一个元素。 我们想往数组中添加一个元素最快的方式就是往它的尾部添加。如果往头部添加元素的话效率就很低,因为需要将从第一个元素开始依次往后移动一位,这样就 阅读全文
摘要:
公众号首发、欢迎关注 这篇博文所列举的优化手段是针对比较传统项目,但是想提高系统的吞吐量现在时髦的技术还是那些前后端未分离, 使用nginx当成静态资源服务器去代理我们的静态资源 是谁限制了Throughput? 当我们对一个传统的项目进行压力测试时,很容器就发现,系统的Throughput被数据库 阅读全文
摘要:
相关概念 RT(response time) 什么是RT? RT就是指系统在接收到请求和做出相应这段时间跨度 但是值得一提的是RT的值越高,并不真的就能说明我们的系统的吞吐量就很高, 比如说,如果存在数据在网络中传输时出现了丢包的现象,传输的数据少了,速度就会增加, 但是这是事故,不是说我们的系统吞 阅读全文
摘要:
什么是算法的稳定性? 简单的说就是一组数经过某个排序算法后仍然能保持他们在排序之前的相对次序就说这个排序方法是稳定的, 比如说,a1,a2,a3,a4四个数, 其中a2=a3,如果经过排序算法后的结果是 a1,a3,a2,a4我们就说这个算法是非稳定的,如果还是原来的顺序a1,a2,a3,a4,我们 阅读全文
摘要:
这个小项目是我读过一点Spring的源码后,模仿Spring的IOC写的一个简易的IOC,当然Spring的在天上,我写的在马里亚纳海沟,哈哈 感兴趣的小伙伴可以去我的github拉取代码看着玩 地址: https://github.com/zhuchangwu/CIOC "点击查看源码" 项目中有 阅读全文
摘要:
## mapping root object mapping json中包含了诸如properties,matadata(_id,_source,_type),settings(analyzer)已经其他的settings PUT my_index { "mappings": { "my_inde 阅读全文
摘要:
计算机的运算方法 无符号数 计算机中的数存放在寄存器中,通常将寄存器的位数称为机器字长, 大家说的无符号数其实就是不区分正负号的数,换句话说,就是没负数,全是正数,大家知道,计算机中的数是以0 1存储的, 假如我们的寄存器16位, 无符号数表示的范围就是0~65535 (2^64=65536), 有 阅读全文
摘要:
源码入口 上篇博文中我们看到了将Spring环境中的 BeanPostProcessor找出来,添加到BeanFactory中的beanPostProcessors中,统一维护,本片博文继续往下拓展,看下Spring如何实例化bean,以及如何实现在bean的实例化通过各种各样的后置处理器完成bea 阅读全文
摘要:
在开始任何命令之前,先上一张图,下面的所有的命令都是围绕这张图展开的 常用命令 初始化本地库 git init 会生成一个.git结尾的隐藏文件 查看工作区文件的状态 git status 红色表示新增或者被修改的文件, 绿色表示被管理(添加进缓存区)的文件,git status命令查看不到被上传到 阅读全文
摘要:
承接上篇博客, 本文探究MyBatis中的Executor, 如下图: 是Executor体系图 本片博客的目的就是探究如上图中从顶级接口Executor中拓展出来的各个子执行器的功能,以及进一步了解Mybatis的一级缓存和二级缓存 预览: BaseExecutor :实现了Executor的全部 阅读全文
摘要:
环境简介与入口 记录一下尝试阅读Mybatis源码的过程,这篇笔记是我一边读,一遍记录下来的,虽然内容也不多,对Mybatis整体的架构体系也没有摸的很清楚,起码也能把这个过程整理下来,这也是我比较喜欢的一种学习方式吧 单独Mybatis框架搭建的环境,没有和其他框架整合 入口点的源码如下: 构建S 阅读全文
摘要:
这一遍看Mybatis的原因是怀念一下去年的 10月24号我写自己第一个项目时使用全配置文件版本的MyBatis,那时我们三个人刚刚大二,说实话,当时还是觉得MyBatis挺难玩的,但是今年再看最新版的Mybatis3.5.0, 还是挺有感觉的 Mybatis的官网一级棒... Mybatis的核心 阅读全文
摘要:
彻底搞懂 HandlerMapping和HandlerAdapter 知识点的回顾: 当Tomcat接收到请求后会回调Servlet的service方法,一开始入门Servlet时,我们会让自己的Servlet去实现HttpServlet接口,重写它的 和`doPost()`方法 在SpringMv 阅读全文
摘要:
什么是Serlvet ? 全称 server applet 运行在服务端的小程序: 首先来说,这个servlet是java语言编写的出来的应用程序,换句话说servlet拥有java语言全部的优点,比如跨越平台,一次编译到处运行 其次: 相对于CGI(common gateway interface 阅读全文
摘要:
回顾上一篇博客中,在AbstractApplicationContext这个抽象类中,Spring使用invokeBeanFactoryPostProcessors(beanFactory);执行BeanFactoryPostProcessor,通过回调Spring自己添加的Configuratio 阅读全文
摘要:
程序入口: 接着上一篇博客中看完了在 的构造函数中的 将我们传递进来的主配置类添加进了 , 本片博客继续跟进 看看Spring如何继续初始化Spring的环境 跟进 , 源码如下: 主要做了如下几件工作 刷新的预准备 比如: 设置时间的锚点,加载上下文环境变量 获取BeanFactory 执行所有的 阅读全文
摘要:
终于,有一天我也来看Spring的源码了,看了一阵之后感觉心情那叫一个舒畅,对Spring底层的实现也有了进一步的了解, 最直观的感受就是Spring的命名风格很赞,很长,真的长到使人见名知意, 闲言少叙,开始整理笔记了 程序的入口 AnnotationConfigApplicationContex 阅读全文
摘要:
为哪些方法代理? 实现自己动态代理,首先需要关注的点就是,代理对象需要为哪些方法代理? 原生JDK的动态代理的实现是往上抽象出一层接口,让目标对象和代理对象都实现这个接口,怎么把接口的信息告诉jdk原生的动态代理呢? 如下代码所示, 方法的第二个参数将接口的信息传递了进去第一个参数的传递进去一个类加 阅读全文
摘要:
title: 玩转spring boot mybatis date: 2019 03 11 19:36:57 type: "mybatis" categories: mybatis 分类名 tags: mybatis 作为持久层的ORM框架,目前在国内主流之一就是MyBatis,学会用它,用好它肯定 阅读全文
摘要:
为什么需要分布式锁 如上图, 在分布式系统中,订单模块为了迎战高并发,订单服务被横向拆分,拆分成了不同的进程,就像上图,两个人同时访问订单服务,然后订单系统1和订单系统2共用一个Mysql当成数据库,经过他们查询发现仅有一件商品,所以他们自个认为都可以下单 如果不加锁限制,可能会出现库存减为负数的情 阅读全文