- 博客(14)
- 资源 (38)
- 收藏
- 关注
原创 MySql面试题集
1、一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后, 删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记 录,这条记录的 ID 是 18 还是 15 ?答:如果表的类型是MyISAM,那么是18。因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySql自增主键的最大ID也不会丢失。如果表的类型是InnoDB,那么是15。InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行OPIMIZE操作,都会导致最
2020-06-28 17:39:18 651
原创 Redis高并发分布式锁详解
Redis高并发分布式锁的实现1.分布式锁介绍在计算机系统中,锁作为一种控制并发的机制无处不在。单机环境下,操作系统能够在进程或线程之间通过本地的锁来控制并发程序的行为。而在如今的大型复杂系统中,通常采用的是分布式架构提供服务。分布式环境下,基于本地单机的锁无法控制分布式系统中分开部署客户端的并发行为,此时分布式锁就应运而生了。一个可靠的分布式锁应该具备以下特性:互斥性:作为锁,需要保证任何时刻只能有一个客户端(用户)持有锁可重入: 同一个客户端在获得锁后,可以再次进行加锁高可用:获取
2020-06-21 23:06:46 630
原创 Redis--Set结构及其应用场景
前言集合(set)类型也是用来保存多个 字符串元素,但和列表类型不一样的是,集合中 不允许有重复元素, 并且集合中的元素是无序的, 不能通过索引下标 获取元素。Set数据结构Set应用场景微信抽奖小程序如下:用户18888,18889,18890参与抽奖用set命令SADD key userId,用SMEMBERS key可以查看参与抽奖的所有用户,SRANDMENBER act:1008 2 在所有参与抽奖的用户中随机抽取两个,SRANDMENBER act:1008 1 在所有参.
2020-06-20 11:22:31 736 1
原创 Redis--Hash&List介绍和使用场景
1.Hash数据结构Hash类型是String类型的field和value映射表,或者说是一个String集合,它特别适合存储对象,相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型类,占用更小的内存空间,并方便存取整个对象。在Redis中,哈希类型是指键值本身又是一个键值对结构,形如:value={{field1,value1},{field2,value2},{fieldN,valueN}}Redis键值对和哈希类型二者的关系,如下图所示:Hash结构...
2020-06-19 23:41:20 4160
原创 Redis之String应用场景
NOSQL之RedisRedis是一款由key-value存储的软件。说起NOSQL,有文档型、键值型、列型存储、图形数据库。其中,在简单的读写性能来说,键值型是最快的。Redis作为目前市面上使用最多的键值型数据存储软件,内置了多种类型的数据结构,并且提供了高可用解决方案,使用方便快捷。市面上有很多语言的库可以调用Redis服务器。Redis的核心数据结构主要有以下五种:String,Hash,List,Set ZsetString介绍string是以一种纯字符串作为value的形式存在的。
2020-06-17 17:03:31 957
原创 Volatile原子性分析
Volatile原子性可通过下面例子来说明每个线程都对共享变量num做了1000++,一共有10个线程多次运行上面程序得到的结果num<=10000,而不是理想中的num=10000那究竟是什么原因呢?通过下图说明,假设线程1和线程2同时从主内存将num变量read读取出来,再load载入工作内存,use使用线程执行代码,线程1和线程2都对num++操作,此时线程1和线程2的num值都为1,线程1和线程2都对变量进行assign赋值操作,更改工作内存里num的值为1,此时假设线程1先
2020-06-16 14:56:05 757
原创 Volatile可见性底层实现原理
CPU多级缓存主内存(RAM):也就是所谓的内存条,一般当数据写入电脑磁盘的时候需要先写入主内存,然后再写入磁盘。系统主线:连接系统cpu和主内存的系统主线,就比如台式电脑连接主板上连接cpu和内存条的主线。如下图所示最简单的高速缓存的配置,数据的读取和存储都经过高速缓存,CPU核心与高速缓存有一条特殊的快速通道;主存和高速缓存都连在系统总线上,这条总线还用于其他组件的通信。高速缓存出现不久,系统变得越来越复杂,高速缓存与主存之间的速度差异被拉大,直到加入了另一级缓存,新加入的这级缓
2020-06-15 17:29:15 1321
原创 JVM调优案例详解及面试题
JVM调优目的减少STW (Stop The Work),减少full gc的次数和缩短full gc的时间一个4核8G的订单系统,假设给JVM运行内存为3个G,按照上图比例老年代可分2G,Eden 800M,S0,S1各100M,线程运行每秒产生60M对象,大概运行13秒就会占满Eden区,前12秒产生的对象在做一个minor gc后被当作垃圾对象处理掉,第13秒产生的对象不是垃圾对象,会被放到S0区第13秒产生的60M对象大于S0区的50%会被放到老年代old,参考如下1.4对象动态年龄判断,因
2020-06-14 16:33:20 2988
原创 JDK体系及JVM架构详解
JDK体系结构1. 栈 (线程)每当启动一个新线程的时候,java虚拟机都会为它分配一个java栈。java栈主要用来存储局部变量,如下图当执行main方法时,就启动了一个线程,java虚拟机都会为它分配一个栈内存区域用来存储局部变量a,b,cjava以栈帧为单位保存线程的运行状态。虚拟机只会对java栈执行两种操作:以栈帧为单位的压栈或者出栈。遵循栈的先进后入原则FILO...
2020-06-14 00:13:41 952 3
原创 JVM指令手册
栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_5 将int类型常量5压入栈lconst_0 将long类型常量0压入栈lconst_1 将long类型常量1压入栈fconst_0
2020-06-13 10:50:53 157
原创 MySQL存储引擎索引实现解析
MySQL存储引擎是表的存储引擎1.Myisam存储引擎1.1.Myisam存储引擎底层表的存储结构如下user.frm 文件存储表的表结构user.MYD 文件存储表的数据行记录user.MYI 文件存储表的索引字段1.2 Myisam底层SQL查询过程假如查找col1=49,先判断col1是否是索引字段,如果是索引字段,就在MYI文件查找磁盘文件地址针,根据B+树的特点查找磁盘文件地址针,并一次性定位到MYD文件的行元素2.InnoDB存储引擎 *2.1.InnoDB
2020-06-12 00:14:01 203
原创 二叉树,红黑树,B Tree,B+Tree详解
二叉树:二叉树是每个节点最多有2个子树的一种数据结构。二叉树的最高层就是根节点,下面又有很多的子节点,25是15的父节点,而15又是25的子节点,其实就是一个相互的关系, 而15和44又是兄弟节点,但是有一点我们需要注意的地方就是叶子节点, 叶子节点则是红框里面的节点,就是没有子节点的我们就称它为叶子节点。而在二叉树中,我们还要理解一个概念,这个概念就是“树的深度”树深度:从根节点开始(深度为0)自最高层往下递增,在上面的图中我们可以知道,25的深度是0, 15和44深度是1,10,20,21和27
2020-06-11 16:24:27 1018
原创 Socket 简介及面试题
Socket 简介1.什么是Socket?Socket是对TCP/IP 协议的抽象,是操作系统对外开放的接口。socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。我的理解就是Socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭).2.Socke...
2020-06-09 16:22:35 5341
原创 OSI七层协议模型、TCP/IP四层模型学习笔记
OSI七层协议模型、TCP/IP四层模型学习笔记OSI七层和TCP/IP四层的关系1.1 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。1.2 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。1.3 OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。 TCP:transmission control protocol 传输控制协议 UDP:use
2020-06-08 16:40:28 169
高可用的并发解决方案nginx+keepalived资料
2023-02-07
elastic-job相关资料下载
2023-02-03
shardingJdbc 小demo 源码下载
2023-01-30
activemq-5.16.5-bin.zip
2023-01-20
VSCodeUserSetup-x64-1.55.2.rar
2021-05-03
jenkins-2.190.3-1.1.noarch.rar
2021-04-25
GitLabProjects2020.zip
2021-03-25
PSCPexe.rar
2021-01-03
puttymazb.zip
2021-01-03
installercleanup.exe
2020-12-13
rabbitmq.rar
2020-11-15
vue.js工具开发包
2020-11-13
Git环境安装包.rar
2020-10-19
mybatis-3.4.6.zip
2020-09-14
commons-fileupload&&commons-io.rar
2020-09-06
hibernate-validator-6.0.12.Final-dist.zip
2020-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人