自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 字节跳动高频算法笔记

public List<List<Integer>> zigzagLevelOrder(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>(); List<List<Integer>> res = new ArrayList<>(); if (root != null) { queue..

2021-02-24 17:16:43 443 1

原创 剑指Offer刷题笔记

题目描述:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).import java.util.*;public class Solution { public int FirstNotRepeatingChar(String str) { if(str==null||str.length()==0) return -1; Map<Characte

2021-01-21 16:33:43 206 2

转载 CAP定理以及BASE定理详解

CAP定理C:Consistency(一致性)、A: Availability(可用性)、P: Partition Tolerance(分区容错性)一致性:所有的节点访问同一份数据副本。就是我写入的是什么,访问的数据就是什么。可用性:在集群中一部分节点出现故障之后,整个分布式系统是否还能响应用户的读写请求。分区容错性:分区容错就是某节点或者网络分区出现故障的时候,分布式系统仍然能对外提供满足一致性或者可用性的服务。...

2020-11-23 23:28:41 460

原创 spring事务总结

一.Spring事务的原理首先啊 我们得明白,其实Spring事务的实现是依赖数据中的事务的,没有数据库事务的支持,Spring是实现不了事务的!在我们使用了Spring事务之后,我们就不用自己手动的开启事务和关闭事务了,因为,Spring事务的实现是依赖于Spring AOP来实现的。这些操作都已经交由给AOP生成的代理类来帮我们做了。二.Spring什么情况下进行事务回滚?Spring 事务回滚机制:当我们拦截的方法出现了指定的异常,事务才会自动进行回滚。因此如果我们自己捕获异常,如下:@S

2020-11-22 23:29:01 120

原创 Mysql的事务与锁之间的关系

一.事务:ACID如转账业务:A – B 1000A -1000B +1000二.事务并发引起的问题·脏读不可重复读幻读隔离级别:读未提交 (脏读,不可重复读,幻读)这个级别对数据是没有加锁的,就是最低的级别的读已提交就是事务A只能读取到事务B提交后的数据,如果B没提交,A读取到的是之前的数据,而不是B修改后的数据。可以去除脏读(没提交的数据是读不到的)了 (不可重复读,幻读)不可重复读:如A读到数据 a=100,此时B修改a=120提交了(未提交A读到的还是a=1

2020-11-21 23:47:01 1077

原创 招银网络面试

1.float类型+double类型最后会转化成什么类型?double类型float属于单精度浮点数据,只能提供7位有效数字double属于双精度浮点数据,只能提供16位有效数字所以double的精度要比float 要高。 double可以保存小数点后16位,float只能保存7位,所以float是可以自动转为 double,而float转double的时候会损失精度还有 float 类型是 float32位 4字节double类型是 64位8字节天生注定了 只能是 float 可以 转为 d

2020-11-19 23:32:06 393

原创 剑指Offer刷题笔记·

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:我们可以根据二维数组的特性,在查找数组里是否有这个整数时,我们可以按行和列去查找。我们可以看到以上二维数组的存储则:行数:int row = (int)array.length;列数:int col = (int)array[0].length;1.有了行和列,我们就得在数组中选取一个数去

2020-11-19 13:19:30 157

原创 Redis学习(三)一springboot整合Lettuce

Redis客户端JedisLettuce为什么用Lettuce1.Jedis在实现上是直连redis server,连接实例可以在多个线程间共享,多线程环境下非线程安全,除非使用连接池,为每个Jedis实例增加物理连接。当连接数量增多时,物理连接成本就较高了。2.Lettuce基于Netty的连接实例(StatefulRedisConnection),可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例。netty

2020-11-05 11:01:28 745

原创 Redis学习(二)一Redis数据类型与命令

Redis命令Redis支持五种数据类型:String(字符串),hash(哈希),set(集合),list(列表)以及zset(sorted set:有序集合)等。常用命令key管理keys * :返回满足的所有键,可以模糊匹配 比如 keys abc* 代表abc开头的keyexists key:是否存在指定的key,存在返回1,不存在返回0expire key second:设置某个key过期时间 时间为秒del key:删除某个keyttl key:查看剩余时间,当某个key不存

2020-11-05 11:00:38 66

原创 Redis学习(二)一Redis数据类型与命令

Redis命令Redis支持五种数据类型:String(字符串),hash(哈希),set(集合),list(列表)以及zset(sorted set:有序集合)等。常用命令key管理keys * :返回满足的所有键,可以模糊匹配 比如 keys abc* 代表abc开头的keyexists key:是否存在指定的key,存在返回1,不存在返回0expire key second:设置某个key过期时间 时间为秒del key:删除某个keyttl key:查看剩余时间,当某个key不存

2020-11-05 10:59:55 110

原创 Redis学习(一)一Redis介绍与安装

Redis是简介Redis 是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。NoSQL介绍NoSQL,泛指非关系型的数据库。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其

2020-11-05 10:59:22 162

转载 Springboot+Mybatis Plus进阶详细讲解(03)

作者:茶还是咖啡链接:https://www.jianshu.com/p/5c9e6acf9a70来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。建表DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` bigint(20) NULL DEFAULT NULL COMMENT '主键', `name` varchar(32) CHARACTER SET utf8 COLLATE utf8_gene.

2020-11-05 10:58:45 99

转载 Springboot+Mybatis Plus详细讲解(02)

自定义SQL作者:茶还是咖啡链接:https://www.jianshu.com/p/12ec123d20e8来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1.在resources资源文件夹下新建mapper文件夹将mapper文件夹的路径配置到配置文件中mybatis-plus: mapper-locations: mapper/*.xml2.在mapper 文件夹中新建UserMapper.xml。3.像mybatis那样在UseMapper

2020-11-05 10:57:57 154

原创 Springboot+Mybatis Plus详细讲解(01)

SpringBoot第一个简单应用大部分内容借鉴一下博客(侵权即删)作者:茶还是咖啡链接:https://www.jianshu.com/p/12ec123d20e8来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1.数据库建表#创建用户表CREATE TABLE user ( id BIGINT(20) PRIMARY KEY NOT NULL COMMENT '主键', name VARCHAR(30) DEFAULT NULL COMM

2020-11-05 10:57:05 234

原创 Mybatis-Plus入门学习

Mybatis-Plus注:本文大部分参考以下的博客内容作者:贪挽懒月链接:https://www.jianshu.com/p/ceb1df475021来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。前言:mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。

2020-11-05 10:55:57 178

原创 Linux学习(一)

文件及目录管理命令1.拷贝文件>cp [-n  -i  -r] 源文件 目标文件    cp      /etc/passwd   /tmp    cp  -r  /etc/yum      /tmp    cp  &nbsp

2020-11-05 10:55:00 117

原创 springboot项目阿里云服务器部署详细过程

springboot项目阿里云服务器部署详细过程首先用一张图来说明一下整个的部署流程(网上借鉴的图)服务器相关配置1.(购买服务器过程就不阐述了)这个是我在阿里云已经购买好的服务器2.之后就是进入安全组添加放行端口,因为只有添加了相应的端口,在之后的访问才不会被拦截!3.回到“实例列表”,点击 实例ID 进入服务器,点击 ”远程连接“,输入6位连接密码,就可以看到我们的服务器了。忘记密码的可以重置密码:密码是连接你的服务器要用的,所以要记住。Xshell 的安装使用为什么我们要

2020-11-05 10:54:11 2920 1

原创 速游面试

1.redis2.GC(分代)(年轻代为什么分3个区)为什么是两个区呢? 其实就是为了解决内存碎片的问题,假设我们只有两个区,我们新产生的对象都会先加入到eden区嘛,待eden区满了就会进行yong gc,此时就会采用复制算法将存活的对象复制到survivor区,那么待第二次eden区满了之后,再将存活对象复制到survivor区就会出现内存碎片了,因为复制算法不会对空间进行压缩嘛。那为什么要采取3个区呢?最重要就是保证进行yong gc时,在进行eden区和s0区对象拷贝到s1区时能

2020-11-01 23:37:22 372

原创 HashMap与HashTable

HashMap与Hashtable区别1.(同分性)Hashtable是同步的,里面的方法都加了synchronized,所以是线程安全的,但是效率会很低,因为所有的线程进来都要排队。所以一般选用concurrentHashMap来实现线程安全,它是使用分段锁来实现的,不是全部锁住。2.(继承的父类不同)hashtable是继承了Dictionary类,而hashMap是继承了AbstractMap类3.(对null key 和null value支持不同)hashtable不允许null值(key和

2020-10-18 23:06:40 6443 1

原创 操作系统基础

进程间的通信的几种方式匿名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。有名管道通信:半双工的通信方式,但是它允许无亲缘关系进程间的通信。消息队列通信:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,.

2020-09-04 17:21:16 124

转载 Redis面试

Redis是单线程操作Redis的数据存储结构:String 结构:Hash结构:(存储对象)List结构:应用场景:LRANGE:区间获取。Set:ZSet:(有序集合),按照score大小排序redis持久化:因为redis是基于内存运行的,所以当redis关闭服务的话,内存中的数据就不存在了,这样就需要一种持久化的技术来将我们的数据写入磁盘进行保存。RDB:(默认开启的)原理是Redis会单独创建(fork)一个与当前线程一摸一样的子线

2020-09-04 17:20:40 465

原创 Redis三大问题

缓存穿透:(数据不存在)缓存和数据库都没有的数据,每次查询都到数据库去查,造成数据库性能浪费。(加入缓存记得要添加过期时间)解决:缓存空对象 (实现简单,效果不好)布隆过滤器 (实现复杂,效果好)1.缓存空对象实现:一.空对象:没查到加入空对象到缓存中效果:不好,第一次访问还是会去查询数据库,更换了id去查的话也还是会去查询数据库,只能解决一个key多次访问的问题,多个key就不行。其次还会导致redis存在大量的空数据,浪费空间。二.布隆过滤器:应用:导入依赖:(谷歌的)

2020-09-04 17:20:32 709

原创 spring bean生命周期

过程(背下来)没后置处理器的执行步骤。接口可以有默认实现了,jdk1.7之后都可以,就像接口BeanPostProcessor的方法有默认接口实现。然后让其注入容器中。然后就跑我们自定义的后置处理器。Spring上下文中的Bean也类似,【Spring上下文的生命周期】实例化一个Bean,也就是我们通常说的new按照Spring上下文对实例化的Bean进行配置,也就是IOC注入如果这个Bean实现了BeanNameAware接口,会调用它实现的setBeanName(Strin.

2020-09-04 17:20:25 74

原创 synchronized笔记

Java虚拟机不和包括java在内的任何语言绑定,它只与“Class”特定的二进制文件格式关联,Class文件中包含Java虚拟机指令集和符号表以及若干其他辅助信息。本文将以字节码的角度来研究Java虚拟机。

2020-09-04 17:20:18 95

原创 mysql

一般头节点是直接放在内存上的。存储引擎是形容在数据库表的 而不是数据库。frm存储的是表的结构MYI存储的是索引,MYD存储的是数据myisam执行过程:1.先判断col是不是索引,如果是索引,则去MYI文件中查找索引,然乎开始寻找,找到对应的叶子节点后,根据叶子节点中存储的地址到MYD文件中查询,查询成功后就将整行数据返回。innodb执行过程:ibd文件就是B+树。为什么InnoDB表必须有主键。并且推荐使用整型的自增主键:1、如果设置了主键,那么InnoDB会选择主键作.

2020-09-04 17:20:01 90

空空如也

空空如也

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

TA关注的人

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