自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟不想菜的博客

大学生一枚

  • 博客(22)
  • 资源 (2)
  • 收藏
  • 关注

原创 MySQL事务隔离级别+四大特性+脏读幻读不可重复读更新丢失

四大特性我们都知道,提到事务,就不能不提事务的四大特性,ACID,即原子性,一致性,隔离性,持久性。原子性(Atom):事务的一组操作是原子的不可再分割的,这组操作要么同时完成要么同时不完成。一致性(Consistency): 事务在执行前后数据的完整性保持不变。数据库在某个状态下符合所有的完整性约束的状态叫做数据库具有完整性。在解散一个部门时应该同时处理员工表中的员工保证这个事务结束后,仍然保证所有的员工能找到对应的部门,满足外键约束。隔离性(Isolation):当多个事务同时操作一个数据库时

2020-10-06 00:34:08 1296

原创 Redis的主从复制实现原理

文章目录Redis的主从复制旧版的复制实现新版的复制实现部分重同步1.复制偏移量2.复制积压缓冲区3.服务器运行IDpsync复制的实现1. 步骤一:设置主服务器的地址和端口2. 步骤二:建立套接字连接3. 步骤三:发送PING命令4. 步骤四:身份验证步骤五:发送端口信息步骤六:同步步骤七:命令传播Redis的主从复制旧版的复制实现Redis的复制功能分为同步(sync)和命令传播(command propagate)两个操作。同步:同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数

2020-10-01 23:26:41 227

原创 Redis持久化(RDB持久化与AOF持久化)

Redis持久化RDB持久化实现RDB文件保存的是二进制类型的数据。命令:SAVE:阻塞Redis进程,直至RDB文件生成完成BGSAVE:派生出一个子进程,由子进程复制创建RDB文件伪代码:def SAVE(): # 创建RDB rdbSave();def BGSAVE(): # 创建子进程 pid = fork(); if pid == 0; # 子进程创建RDB文件 rdbSave(); # 完成后向父进程发送信号 signal_parent(

2020-09-30 14:33:17 124

原创 10w单词库(含释义)(包含sql,csv)

GitHub搬运链接:https://pan.baidu.com/s/1f5fOMmp4erhrCG18X8YOtw提取码:8dk7

2019-09-16 10:46:35 5103 1

原创 Tomcat7安装ssl证书(阿里云证书,http->https)+ linux

1.登录阿里云2.在控制台的产品与服务中搜索SSL证书 3.进入SSL证书后,点击右上角购买证书4.点击Symantec,然后选择免费的DV SSL(一开始是没有免费这个选项的,点击选择一个域名或者随便点点就出现了) 5.点击购买,提交订单6.点击申请,填写信息(选择自动DNS验证和系统生成),然后下一步验证即可7.等待审核成功(我的大概是十来分钟就OK...

2019-01-26 11:05:40 960

原创 集合框架-HashMap源码阅读

HashMap参考文章:Java集合:HashMap详解(JDK 1.8)【面试+工作】JDK1.7和JDK1.8的变化JDK7中采用数组+链表,JDK8中采用数组+链表/红黑树(默认链表长度大于8时转为树),树长度为6退化为链表。JDK7中扩容需要重新计算哈希值和索引位置,JDK8不重新计算哈希值,而是巧妙的采用扩容后的容量进行&操作来计算新的索引位置。JDK7采用头插法,JDK8采用尾插法JDK7采用头插法会导致扩容时有可能出现链表成环问题。JDK8则无此问题。JDK7使用Ent

2021-11-18 12:48:05 507 2

原创 集合框架之ArrayList源码解读

ArrayList字段 private static final long serialVersionUID = 8683452581122892189L; /** * Default initial capacity. * 默认的初始化容量 */ private static final int DEFAULT_CAPACITY = 10; /** * Shared empty array instance used for e

2021-11-05 14:54:03 131

原创 Java线程池执行流程、execute源码阅读

线程池参考文章:Java线程池实现原理及其在美团业务中的实践文章目录线程池线程池状态含义线程池状态转换线程池参数ThreadExecutorPool线程池类型拒绝策略好处线程池执行流程线程池状态含义RUNNING:接收新任务并处理阻塞队列里面的任务。SHUTDOWN:拒绝新任务但是处理阻塞队列里面的任务。STOP:拒接新任务并且会抛弃阻塞队列里面的任务,同时还会中断当前正在处理的任务。TIDYING:所有任务都执行完(包括阻塞队列里面的任务)后当前线程次活动线程为0,将要调用terminat

2021-10-20 12:04:14 369

原创 ThreadLocal源码解读

文章目录ThreadLocal类图源码set方法get方法remove方法内存泄漏问题ThreadLocal类图源码set方法public void set(T value) { Thread t = Thread.currentThread(); // getMap(t) 就是返回t.threadLocals // Thread的threadLocal类型为ThreadLocal.ThreadLocalMap // ThreadLocalMap是ThreadLoc

2021-03-26 22:06:13 97

原创 MySQL两阶段提交(Redo.log binlog.log)

两阶段提交​ MySQL中经常说的WAL技术,WAL的全称是Write- Ahead Logging,它的关键点就是先写日志,再写磁盘。即当有一条记录需要更新时,InnoDB引擎就会先把记录写到redo log里,并更新内存,这个时候更新就完成了。因为如果每一次的更新操作都需要写进磁盘,然后磁盘也要找到对应的那条记录,然后再更新,整个过程IO成本、查找成本都很高。在执行一条update语句时候,通过连接器、分析器、优化器之后,调用操作引擎,将新行写入内存,写入redo log,状态为prepare-&

2020-10-06 00:31:56 2701

原创 MySQL两阶段加锁

两阶段加锁参考文章:MySql-两阶段加锁协议2PL,两阶段加锁协议:主要用于单机事务中的一致性与隔离性。2PC,两阶段提交协议:主要用于分布式事务。什么时候会加锁​ 在对记录更新操作或者(select for update、lock in share model)时,会对记录加锁(有共享锁、排它锁、意向锁、gap锁、nextkey锁等等),本文为了简单考虑,不考虑锁的种类。什么是两阶段加锁在一个事务里面,分为加锁(lock)阶段和解锁(unlock)阶段,也即所有的lock操作都在unl

2020-10-06 00:30:58 1045 1

原创 MySQL主从复制(binlog、relay.log)

复制步骤:在主库上把数据更改记录到二进制日志(Binary Log)中。从库将主库上的日志复制到自己的中继日志(Relay Log)中。从库读取中继日志的事件,将其重放到从库数据之上。详细过程:​ 第一步是在主库上记录二进制日志。在每次准备提交事务完成数据更新前,主库将数据更新的事件记录到二进制日志中。MySQL会按事务提交的顺序而非每条语句执行的顺序来记录二进制日志。在记录二进制日志后,主库会告诉存储引擎可以提交事务了。​ 下一步,从库将主库的二进制日志复制到其本地的中继日志中。首先,

2020-10-06 00:30:10 425 1

原创 虚拟机类加载机制(深入理解JVM笔记)

文章目录类加载1. 概述2. 类加载的时机3. 类加载过程加载验证准备解析初始化4. 类加载器类与类加载器双亲委派模型破坏双亲委派模型类加载1. 概述虚拟机的类加载机制:​ Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。2. 类加载的时机六种情况下必须对类进行初始化:遇到new、getstatic、putstatic和invokestatic这四条字节码指令时,如果类型没有进行过初始化,则需要先触

2020-10-06 00:11:17 122

原创 JVM垃圾收集器与内存分配策略详细

三个问题:哪些内存需要回收?什么时候回收?怎么回收内存?文章目录3.2 哪些内存需要回收?3.2.1 引用计数算法3.2.2 可达性分析算法怎么判断是GC Roots?3.2.3 再谈引用3.2.4 finalize方法3.2.5 回收方法区3.3 垃圾收集算法(重点)3.3.1 分代收集理论3.3.2 标记-清除算法(Mark-Sweep)3.3.3 标记复制算法(Mark-Copy)3.3.4 标记整理算法(Mark-Compact)3.4 HotSpot的算法细节实现3.4.1 根节点枚举

2020-09-28 15:05:37 169

原创 MongoDB学习快速入门

MongoDB学习1. 启动服务参考文章2. 基本操作CRUD2.1 创建、删除数据库# 创建,没有该数据库的时候就会创建它,该数据库存在时进入该数据库# 刚刚新建数据库时使用show dbs还不能显示,因为还存在内存中,当该数据库创建collection后自动刷新到磁盘use db_name;# 删除db.dropDatabase()MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在test 数据库中。2.2 创建删除集合2.2.1 显式创

2020-07-18 23:40:20 268

原创 spring文档Core-The IoC container(1.1-1.2)

目录1.1. Introduction to the Spring IoC Container and Beans1.2. Container Overview1.2.1. Configuration Metadata1.2.2. Instantiating a Container1.2.3. Using the Container1.1. Introductio...

2020-03-06 23:24:35 181

原创 关于开发中的一些问题

在MySQL中删除外键时,如果为该外键设置了索引,则要先删除索引,才能删除该外键,不然会报错error on rename of '.\blog\article' to '.\blog\#sql2-f94-1' (errno: 152)MySQL会自动为主键添加索引,所以不必重复添加索引 关于索引的原理和优化 MySQL利用存储过程批量插入数据DROP PROCEDURE IF E...

2019-08-18 21:42:10 106

原创 idea+mybatis

 打开idea 新建项目(这个父项目就像一个大容器,用来管理模块的,没有具体的逻辑。可以把其他模块都用到的依赖jar包都放在这里,这样的话,子模块就不需要都增加一次依赖了。)或者模块Module 建立maven 填写groupid和artifactid,groupid是项目id,写你的项目名,artifactid是模块id(这里是父模块id)。继续next ,写项目名,完成。这些都是随意...

2019-01-23 21:41:52 210

原创 1-23(第6天)MyBatis(二)typeHandler类型转换器

typeHandlerjdbcTypejavaType系统定义的typeHandler系统提供的typeHandler能覆盖大部分场景的要求,但有些特有的数据类型如枚举是不能正常转换的。自定义的typeHandler【要点】要实现TypeHandler<T>类  package com.learn.ssm.chapter4.typehandler;...

2019-01-23 15:45:17 118

原创 1-19(第二天)java的一些设计模式 + Mybatis(一)

目录 Java设计模式:动态代理模式(JDK、CGLIB、Javassist、ASM)责任链模式观察者(Observer)模式 (又称发布订阅模式)工厂模式(simple factory)和抽象工厂模式 (abstract factory)建造者(Builder)模式MyBatis核心组件:实例:(忽略搭建环境)MyBatis配置Java设计模式:...

2019-01-19 23:14:18 167

原创 1-18(第一天)IO流

 学习内容:1.1复习Java基础 (Java语言程序设计     附书内代码 提取码: fv6k)io流 集合框架1.2寻找相应视频学习(SSM+Maven+IDEA开发) 学习效果:2.1复习Java基础 io流关于io流的一些具体的类及其方法可以自己查看api(在没有大量练习或者实践就去强行记忆方法实在是下策),今天主要去了解它的一些思想。文件可分为...

2019-01-18 21:24:24 138

原创 java的并行编程

JDK1.7引入使用Java提供的Fork/Join框架并发与并行的区别并发是单核处理,并行是多核处理 并发是轮流执行,并行使同时执行并行可用于:大数据、分布式、多线程等等并不是任何任务都适合并发处理(例如某些任务必须要根据其他任务的数据才能执行的程序)并行大多通过分治法实现,分治法也要有下限...

2019-01-18 12:23:47 306 1

103976-master.zip

github找到的单词以及释义,超过100000个单词,有sql等多种格式。

2019-09-16

电脑快捷键

关于一些常用的电脑快捷键,有助于加快我们操作速度,十分方便

2018-03-06

空空如也

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

TA关注的人

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