自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JavaSDK上传文件到阿里云对象存储oss

【代码】JavaSDK上传文件到阿里云对象存储oss。

2022-10-31 19:23:18 374 1

原创 @RequestMapping注解

— {“params1 = value1”, “param2”}:表示请求必须包含名为params1和params2两个请求参数,且params1的值必须为value1。—— /user/**/createUser 匹配/user/createUser、/user/aaa/bbb/createUser等URL (**匹配任意多层路径)—— /user/*/createUser 匹配/user/aaa/createUser、/user/bbb/createUser等URL (*匹配任意字符)

2022-10-13 09:42:45 931

原创 @Responsebody注解作用

需要注意的呢,在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。那么在前台接收到的数据为:’{“userName”:“xxx”,“pwd”:“xxx”}’1、@responseBody注解的作用是。User字段:userName pwd。

2022-10-13 09:23:22 269

原创 Spring中bean 的生命周期

10、Spring容器关闭时调用DisposableBean的destorv()方法;7、调用BeanPostProcessor的初始化后方法,此处会进行AOP;4、回调实现了Aware接口的方法,如BeanNameAware;2、通过BeanDefinition反射创建Bean对象;5、调用BeanPostProcessor的初始化前方法;8、将创建的Bean对象放入一个Map中;3、对Bean对象进行属性填充;6、调用init初始化方法;9、业务使用Bean对象;

2022-10-05 18:54:22 101

原创 MySQL的索引结构是什么样的?聚簇索引和非聚簇索引又是什么?

B+树:1、非叶子节点不存储数据,只进行数据索引。3、每个叶子节点都存有相邻叶子节点的指针。B-树:1、B-树的每个非叶子节点的子节点个数都不会超过D(这个D就是B-树的阶)2、所有的叶子节点都在同一层。->将name上的索引升级成为(name,sex)的联合索引。二叉树:每个节点最多只有两个子节点,左边的子节点都比当前节点小,右边的子节点都比当前节点大。3每个叶子节点都是黑色的空节点。5从任一节点到其每个叶子节点的所有路径都包含相同的黑色节点。二叉树-》AVL树-》红黑树-》B-树-》B+树。

2022-09-29 18:35:47 230

原创 什么是脏读、幻读、不可重复读?要怎么处理?

1、脏读:在修改时加排他锁,直到事务提交才释放。读取时加共享锁,读完释放锁。:在一个事务过程中,用同样的操作查询数据,得到的记录数不相同。这些问题都是MySQL进行事务并发控制时经常遇到的问题。2、不可重复读:读数据时加共享锁,写数据时加排他锁。:在事务进行过程中,读到了其他事务未提交的数据。处理的方式有很多种:加锁、事务隔离、MVCC。在一个事务过程中,多次查询的结果不一致。3、幻读:加范围锁。

2022-09-28 12:40:34 1423

原创 简述mysql中索引类型及对数据库的性能的影响

通过建立倒排索引,可以极大的提升检索效率解决判断字段是否包含的问题,是目前搜索引擎使用的一种关键技术。索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大,如果非聚集索引很多,一旦聚集索引改变,那么所有非聚集索引都会跟着变。是一种特殊的唯一索引,在一张表中只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字PRIMARY KEY 来创建。通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。可以保证数据记录的唯一性。

2022-09-28 10:51:44 381

原创 简述MylSAM和InnoDB的区别

一个InnoDb引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制,一个表可能分布在多个文件里),也有可能为多个(设置为独立表空,表大小受操作系统文件大小限制,一般为2G),受操作系统文件大小的限制;采用非聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本一致,但是辅索引不用保证唯—性。支持ACID的事务,支持事务的四种隔离级别;不支持事务,但是每次查询都是原子的;支持表级锁,即每次操作是对整个表加锁;一个MYISAM表有三个文件:索引文件、表结构文件、数据文件;

2022-09-28 10:36:23 344

原创 ACID靠什么保证的?

如果前面 prepare 成功,bin1og 写盘,再继续将事务日志持久化到 bin1og,如果持久化成功,那么、工nnoDB事务则进入commit状态(在 redo log里面写一个 commit记录)D持久性由内存+redo log来保证,mysql修改数据同时在内存和redo log记录这次操作,宕机的时候可以从redolog恢复。A原子性由undo log日志保证,它记录了需要回滚的日志信息,事务回滚时撤销已经执行成功的sql。C一致性由其他三大特性保证、程序代码要保证业务上的一致性。

2022-09-28 10:19:10 128

原创 事物的隔离级别

用户开启事务读取id=1用户,查询到age=10,再次读取发现结果=20,在同一个事务里同一个查询读取到不同的结果叫做不可重复读。用户本来应该读取到id=1的用户age应该是10,结果读取到了其他事务还没有提交的事务,结果读取结果age=20,这就是脏读。串行,一般是不会使用的,他会给每一行读取的数据加锁,会导致大量超时和锁竞争的问题。可重复复读,这是mysql的默认级别,就是每次读取结果都一样,但是有可能产生幻读。读未提交,可能会读到其他事务未提交的数据,也叫做脏读。

2022-09-28 10:12:49 111

原创 mysql锁的类型有哪些

如果当事务A加锁成功之后就设置一个状态告诉后面的人,已经有人对表里的行加了一个排他锁了,你们不能对整个表加共享锁或排它锁了,那么后面需要对整个表加锁的人只需要获取这个状态就知道自己是不是可以对表加锁,避免了对整个索引树的每个节点扫描是否加锁,而这个状态就是意向锁。也属于行锁的一种,并且它是INNODB的行锁默认算法,总结来说它就是记录锁和间隙锁的组合,临键锁会把查询出来的记录锁住,同时也会把该范围查询内的所有间隙空间也会锁住,再之它会把相邻的下一个区间也会锁住。基于锁的状态分类:意向共享锁、意向排它锁。

2022-09-28 09:39:27 103

原创 mysql索引的数据结构,各自优劣

如果是范围查询检索,这时候哈希索引就毫无用武之地了,因为原先是有序的键值,经过哈希算法后,有可能变成不连续的了,就没办法再利用索引完成范围查询检索;如果是范围查询检索,这时候哈希索引就毫无用武之地了,因为原先是有序的键值,经过哈希算法后,有可能变成不连续的了,就没办法再利用索引完成范围查询检索;索引的数据结构和具体存储引擎的实现有关,在MySQL中使用较多的索引有Hash索引,B+树索引等,InnoDB存储引擎的默认索引实现为:B+树索引。因此,B+树索引被广泛应用于数据库、文件系统等场景。

2022-09-28 08:41:24 285

原创 mysql聚簇和非聚簇索引的区别

表数据存储在独立的地方,这两颗B+树的叶子节点都使用一个地址指向真正的表数据,对于表数据来说,这两个键没有任何差别。在聚簇索引之上创建的索引称之为辅助索引,辅助索引访问数据总是需要二次查找,非聚簇索引都是辅助索引,像复合索引、前缀索引、唯一索引,辅助索引叶子节点存储的不再是行的物理位置,而是主键值。·聚簇索引:将数据存储与索引放到了一块、并且是按照一定的顺序组织的,找到索引也就找到了数据,数据的物理存放顺序与索引顺序是一致的,即:只要索引是相邻的,那么对应的数据一定也是相邻地存放在磁盘上的。

2022-09-28 08:16:25 397

原创 mysql读写分离

索引用来快速地寻找那些具有特定值的记录。如果没有索引,一般来说执行查询时遍历整张表。4.在查询的时候,先拿到倒排表内容,再取出数据地址链,从而拿到具体数据。索引的原理:就是把无序的数据变成有序的查询。1.把创建了索引的列的内容进行排序。3.在倒排表内容上拼上数据地址链。2.对排序结果生成倒排表。

2022-09-28 08:05:00 116

原创 mysql读写分离

mysql读写分离

2022-09-28 08:01:28 140

原创 谈一下MySQL中的死锁

通过innodblockwait_timeout来设置超时时间,一直等待直到超时;发起死锁检测,发现死锁之后,主动回滚死锁中的某一个事务,让其它事务继续执行。死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁。InnoDB Lock Monitor打开锁监控,每15s输出一次日志。使用完毕后建议关闭,否则会影响数据库性能。使用命令show engine innodb status查看最近的一次死锁。

2022-09-27 22:31:26 111

原创 请说下事务的基本特性

2.一致性指的是数据库总是从一个一致性的状态转换到另外一个一致性的状态。比如A转账给B100块钱,假设中间sql执行过程中系统崩溃A也不会损失100块,因为事务没有提交,修改也就不会保存到数据库。1.事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性指的是一个事务中的操作要么全部成功,要么全部失败。3.隔离性指的是一个事务的修改在最终提交前,对其他事务是不可见的。持久性指的是一旦事务提交,所做的修改就会永久保存到数据库中。

2022-09-27 22:05:29 124

原创 MylSAM和InnoDB的区别是什么?

聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB必须要有主键,通过主键索引效率很高。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而MyISAM是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。5.InnoDB最小的锁粒度是行锁,MyISAM最小的锁粒度是表锁。而MylSAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;而MylSAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;

2022-09-27 22:00:01 468

原创 linux查看日志的命令

这个命令可以查找日志文件特定的一段 , 根据时间的一个范围查询,可以按照行号和时间范围查询。sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。

2022-09-27 10:35:54 243

原创 Linux命令

mv 123.txt /home/456.txt 将文件123.txt移动到/home目录下并重命名为456.txt。cp -r [目录绝对路径1] [目录绝对路径2] 将目录1复制到目录2。mv[文件1][目录2] 将文件1移动到目录2下。mv [目录1] [目录2] 将目录1移动到目录2下。ls [路径]:列出指定路径下的所有目录和文件。

2022-09-26 17:26:04 401

原创 git的常用命令

git pull origin master 把远程仓库的master分支文件拉取到本地仓库的master分支(有本地仓库的情况下)git push origin dev:dev 将本地的dev分支推送到远程仓库,如果远程没有dev分支就创建。git push origin master 将本地仓库的master分支推送到远程仓库的master分支。git clone 【仓库的url】 把远程仓库克隆到本地(没有本地仓库的情况下用)注意:在哪个分支创建新分支,就会复制该分支的所有内容到新分支。

2022-09-25 14:07:41 122

原创 集合总结!

HashSet: 底层是HashMap, value位置用new Object固定对象填充,数组+链表+红黑树,数组初始长度为16,元素个数到达加载因子*数组长度时进行扩容,2倍扩容,当链表长度到达8及以上并且数组长度到达64,链表会转化为红黑树。Hashtable: 线程安全的,可用有参构造器指定长度创建,用无参构造器创建,默认长度为11,到达总长度*加载因子的值时进行扩容,2n+1倍扩容。vector:线程安全,底层是数组,初始长度为10,当储存空间不够时扩容,2倍扩容。

2022-09-24 11:30:08 194

原创 LinkedHashSet的全面说明

2)LinkedHashSet底层是一个 LinkedHashMap,底层维护了一个数组+双。3) LinkedHashSet根据元素的hashCode值来决定元素的存储位置,同时使。用链表维护元素的次序(图),这使得元素看起来是以插入顺序保存的。1) LinkedHashSet是 HashSet的子类。4) LinkedHashSet不允许添重复元素。

2022-09-24 11:03:54 114

原创 Collections工具类

2) Object max(Collection, Comparator):根据Comparator 指定的顺序,5) int frequency(Collection, Object):返回指定集合中指定元素的出现次数。6) void copy(List dest,List src):将src中的内容复制到dest中。1) Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素。Collections工具类。替换List 对象的所有旧值。返回给定集合中的最大元素。

2022-09-24 08:03:53 57

原创 遍历Map集合

遍历Map的几种方式

2022-09-24 07:55:24 89

原创 Map接口和常用方法

2) Map 中的key 和 value可以是任何引用类型的数据,会封装到HashMap$Node·对象中。5) Map的key可以为null, value 也可以为null,注意key为null,只能有一个,7) key 和 value之间存在单向一对一关系,即通过指定的key 总能找到对应的value。Map接口实现类的特点[很实用]注意:这里讲的是JDK8的Map接口特点Map_.java。注意:这里讲的是JDK8的Map接口特点Map_.java。4) Map中的value可以重复。

2022-09-23 19:35:27 168

原创 LinkedHashSet的全面说明.

2)LinkedHashSet底层是一个 LinkedHashMap,底层维护了一个数组+双。3) LinkedHashSet根据元素的hashCode值来决定元素的存储位置,同时使。用链表维护元素的次序(图),这使得元素看起来是以插入顺序保存的。1) LinkedHashSet是 HashSet的子类。4) LinkedHashSet不允许添重复元素。

2022-09-23 18:49:49 357

原创 HashMap是怎么保证元素不可重复的

6.在Java8中,如果一条链表的元素个数超过TREEIFY_THRESHOLD(默认是8),并且table的大小>=MIN TREEIFY CAPACITY(默认64).就会进行树化(红黑树)5.如果有,调用equals比较,如果相同,就放弃添加,如果不相同,则添加到最后。3.找到存储数据表table,看这个索引位置是否已经存放的有元素。2.添加一个元素时,先得到hash值-会转成->索引值。1. HashSet底层是HashMap。4.如果没有,直接加入。

2022-09-22 19:37:58 896

原创 throw和throws的区别

throws:处理异常的方式。使用在方法声明处的末尾try-catch-finally。throw:生产一个异常对象,并抛出。使用在方法的内部自动抛出异常对象。

2022-09-20 18:34:00 68

原创 谈谈你对程序,进程,线程的理解

进程:是程序的一次执行过程,或是正在运行的一个程序是一个动态的过程,有它自身的产生,存在和消亡的过程。程序:是完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象。线程:进程可进一步细化为线程,是一个程序内部的一条执行路径。

2022-09-20 11:38:02 228

原创 Array和ArrayList有何区别?什么时候更适合用Array

若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组。ArrayList就是动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了动态的增加和减少元素,实现了ICollection和IList接口,灵活的设置数组的大小等好处。对象所包含的方法不同。

2022-09-19 16:51:36 578

原创 如何决定选用HashMap还是TreeMap

对于在Map中插入、删除和定位元素这类操作,HashMap是最好的选择。然而,假如你需要对一个有序 的key集合进行遍历,TreeMap是更好的选择。基于你的collection的大小,也许向HashMap中添加元 素会更快,将map换为TreeMap进行有序key的遍历。

2022-09-19 16:47:38 232

原创 Java反射的作用于原理

Java反射

2022-09-19 15:03:49 70

原创 Java 中 IO 流分为几种?

Java 中 IO

2022-09-19 15:01:32 394

原创 HashMap和HashTable、ConcurrentHashMap区别?

HashMap和HashTable、ConcurrentHashMap区别?

2022-09-19 14:56:22 226

原创 jdk1.8新特性

jdk1.8

2022-09-18 07:49:43 536

原创 sleep()方法与wait()方法的区别

sleep()方法与wait()方法的区别

2022-09-17 11:06:21 265

原创 Linux中docker常用命令

Linux中docker常用命令

2022-09-17 10:25:32 230

原创 Linux安装docker

Linux,docker

2022-09-17 09:45:47 65

原创 linux安装JDK1.8

Linux安装JDK

2022-09-17 09:29:14 120

空空如也

空空如也

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

TA关注的人

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