- 博客(195)
- 资源 (35)
- 收藏
- 关注

原创 下载和运行GitHub上的代码教程总结
从昨天开始就想着从GitHub上下载一个开源的Vue的实战项目,希望能从中学习更多的Vue的实用内容,结果搞了半天好不容易下载了,不知道怎么弄。然而,今天终于成功了,激动地我赶紧来记录一下。如何从GitHub上下载自己需要的项目:1.首先,你要有一个自己的GitHub(https://github.com/)的账号。关于如何注册GitHub的账号以及如何获取你的SSH密钥这个问题,请大家参...
2018-06-16 19:27:35
285331
20
原创 Spring Boot 中@Scheduled是单线程还是多线程?
在开发Spring Boot应用程序时,定时任务是一项常见的需求。Spring Boot提供了`@Scheduled`注解,可用于将方法标记为定时任务,并在预定的时间间隔内执行。那么`@Scheduled`注解的执行方式是单线程执行,还是多线程执行?`@Scheduled`注解的执行方式会不会产生线程不安全的问题?
2024-03-14 23:14:29
3499
1
原创 RabbitMQ不公平分发问题分析及问题解决
一旦数量达到配置的数量, RabbitMQ 将停止在通道上传递更多消息,除非至少有一个未处理的消息被确认,例如,假设在通道上有未确认的消息 5、6、7,8,并且通道的预取计数设置为 4,此时 RabbitMQ 将不会在该通道上再传递任何消息,除非至少有一个未应答的消息被 ack。但是实际上,可能由于消费者处理消息的速度不同(可能由于网络因素、配置因素等不同),可能就会导致有些消费者长时间处于空闲状态,有些消费者消息处理不过来,导致消息积压,导致负载不均衡等情况,会严重影响到整个系统的性能。
2023-12-17 15:51:46
2402
原创 RabbitMQ 消息持久化
默认情况下,exchange、queue、message 等数据都是存储在内存中的,这意味着如果 RabbitMQ 重启、关闭、宕机时所有的信息都将丢失。RabbitMQ 提供了持久化来解决这个问题,持久化后,如果 RabbitMQ 发送 重启、关闭、宕机,下次起到时 RabbitMQ 会从硬盘中恢复exchange、queue、message 等数据。
2023-12-17 14:43:05
1340
原创 Typora如何放大查看图片?
我的版本号是1.2.4,而文章中采用的版本号是0.9.98,不同版本的Typora集成LightBox插件的方式会有一些区别。右键Typora 打开文件所在的位置,即可打开Typora 的安装位置(E:\SoftWare\Typora\resources)。
2023-12-17 14:14:46
1684
原创 RabbitMQ 消息应答与发布
消息应答是 RabbitMQ 中的一项重要功能,它确保消息在被消费者处理后得到适当的确认。通过消息应答,消费者可以告知 RabbitMQ 它已经成功处理了一条或多条消息,并且可以安全地从消息队列中删除这些消息。这种机制保证了消息的可靠传递和处理,即使在消费者出现故障或网络问题的情况下也能确保消息不会丢失。本文将深入探讨 RabbitMQ 中的消息应答和发布的概念、原理和最佳实践。
2023-12-16 14:59:00
1855
原创 RabbitMQ入门案例
案例中生产者叫做 Task,一个消费者就是一个工作队列,启动两个工作队列消费消息,这个两个工作队列会以轮询的方式消费消息。假设生产者生产 AA BB CC DD这四条消息,理论上工作线程C1和工作线程C2轮询接收到消息,期望测试结果如下。轮询消费消息指的是轮流消费消息,即每个工作队列都会获取一个消息进行消费,并且获取的次数按照顺序依次往下轮流。创建一个类作为消费者,消费 RabbitMQ 队列的消息,消息消费是通过Channel来完成的。在运行第二个工作线程,此时已经开了两个工作线程,如下。
2023-12-15 22:58:42
1398
原创 MQ入门—centos 7安装RabbitMQ 安装
CentOS 7.xXftpXshell链接:https://pan.baidu.com/s/1ZYVI4YZlvMrj458jakla9A提取码:dyto链接:https://pan.baidu.com/s/1jizYPpc1I-wdZ4WU2hayuw提取码:s7fm链接:https://pan.baidu.com/s/1_4ySPR-HsA9RdWn9D8f2sg提取码:fa6z。
2023-12-15 12:17:55
808
原创 02-MQ入门之RabbitMQ简单概念说明
Broker:接收和分发消息的应用,RabbitMQ Server 就是 Message Broker:出于多租户和安全因素设计的,把 AMQP 的基本组件划分到一个虚拟的分组中,类似于网络中的 namespace 概念。当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出多个 vhost,每个用户在自己的 vhost 创建 exchange/queue 等Connection:publisher/consumer 和 broker 之间的 TCP 连接Channel。
2023-12-15 08:56:52
560
原创 MQ入门简介
MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常 见的上下游「逻辑解耦 + 物理解耦」的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不用依赖其他服务。
2023-12-15 00:25:39
1063
原创 入门Redis学习总结
记录之前刚学习Redis 的笔记, 主要包括Redis的基本数据结构、Redis 发布订阅机制、Redis 事务、Redis 服务器相关及采用Spring Boot 集成Redis 实现增删改查基本功能
2023-12-09 22:39:53
1000
原创 你了解Redis 内存淘汰机制吗?你能讲一下LRU算法和LFU算法吗,如果让你分别实现你会怎么实现?
LFU是一种基于访问频率的内存淘汰策略(最不经常使用,会淘汰掉使用次数最少的数据它假设经常被访问的数据在未来仍然频繁被访问,而较少被访问的数据更可能不再被使用。根据这个策略,LFU算法会淘汰访问频率最低的数据,以释放内存空间。
2023-12-09 21:30:52
1298
原创 Spring Boot 在启动之前还做了哪些准备工作?
Spring Boot作为一个开发框架,提供了简化和加速Spring应用程序开发的能力。在Spring Boot启动过程中,创建容器上下文是一个关键的步骤,它承载了应用程序的各种组件和功能。然而,在创建容器上下文之前,Spring Boot还会进行一系列的准备工作,以确保应用程序能够在正确的配置和环境下运行。本文将总结Spring Boot 启动之前所做的准备工作,以便于更好地理解Spring Boot的启动过程和内部机制。
2023-12-06 20:06:26
1366
原创 说说你所了解的Java代理,有遇到过Spring Aop失效场景吗
3)定义代理类ImageProxy,代理类也实现Image接口,代替目标类RealImage实现display()功能,此外代理类ImageProxy还提供了额外的方法如loadFromDisk(),表示从磁盘中读取图片。2)调用与被调用的方法在同一个类中,如类中方法A调同一个类中的方法B,方法B中使用了AOP注解。:CGlib代理的本质是通过代理类(目标类的子类)调用目标类的方法,由于final 修饰的、static 修饰的 、private 修饰方法子类无法重写因此会出现AOP失效的现象。
2023-12-03 19:48:58
1157
原创 如何查看JDK动态代理自动生成的类
JDK提供了一种强大且灵活的机制,可以在运行时生成代理类。这种动态生成的代理类可以在不修改原始类的情况下,对其方法进行拦截和增强。然而,对于初学者来说,了解生成的代理类的内部结构和工作原理可能会很有帮助。本文将介绍如何查看JDK动态代理生成的代理类。我们将探索一些常见的工具和技术,帮助您深入了解动态代理的运行机制。通过查看生成的代理类,您将能够更好地理解代理模式的实现细节,并在需要时进行调试和排查问题。
2023-12-03 19:01:10
698
原创 SpringBoot 是如何启动一个内置的Tomcat
为什么说Spring Boot框架内置Tomcat 容器,Spring Boot框架又是怎么样去启动Tomcat的?
2023-12-02 23:01:32
704
原创 你了解Redis 的二进制安全吗
最近面试的时候被问到Redis 的二进制安全相关八股文面试题。Redis二进制安全内容比较多,以下是简单的总结大致的过程,需要深入学习的建议跳过
2023-11-27 22:17:27
924
原创 Redis IO多路复用之select、poll和epoll
Redis性能好除了它是基于内存的数据库外,还因为Redis是基于IO多路复用机制。以下总结一下曾经遇到过的一个面试题:你了解IO多路复用机制吗?实现IO多路复用机制的方式有哪些?有什么区别?
2023-11-26 09:55:32
871
原创 设计模式-单例模式
缺点:在类加载时完成实例化,导致类加载的原因可能有很多中,有可能还没开始使用的时候就被实例化,会造成资源浪费。缺点:在类加载时完成实例化,导致类加载的原因可能有很多中,有可能还没开始使用的时候就被实例化,会造成资源浪费。2.当在调用getInstance()时才会调用静态内部类,而且在装载时线程是安全的;优点:写法简单,就是在类加载时就执行静态代码块,避免了线程安全问题。优点:写法简单,就是在类加载的时候完成实例化,避免了线程安全问题。方式二:饿汉式(静态代码块)方式一:饿汉式(静态常量)
2023-11-25 00:20:19
848
原创 MySQL 有多个普通索引时会取哪一个索引?
在面试中,经常被问到索引优化,MySQL的最左前缀等等相关的知识点,但是被问到MySQL优化器选择索引的原理时相信有一部分小伙伴会不知所措,基于以上问题通过简单的demo演示及记录
2023-11-24 23:33:23
1154
原创 JUC并发工具-CAS机制
CAS(Compare and Swap)是一种多线程同步的原子操作,用于解决并发环境下的数据竞争和线程安全问题。像我们平时使用到的JUC并发包下的AtomicInteger、AtomicLong、AtomicLong、AtomicBoolean等等底层都是基于CAS实现的,另外ReentrantLock、ConcurrentHashMap这些底层也是采用CAS机制实现。
2023-11-18 12:04:25
251
原创 JUC工具类_CyclicBarrier与CountDownLatch
CyclicBarrier(循环屏障)是Java中的一个同步辅助类,它允许一组线程相互等待,直到达到某个公共屏障点。它的工作方式是,在所有参与线程都到达屏障之前,它们会一直等待。一旦最后一个线程到达屏障,所有被屏障等待的线程将被释放,可以继续执行后续的任务。CountDownLatch是Java中的一个同步辅助类,它允许一个或多个线程等待其他线程完成操作后再继续执行。
2023-11-18 01:42:15
338
原创 计算机网络基础知识-网络协议
首先udp协议是非连接的,发送数据就是把简单的数据包封装一下,然后从网卡发出去就可以了,数据包之间并没有状态上的联系,正因为udp这种简单的处理方式,导致他的性能损耗非常少,对于cpu,内存资源的占用也远小于tcp,但是对于网络传输过程中产生的丢包,udp并不能保证,所以udp在传输稳定性上要弱于tcp。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。服务端将 CA 签名的证书发送给浏览器,浏览器通过内嵌的 CA 机构的公钥对证书解密,得到服务端的公钥,这一过程采用非对称加密的方式。
2023-11-12 13:01:23
820
原创 Java基础之接口和抽象类的区别?
Java 中的接口和抽象类是接口(Interface)和抽象类(Abstract Class)都是Java中用于实现多态性的机制,下文将揭晓接口和抽象类的本质区别
2023-11-04 17:14:52
38
原创 07-ThreadLocal有哪些使用场景?【Java面试题总结】
ThreadLocal是线程本地变量,可以存储共享变量副本,每一个独立线程都有与共享变量一模一样的副本。ThreadLocal在当前线程下共享变量是全局共享的,各个线程之间是相互独立的。执行结果如下,每个线程都有自己独立的共享变量副本,并且在当前线程下任务一个地方值都是一样的(一个线程下,可能存在多个方法,多个方法即当前线程下共享变量全局共享)
2023-09-03 14:56:09
702
原创 05-Mysql夺命三连问:什么是索引下推?什么是索引覆盖?什么是回表?【Java面试总结】
在InnoDB中,一张表可以有多个非聚簇索引,非聚簇索引本身不存储数据,而是存储索引键值、和行指针。在InnoDB的引擎中,所有数据是存储在聚簇索引中的,索引键值和行指针的数据结构存储在非聚簇索引中,当我们基于非聚簇索引查询数据,如果返回的列不能满足需求,就需要从聚簇索引中再进行一次查找。是mysql5.6 提出的一个查询优化方案,主要的目的是减少数据或查询中不必要的读取和计算,它的原理是将查询条件尽可能的推送到索引层面进行过滤,减少从磁盘读取的数据量和后续的计算开销。
2023-09-03 14:51:17
907
1
原创 04-过滤器和拦截器有什么区别?【Java面试题总结】
注意,@WebFilter这个注解是Servlet3.0的规范,并不是Spring boot提供的。除了这个注解以外,我们还需在配置类中加另外一个注解:@ServletComponetScan,指定扫描的包,放在启动类上面。在Servlet 中,我们需要在web.xml中配置过滤器,在SpringBoot中没有web.xml的概念,我们通过其他方式配置,如下。提供了一系列方法来配置过滤器的属性,包括过滤器实例、URL匹配模式、过滤器执行顺序、Dispatcher类型等。和方式一的配置是一样的。
2023-09-03 14:49:03
445
原创 03-使用一个不可变对象作为key,红黑树怎么比较大小?
答:Java 中的红黑树是通过左旋、右旋的方式来维护树的平衡性,而左旋、右旋又依赖于节点大小的比较。对于使用不可变对象作为key实际上是可以的,因为比较key的大小本身不依赖于key是否可变性,而是依赖于key实现的比较大小的方法。红黑树通过键的比较结果来维护树的有序性。在插入和查找操作中,红黑树根据键的比较结果来确定节点的位置,以保持树的有序性。(1)红黑树的插入和查找操作是如何利用键的比较结果来维护树的有序性的?作为红黑树中的key有如下几个条件。使用红黑树实现排序的案例。
2023-09-03 14:44:22
219
原创 02-请解释一下Java的内存模型和happens-before规则?【Java面试题总结】
概念:Java内存模型,简称JMM,是一种定义了多线程程序中内存访问行为的规范。它定义了线程如何与主内存和工作内存进行交互,以及如何保证多线程程序的正确性和可见性。Java内存模型为并发编程提供了一致性和可靠性的保证特点:Java内存模型中的happens-before规则程序顺序规则(Program Order Rule):按照程序的顺序执行;锁定规则(Lock Rule):对于同一把锁来说,解锁(unlock)操作必然发生在后续的同一个锁的加锁(lock)之前,也就是要先解锁才能再加锁;volatile
2023-09-03 14:41:29
410
原创 深入学习hashCode 和equals()方法的关系
如上,两个对象只重写了equals()方法,没重写hashCode()方法,所以这两个对象是不相等的。而HashMap的get()方法,先通过对比hashCode,再对比equals()方法判断是否已存在对象的key,new User(“zhangsan”) 作为一个新的对象,所以hashMap中不存在以new User(“zhangsan”) 为key的值。在比较两个对象是否想等时,一般会先调用hashCode方法,如果hashCode相同,再调用equals()方法进行比较,因为hashCode()
2023-03-31 09:42:06
336
lightbox2-dev
2023-12-17
visualcppbuildtools full.rar
2019-06-18
VC6.0之XP win7 win8.1 win10通用版[NEW]
2019-01-04
Spring实战第3版.
2018-03-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人