自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 mybatis-plus 分页类型转换工具类

用mybatis-plus 的分页对象的时候,因为用mybatis-puls 查询出来的分页对象的records里的泛型是实体,有时候需要将实体转换为前端展示的对象,所有写了一个分页数据的类型转换工具,解决这个问题。pom文件引入mybatis-pius依赖。

2024-06-12 09:09:58 243

原创 并发编程BUG的源头

,在这个例子中,编译器调整了语句的顺序,但是不影响程序的最终结果。早期的操作系统基于进程来调度 CPU,不同进程间是不共享内存空间的,所以进程要做任务切换就要切换内存映射地址,而一个进程创建的所有线程,都是共享一个内存空间的,所以线程做任务切换成本就很低了。对于上面的三条指令来说,我们假设 count=0,如果线程 A 在指令 1 执行完后做线程切换,线程 A 和线程 B 按照下图的序列执行,那么我们会发现两个线程都执行了 count+=1 的操作,但是得到的结果不是我们期望的 2,而是 1。

2024-06-04 10:15:37 929

转载 白话Docker基础-进程隔离namespace机制

最近大热的容器技术主要基于Linux的namespace和cgroup技术实现,容器其实是基于host OS来运行,而虚拟机是在当前系统的基础上虚拟化一套硬件的Guest OS。真正要运行的程序其实还是在host OS上运行的,而docker只是对程序进行了启动,和一些参数的管理。

2023-02-05 23:32:28 392 1

原创 Redis基本数据结构String List

因此,Redis实现了名为BRPOP和BLPOP的命令,这些命令是RPOP和LPOP的版本,如果列表为空,则可以阻止:只有在列表中添加了新元素或达到用户指定的超时时,它们才会返回到调用者。,LRANGE使用两个索引,即要返回的范围的第一个和最后一个元素。这两个索引都可以是负数,告诉Redis从末尾开始计数:因此-1是最后一个元素,-2是列表的倒数第二个元素,依此类推。请注意,您可以使用0作为超时来永久等待元素,也可以指定多个列表,而不仅仅是一个列表,以便同时等待多个列表并在第一个列表接收到元素时得到通知。

2023-02-05 22:52:18 383

原创 【MySQL】MySQL日志系统(redolog)和(binlog)

【MySQL】MySQL日志系统(redolog)和(binlog)mysql> update T set c=c+1 where ID=2;redologInnodb引擎独有。是顺序写的形式。Innodb中redolog大小固定,可以配置一组4个文件,一个文件大小1GB,从头开始写,写道末尾就再一次从头开始写。redolog写满会被刷新,写入到磁盘中。是物理层日志,主要记录一条记录“在某条语句上做了什么修改”。在MySQL中每次更新的时候都需要写磁盘,然后磁盘找到相应的记录,然

2021-10-29 10:28:52 184

原创 【MySQL】mysql_reset_connection()

这里写自定义目录标题【MySQL】普通索引和唯一索引的区别普通索引功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入【MySQL】普通索引和唯一索引的区别普通索引全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱

2021-10-29 09:21:26 4323 2

原创 计算机网络:网络层的功能概述

文章目录异构网络互联路由与转发拥塞控制流量控制和拥塞控制的区别拥塞控制的方法异构网络互联异构网络:使用不同的寻址方案、网络接入机制、差错处理方法和路由选择机制等的计算机网络(数据链路层,物理层协议,网络层可以不同,网络层以上的协议必须相同)网络互联:将两个以上的计算机网络(异构网络),通过一定的方法,用一种或多种通信处理设备相互连接起来,构成更大的网络系统。通常是指用路由wu行网络互联和路由选择中间设备:物理层:中继器、集线器;数据链路层:网桥、交换机;网络层:路由器;网络层以上:网关;物理

2021-07-17 14:52:06 855 1

原创 Java并发编程-ArrayList安全问题

文章目录ArrayList安全问题解决方案CopyOnWriteArrayListadd(E e)ArrayList安全问题public class ContainerNotSafeDemo { public static void main(String[] args) { List<String> strings = new ArrayList<...

2020-02-25 11:59:47 409

原创 Java并发编程-AtomicInteger-CAS底层原理

AtomicIntegerAtomicInteger是使用CAS来保持原子性。而Unsafe是CAS的核心类,由于Java方法无法直接访问操作系统低层,需要通过本地native方法来访问,Unsafe相当于一个后门,基于该类可以直接操作特定内存的数据Unsafe // setup to use Unsafe.compareAndSwapInt for updates private...

2020-02-24 20:30:24 181

原创 Java并发编程-volatile详解

文章目录Volatile简述可见性不保证原子性禁止指令重新排序内存屏障:在内存屏障指令的上下的两个指令是禁止重新排序。Volatile简述volatile只能修饰Java中的属性,可以保证可见性,禁止指令重排序,不保证原子性可见性每一个线程在创建的时候都会从主内存中复制一份数据,到自己的工作内存中。而多个线程同时运行,每个线程都会从主内存的copy一份数据,各自的工作内存互不影响。...

2020-02-22 19:02:14 139

转载 Redis缓存中间件-缓存雪崩、缓存击穿、缓存穿透

文章目录缓存雪崩解决方案缓存穿透解决方案缓存击穿解决方案缓存雪崩举个栗子:如果所有首页的key失效时间都是晚上零点,中午12点刷新,我零点有个秒杀活动,每秒会进入大量的请求,在零点大量key失效,大量请求进入到数据库,数据库扛不住。真实情况可能DBA都没反应过来就直接挂了。此时,如果没用什么特别的方案来处理这个故障,DBA 很着急,重启数据库,但是数据库立马又被新的流量给打死了。这就是我理解的...

2020-02-06 21:10:01 236

原创 Redis缓存中间件-基础

文章目录Redis缓存中间件-基础基本数据结构持久化如果中途断电会怎么样RDB原理Pipeline有什么好处,为什么用Redis缓存中间件-基础基本数据结构String:普通的set和get,做简单的KV缓存、计数器和共享用户session。Hash:类似Map,一般存储结构化的数据(简单的对象),Hash的应用场景比较单一(现在的对象内部也嵌套一堆对象不适合Hash)。Li...

2020-02-06 20:24:47 487

原创 SQL查询优化

SQL查询优化避免在where子句中对字段进行null值判断,可以在插入时将null值替换成别的避免在where子句中使用“不等号”或“<>”,否则进行全表扫描避免在where子句中使用or来连接条件(or换成in)避免like语句中将%放在最前面避免where子句中对字段进行表达式操作避免where子句中对字段进行函数操作避免where子句中“等号”左边进行函数、算数...

2020-02-06 10:27:04 259

原创 SQL索引

索引索引概念、索引模型索引是一种数据结构,能够帮助我们快速的检索数据库中的数据数据结构:Hash索引和B+树优缺点Hash索引低层是哈希表,哈希表是一种KV存储数据的结构,数据存储上没有任何顺序,区间查询无法直接通过索引,可以做等值查询,不支持最左匹配规则。如果存在大量重复键,哈希索引效率会很低,存在哈希碰撞问题B+ Tree是一种多路平衡查询树,节点天然有序,叶子节点存储了整行数据...

2020-02-06 10:06:48 157

原创 Java基础-Map集合(HashMap,ConcurrentHashMap)

HashMap注:底层是由数组和链表组合构成的数据结构,数组中每一个元素都是key-value形式且数组长度是有限的,在有限的长度里面我们使用哈希,哈希本身就存在概率性,就存在hash冲突问题,出现冲突时采用链表的方式把hash冲突的元素链接起来,每一个节点都会保存自身的hash、key、value、以及下个节点。注:hashmap初始化大小长度为16(实现均匀分布)HsahMap扩容机制...

2020-01-10 13:51:31 483

原创 Java基础-List集合源码(ArrayList、LinkedList)

List集合ArrayList(数组集合)注:底层由数组实现,存储的元素长度可变,查询效率高,增删效率低,线程不安全。使用频率很高创建时: 通过无参构造方法的方式ArrayList()初始化,则赋值底层数Object[] elementData为一个默认空数组Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}所以数组容量为0,只有真正对数据进行添...

2020-01-10 10:21:48 168 1

原创 Java基础-容器集合(Collection)

集合(Collection)Java是一门面向对象的语言,就免不了处理对象为了方便操作多个对象,那么我们就得把这多个对象存储起来想要存储多个对象(变量),很容易就能想到一个容器常用的容器我们知道有–>StringBuffered,数组(虽然有对象数组,但是数组的长度是不可变的!)所以,Java就为我们提供了集合(Collection)~数组和集合的区别长度区别:数组长度固...

2020-01-09 10:51:30 149

原创 Java基础-对于JRE和JDK、JVM的简单理解

JVMJava虚拟机(JVM)运行Java字节码的虚拟机。JVM针对不同的系统的特定实现,目的使Java程序实现相同的功能采用字节码的好处?什么是字节码?JVM理解的代码字节码(.class),不面向任何处理器,只面向JVM。Java语言通过虚拟机实现了跨平台的移植,一定程度上解决了传统解释性语言效率低的问题。从源码到运行的三步.java文件(源代码)经过编译(javac).class文...

2019-09-04 15:18:43 166

原创 Java基础-Java的特点(封装、继承、多态)

简单易学封装,多态,继承跨平台可靠性安全性支持多线程支持网络编程编译与解释并存

2019-09-04 10:53:45 132

原创 Java基础-面向对象与面向工程的区别

面向对象与面向工程的区别面向对象:易维护,易扩展,易复用,面向对象具有封装、多态、继承的特性,面向对象的程序具有更高的灵活性,更加容易维护,性能比面向过程低面向过程:性能比面向对象高(Java半编译语言,最终执行代码不是CPU直接执行的二进制机械码,面向过程直接编译为二进制机械码)...

2019-09-04 10:44:51 361

原创 String StringBuffer StringBuilder

String StringBuffer StringBuilderStringStringBufferStringBuilderString StringBuilder StringBuffer的使用字符串常量池总结StringString是一个被final修饰的最终类,hash没有被final修饰,每次修改字符串都会创建对象StringBufferStringBuffer是为了解决...

2019-09-03 16:20:10 392

空空如也

空空如也

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

TA关注的人

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