自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(160)
  • 资源 (2)
  • 收藏
  • 关注

原创 MyBatisPlus

mybatisplus

2023-02-15 20:57:09 916

原创 Spring基础二(数据管理)

spring

2023-02-01 19:52:30 322

原创 Spring基础一(IOC、DI、容器、Bean、AOP)

spirng

2023-01-25 13:33:11 867

原创 Mybatis

mybatis

2023-01-23 16:03:56 1276

原创 Elasticsearch

elasticsearch是一款非常强大的开源。, 可以帮助我们从海量数据中快速找到需要的内容。

2024-04-18 22:50:18 153

原创 Nacos

Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。这样,UserApplication(8081)使用的profile是dev,UserApplication2(8082)使用的profile是test。当本集群内不可用时,才访问其它集群。微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动。

2024-04-11 18:17:39 680

原创 SpringSecurity

SpringSecurity是Spring组织提供的一个开源安全框架, 目前最新版本为6.0.2, 基于Spring开发, 所以很适合在SpringBoot中使用。

2024-04-09 00:54:37 642

原创 Quartz

设置的时间间隔是1秒, 但是job中需要执行3秒, 但是每次执行定时任务, 并没有等上一次执行结束才开始, 这说明了每次执行定时任务都是并发的, 定时任务之间相互隔离, 也印证了每次调度任务时, 都会创建新的Job、JobDetail、Trigger。Quartz定时任务默认都是并发执行的, 不会等待上一个任务执行完毕, 只要时间间隔到了, 就会执行. 如果定时任务执行时间太久, 会长时间占用资源, 导致其他任务阻塞。, 是一个接口, 只定义一个方法execute()方法包含了执行任务的具体方法。

2024-03-22 00:46:28 748

原创 SpringBoot+定时器

如果我们想在SpringBoot中使用ScheduledExecutorService。, 可以通过匿名内部类来实现. 在run()中执行任务。步骤二: 创建定时器, 调用定时器的方法执行定时任务。java.util包下的类, 用于实现定时任务。

2024-03-19 20:52:44 409

原创 接口幂等性问题和常见解决方案

幂等性: 用户同一操作发起的一次或多次请求的结果是一致的在增删改查4个操作中, 查询不会修改数据, 删除进行一次或者多次的产生的结果一致, 所以只需要关注修改和新增操作,修改和新增在重复提交的场景下会产生接口幂等性问题。

2024-03-16 15:42:29 619

原创 Redisson

【代码】Redisson。

2024-03-13 21:54:35 667

原创 Cookie和Session

Cookie的path属性用于指定可以访问该Cookie的路径, 这是通过Path属性限制浏览器在哪些路劲下携带该Cookie, 具体来说, Path的作用有以下几个方面。再次访问时, 此时请求头中就会携带cookie, cookie以key=value的形式表示, 多个cookie使用;在HTTP响应中, cookie的表现形式如下, 如果一次性返回多个cookie, 就使用多个Set-Cookie表示。客户端会话技术, 将数据保存到客户端, 以后请求都携带Cookie数据进行访问。

2024-03-07 22:27:48 839

原创 Redis

Redis是一个用C语言编写, 开源高性能非关系型(NoSQL)的键值对数据库Redis五种基本数据类型。

2024-03-06 00:30:35 524

原创 SpringMVC

MVC(Model-View-Controller)是一种软件设计模式, 它采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑、数据与界面显示分离Spring MVC是一个基于java的,实现了MVC设计模式的Web框架, 通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。

2024-02-20 08:46:21 835

原创 23种设计模式

工厂方法模式将工厂抽象化,并定义一个创建对象的接口。每增加新产品,只需增加该产品以及对应的具体实现工厂类,由具体工厂类决定要实例化的产品是哪个,将对象的创建与实例化延迟到子类,这样工厂的设计就符合“开闭原则”了,扩展时不必去修改原来的代码。之后就出现了工厂, 使用工厂可以封装对象的创建逻辑,提高代码的灵活性、可维护性和可扩展性,同时降低客户端代码与具体产品类的耦合度。在没有工厂模式之前, 我们只能自己手动创建(new)这几款车。背景: 我们需要生产两款车: BMW320和BMW523。

2024-02-01 21:24:20 1048

原创 Mysql主从复制、分库分表、读写分离

主从复制指: 将主数据库的DDL和DML操作通过二进制日志传递到从库服务器中, 然后从库根据日志重新执行(也叫重做), 从而使从库和主库的数据保存同步MYSQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务的主库, 实现链状复制主键出现问题, 可以快速切换到从库提供服务实现读写分离, 降低主库的访问压力可以在从库中执行备份, 以避免备份期间影响主库服务DDL和DML的区别DDL:定义数据库的结构和模式的语言。

2024-01-24 00:46:27 483

原创 Mysql

索引相当于目录, 为了方便查询书中的内容, 通过对内容建立索引形成目录., 其中包含对数据表中所有记录的引用指针索引是一个文件, 它会占用物理空间可以大大加快数据的检索速度时间方面: 创建索引和维护索引都要耗费时间, 对表中的数据进行增加、修改、删除操作, 都会动态维护索引, 会降低增、删、改的执行效率空间方面: 索引需要占用物理空间。

2024-01-15 23:56:44 467

原创 集合 第一章

(这种数据结构也被称为即哈希表), 它存储了链表的头节点, 该节点包含了键值对的信息, 当我们向HashMap中存入键值对, HashMap会通过哈希算法计算键的哈希码, 并基于当前数组的容量计算出索引, 以确定将键值对放在哪个索引, 为了解决哈希冲突, 使用了链表, 当多个键映射到同一个索引, 它们会形成一个链表, 当链表长度达到一定的阈值(默认为8), 链表会转换为红黑树, 以提高查找性能.这有助于提高程序的并发性能。在扩容时会创建一个新的更大的数组,并将已有的键值对重新分配到新的数组中。

2024-01-15 13:49:51 895 1

原创 并发编程(高并发、多线程) 第三章

如果在使用线程池的情况下,ThreadLocal被设置在某个任务中,而这个任务在线程池中执行完成后线程被放回线程池而不是销毁,那么ThreadLocal可能在下一次任务执行时仍然持有对上次设置的对象的引用。需要说明一点: 虽然内存泄漏可能会导致内存溢出,但内存溢出也可能是由于其他原因,例如程序中存在大量的内存申请,但这些内存并没有被泄漏,而是在程序执行期间一直保持被占用状态,最终导致系统内存耗尽。为了避免这类问题,确保在ThreadLocal不再需要时,调用remove()方法清理它所持有的对象引用。

2024-01-10 17:12:09 832

原创 并发编程(高并发、多线程) 第二章

暂时没有内容。

2024-01-02 18:06:00 365

原创 并发编程(高并发、多线程) 第一章

当一个线程执行一个被 synchronized 关键字修饰的方法时,如果发生异常,虚拟机会将锁释放,允许其他线程进入相同的方法或代码块。这确保了一个线程对该变量的修改对其他线程是可见的。这意味着在多个线程竞争同一个锁的情况下,无法保证线程获取锁的顺序与线程请求锁的顺序一致。非公平锁的特点是,当一个线程释放锁时,下一个要获得锁的线程是任意选择的,不考虑这个线程是否在等待队列中等待更长的时间。在并发环境中,多个线程可能同时访问和修改共享的数据,为了确保数据的一致性,需要确保一组相关的操作是原子执行的。

2023-12-29 17:19:02 1109

原创 JVM知识

堆内存中一个对象不再使用时,垃圾回收器却无法从内存中删除他们,导致内存泄露。java文件到最终运行, 需要经过编译和类加载这两个阶段。类加载的过程:把.class文件加载到jvm的内存中。编译的过程:把.java文件编译成.class文件。如果内存泄露的空间足够大,就会导致内存溢出。

2023-11-30 21:11:57 1112

原创 java基础 第一章

new这个关键词, 毫无以为会在堆中分配内存, 创建一个String类对象, 因此s1在栈中的引用指向堆中的这个String对象, 因为"Hello"是一个常量, 所以会去常量池中找有没有这个常量存在, 没有的话会在常量池中分配一个空间, 存储这个常量, 并将这个常量对象的空间地址给到堆中的String对象;在java中存在8种基本类型以及一种特殊的类型String, 这些类型为了使它们在运行过程中速度更快, 更节省内存, 都提供了一种常量池的概念(在方法区), 常量池相当于java系统提供的缓存。

2023-10-22 23:44:18 304

原创 java面试题

循环依赖其实就是循环引用, 简单来说, 就是两个或两个以上的bean互相持有对象, 形成闭环. 例如A依赖于B, B依赖于C, 而C又依赖于ASpring通过三级缓存来解决循环依赖, 其中一级缓存为单例池(singletonObjects), 二级缓存为早期曝光对象(earlySingletonObjects), 三级缓存为早期曝光工厂(singletonFactories)

2023-10-10 21:00:39 271

原创 Spring

Dependency Injection 依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件(简单的说,可以将另外一个bean对象动态的注入到另外一个bean中。我们只需要引入spring-context, 就可以间接引入spring-core、spring-beans、spring-expression、spring-aop。实际上IOC和DI并不是同一个概念。spring核心依赖: spring-core、spring-beans、spring-context。

2023-09-19 22:37:08 311

原创 工作流引擎Flowable

在resources中添加日志文件log4j.properties。

2023-06-13 19:47:39 1767

原创 分布式锁的应用

【代码】分布式锁的应用。

2023-04-21 00:29:47 100 1

原创 23种设计模式

设计模式是解决软件开发某些特定问题而提出的一些解决方案, 也可以理解为解决特定问题的思路, 通过设计模式可以增强代码的可重用性、可扩充性、可维护性、灵活性等等. 使用设计模式的目的是实现代码的解耦和高内聚设计模式的三大类以及关键点。

2023-04-20 10:36:33 505 2

原创 线程池的使用

这里的最小线程数量即corePoolSize。当前线程数达到corePoolSize后, 如果继续有任务被提交到线程池,会将任务缓存到工作队列(后面会介绍), 如果工作队列也满了, 则会创建一个新线程来处理, 线程池不会无限制的去创建新线程, 它会有一个最大线程数量的限制, 这个数量由maximunPoolSize指定。当工作队列中的任务已到达最大限制,并且线程池中的线程数量也达到最大限制,这时如果有新任务提交进来,该如何处理呢。创建一个新线程时使用的工厂,可以用来设定线程名、是否为daemon线程等等。

2023-04-19 17:40:06 2292

原创 泛型方法的使用

【代码】泛型方法的使用。

2023-04-19 10:26:31 53

原创 Java八股文

当添加某个元素后,数组的总的添加元素数大于了 数组长度 * 0.75(默认,也可自己设定),数组长度扩容为两倍。(如开始创建HashMap集合后,数组长度为16,临界值为16 * 0.75 = 12,当加入元素后元素个数超过12,数组长度扩容为32,临界值变为24)HashMap在JDK1.8之后是基于数组+链表+红黑树来实现的, 特点是key不能重复, 可以为null, 线程不安全。

2023-04-19 00:05:02 2234 1

原创 【SpringCloud】1、服务网关Gateway

大家都知道在微服务架构中, 一个系统会被拆分为很多个微服务, 那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在, 我们只能在客户端记录每个微服务的地址, 然后分别去调用每个业务都会需要鉴权、限流、权限校验、跨域等逻辑,如果每个业务都各自为战, 自己造轮子实现一遍, 会很影响效率,完全可以将这些共性的业务抽取出来, 放到一个统一的地方如果业务量比较简单的话, 这种方式前期不会有什么问题, 但随着业务越来越复杂, 比如淘宝、亚马逊打开一共页面可能会涉及到数百个微服务协同工作, 如果。

2023-04-18 00:31:53 298

原创 【SpringBoot】1、SpringBoot整合JWT实现Token验证

单点登录

2023-04-10 22:40:21 5255 2

原创 双重检查锁定(Double-Checked Locking)的问题和解决方案

在4处的线程正在初始化实例instance,但是instance引用的对象有可能还没有完成初始化,因为发生了指令重排。3.如果getInstance()方法不会被多个线程频繁的调用,那么这个延迟初始化方案将能提供令人满意的性能。4处因为指令重排,引发的1处拿到的实例在使用的时候发生空指针的问题。在4处,对象创建好之后,执行getInstance()方法将不需要获取锁,直接返回已创建好的对象。2.如果getInstance()方法被多个线程频繁的调用,将会导致程序执行性能的下降。

2023-03-30 10:38:47 1449 1

原创 kafka经典面试题

精确一次 = 幂等性 + 至少一次幂等性就是指Producer不论向Broker发送多少次重复数据,Broker端都只会持久化一条,保证了不重复。如何保证幂等性?一个消息会被封装成TopicPartition, TopicPartition中记录了以下几个信息:PID、Partition、SeqNumber;重复数据的判断标准:具有PID, Partition, SeqNumber相同主键的消息提交时,Broker只会持久化一条。

2023-03-24 01:07:40 561

原创 kafka消费者

例如: groupid的hashcode值 = 1,1% 50 = 1,那么__consumer_offsets 主题的1号分区,在哪个broker上,就选择这个节点的coordinator作为这个消费者组的老大。但是如果有 N 多个 topic,那么针对每个 topic,消费者 C0都将多消费 1 个分区,topic越多,C0消费的分区会比其他消费者明显多消费 N 个分区。假如现在有 7 个分区,3 个消费者,排序后的分区将会是0,1,2,3,4,5,6;, 所有的消费者都属于某个消费者组, 即。

2023-03-23 23:39:36 103

原创 Apache common工具类

检查字符串(参数1)是否包含字符串(参数2), 忽略大小写。检查字符串(参数1)是否包含字符串(参数2)检查字符串(参数1)和字符串(参数2)中的。检查字符串(参数1)和字符串(参数2)中的。是否全为字符串(参数2)中的字符的子集。检查字符串(参数1)中的。

2023-03-22 12:48:20 330

原创 Kafka(生产者)

目 前 企 业 中 比 较 常 见 的 消 息 队 列 产 品 主 要 有Kafka(在大数据场景主要采用 Kafka 作为消息队列。

2023-03-19 15:22:18 1695

原创 面试知识题库

共享变量存储在主内存中, 各个线程在使用共享变量时都会先将共享变量复制进当前线程的工作内存中, 后续使用到该变量时, 直接从当前线程工作内存中获取变量值,此时如果其他线程更改了该共享变量值, 那么当前线程无法实时更新到该变量的最新值。将共享变量声明为volatile后, 所有对共享变量的写入都会立即写入主内存, 所有对共享变量的读取都从主内存中读取。

2023-03-16 14:01:26 379

原创 elasticsearch第一章

es

2023-03-10 21:14:40 325

jodconverter-core-3.0-beta-4.jar_提供核心api.rar

这是通过java使用openoffice进行MS文档转PDF文档必备工具jodconverter 版本3.0 可以完美支持docx pptx xlsx 等文件转pdf

2019-12-20

jodconverter-2.2.2_转pdf.rar

jodconverter-2.2.2 在2.2.1的基础上新增了对docx/xlsx转pdf,配合openoffcie使用,可以通过java实现对word和excel转pdf的操作

2019-12-20

空空如也

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

TA关注的人

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