- 博客(24)
- 收藏
- 关注
原创 java中遇到break findIndex解析
在学习CopyonWriteArrayList的源码中,发现了这么一段代码:private boolean remove(Object o, Object[] snapshot, int index) { //加锁 final ReentrantLock lock = this.lock; lock.lock(); try { //获取数组 Object[] current = getArray
2021-10-28 15:59:13
349
1
原创 ArrayList源码学习---removeRange方法
为什么会单独提removeRange方法因为在查看ArrayList源码中,发现了removeRange方法,在此之前,工作中经常用到ArrayList,对于删除,好像只有remove方法,或者使用subList来进行删除,的确重来没有用过removeRange方法,首先先来看看removeRange方法的源码:protected void removeRange(int fromIndex, int toIndex) { modCount++; int numMoved
2021-10-09 11:39:19
556
原创 微服务-分布式事物解决方案
什么是事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。提到事物这里就必须得提事务的四个特性什么是ACID事务的定义和实现一直随着数据管理的发展在演进,当计算机越来越强大,它们就能够被用来管理越来越多数据,最终,多个用户可以在一台计算机上共享数据,这就导致了一个问题,当一个用户修改了数据而另外一个还在使用旧数据进行计算过程中,这里就需要一些机制来保证这种情况不会发生。AC
2021-09-18 14:41:16
276
原创 算法-八大排序
算法-八大排序冒泡排序(Bubble Sort)原理冒泡排序是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数组,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续
2021-07-08 22:32:12
157
2
原创 数据结构和算法学习:链表
链表链表是有序的列表,但是它在内存中是存储如下链表是以节点的方式来存储,是链式存储每个节点包含 data 域, next 域:指向下一个节点.如图:发现链表的各个节点不一定是连续存储.链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定单链表单链表(带头结点) 逻辑结构示意图如下代码实现class SingleLinkedList{ //设置头结点 HeroNode heroNode = new HeroNode(0); //添加节点到单向链表
2020-07-10 16:11:52
130
原创 数据结构和算法学习:队列(顺序)
队列队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出示意图:(使用数组模拟队列示意图)数组模拟队列队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量。因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front及 rear分别记录队列前后端的下标,front 会随着数据输出而改变,而 rear则是随着数据输入而改变,如图所示:当我们
2020-07-10 15:05:10
248
原创 数据结构和算法学习:稀疏数组
稀疏数组稀疏数组可以看做是普通数组的压缩,但是这里说的普通数组是值无效数据量远大于有效数据量的数组意义一个二维数组中有大量位置是空着的,这样存储会浪费很多内存空间,这时可以采用稀疏数组来存储数据,大量减少内存空间。二维数组 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2020-07-10 11:28:24
128
原创 SpringBoot注解分析
SpringBoot注解分析常用注解@Component放在类上,把普通类实例化到spring容器中。大多数注解都基于这个注解@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Indexedpublic @interface Component { /** * The value may indicate a suggestion for a logical component name,
2020-07-01 15:32:17
554
原创 Spring Data Jpa自定义方法关键字
Spring Data Jpa自定义方法关键字关键字方法名举例对应的SQLAndfindByNameAndAgewhere name = ? and age = ?OrfindByNameOrAgewhere name = ? or age = ?IsfindByNameIswhere name = ?EqualsfindByNameEqua...
2020-04-23 15:25:19
370
原创 Docker安装ElasticSearch
ElasticSearchElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、...
2020-03-16 22:46:50
139
原创 Docker安装FastDFS
FastDFSFastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群...
2020-03-16 22:42:42
908
原创 SpringCloud学习
SpringCloud学习微服务介绍SpringCloud介绍分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务栈解决方案。SpringCloud和SpringBoot的关系一个偏宏观,一偏微观boot就是医院里面一个一个的科室,而Cloud就是把boot组合起来的提供对外的综合医院。springboot可以单独使用,它不依赖于springcloud...
2020-03-07 21:29:50
175
1
原创 Redis安装以及常用操作
Redis安装以及常用操作Redis介绍Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis安装Docker版安装docker pull redis配置redis.conf进入或者创建 /usr/local/docker/redis 目录下创建redis.confcd /usr/lo...
2020-03-02 12:16:01
143
原创 Docker的安装以及使用
DockerDocker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker 的安装1 如果有旧版本,建议先删除旧版本$ sudo yum remove docker \ docker-...
2020-02-28 11:24:05
124
原创 线程池的核心参数以及执行流程
线程池线程池类型newFixedThreadPool创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。在任意点,在大多数 nThreads 线程会处于处理任务的活动状态。如果在所有线程处于活动状态时提交附加任务,则在有可用线程之前,附加任务将在队列中等待。如果在关闭前的执行期间由于失败而导致任何线程终止,那么一个新线程将代替它执行后续的任务(如果需要)。在某个线程被...
2020-02-24 20:51:39
2443
4
原创 RabbitMQ拓展
RabbitMQ拓展TTL队列/消息TTL是Time To Live的缩写, 也就是生存时间RabbitMQ支持消息的过期时间, 在消息发送时可以进行指定RabbitMQ支持队列的过期时间, 从消息入队列开始计算, 只要超过了队列的超时时间配置, 那么消息会自动清除生产者import com.rabbitmq.client.Channel;import com.rabbitmq....
2020-02-12 19:55:36
271
原创 SpringMVC流程
SpringMVC执行流程SpringMVC介绍Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架。Sp...
2020-02-09 16:10:18
123
原创 HashMap实现原理
HashMap实现原理JDK1.7HashMap(提一下,后面就不提了)JDK1.7HashMap底层是由数组加链表的形式组成模型JDK1.8HashMapJDK1.8HashMap底层是由数组加链表以及红黑树实现的模型HashMap常见的变量默认大小static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;HashM...
2020-02-08 22:21:13
154
原创 Java操作RabbitMQ队列
Java操作RabbitMQ队列环境配置maven配置 <dependencies> <!-- 引入队列依赖 --> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp...
2020-02-07 16:21:38
817
原创 RabbitMQ用户和virtual hosts的添加以及授权
RabbitMQ的使用用户1、超级管理员(administrator)可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。2、监控者(monitoring)可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)3、策略制定者(policymaker)可登陆管理控制台, 同时可以对policy进行管理。但无法查...
2020-02-05 13:16:42
1730
原创 Rabbit下载以及安装
RabbitMQ介绍RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。RabbitMQ下载因为RabbitMQ是基于Erlang语言编写,所以下载RabbitMQ需要先安装ErlangErlang下载以...
2020-02-04 22:22:29
4096
原创 Shiro整合SpringBoot实现登录认证
这里写自定义目录标题Shiro整合SpringBootShiro以及SpringBoot环境配置mvaen环境配置实体类的创建User类的创建UserVo的创建解释一下VoUserVo代码块SpringBoot的配置application.properties中的配置application.yml中的配置配置合并Shiro的配置ShiroConfig文件UserRealm.java文件Contro...
2020-01-31 15:33:43
253
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人