Java
SpringBoot自定义线程池
SpringBoot自定义线程池 在 SpringBoot 中,可以使用 @Configuration 和 @Bean 去设置线程池,用 @Value 去做线程池的参数配置。 线程池配置: 配置参数: 可以写到配置中心里面,如果没有配置中心,放到 propeties 文件也行。 使用线程池: 日志框架自行补充,可以在Service类上面用 lombok的 @Slf4j 注解,也可以用其他的日志
Java并发工具之ThreadLocal
一、ThreadLocal 简介 1. ThreadLocal 是什么? ThreadLocal 字面意思是本地线程,其实更准确来说是线程局部变量,线程类 Thread 有个变量叫做 threadLocals,其类型就是ThreadLocal.ThreadLocalMap 类型,他其实不是一个 Map 类型,但可以暂时理解它是一个Map,键为 ThreadLocal 对象,值就是要存入的valu
java并发之CAS(Compare and swap)
1. 简介 CAS的底层调用native方法,最终是利用CPU的一个特殊指令,该指令由CPU保证了原子性,而且包含多个操作,比如先比较再更新。 原理: (1)需要读写的内存值(V)、原值(A)和新值(B)。如果V的值与原值A相匹配,那么把B设置给V,否则处理器不做任何操作。 (2)无论哪种情况,都返回V内存值。 (3)原子类里,当失败时,就一直循环,直到成功。 (1)、(2)是在CPU和内存
Java并发之 Lock 锁
一、Lock接口 1 Lock简介&地位&作用 锁是一种工具,用于控制对共享资源的访问 Lock和synchronized是最常见的两个锁,他们都能够达到线程安全的目录,但是使用和功能上又有较大的不同 Lock接口最常见的实现类就是ReentrantLock 通常情况下Lock只允许一个线程访问共享资源,特殊情况也允许多个线程并发访问,如ReadWriteLock的ReadLo
final&不可变性
一、什么是不可变性(Immutable) 如果对象在被创建后,状态就不能被修改,那么它就是不可变的 这个对象不能被修改指: 对象指向(引用)不可变 字段不可变 成员变量不可变 案列演示: person对象,age和name属性都不能再变 测试修改被final修饰的类属性,发现编译都过不了 如果这个类,有一个可修改的成员变量,他不被final修饰,那么这个类就不具备不可变性,可以修改:
Java并发之原子类
一、原子类简介 1 什么是原子类 Java中提供了一些原子类,原子类包装了一个变量,并且提供了一系列对变量进行原子性操作的方法。原子性的意思是对于一组操作,要么全部执行成功,要么全部执行失败,不能只有其中某几个执行成功。在多线程的情况下能够保证操作 不会被中断,从而能保证并发安全 2. 与锁的区别 原子类作用和锁挺像,都可以保证并发情况下的线程安全。但是原子类比锁更具有优势: 粒度更细: 原
springboot项目的打包发布部署,jar和war的区别
简介:1.Spring Boot使用了内嵌容器,因此它的部署方式也变得非常简单灵活,可以将Spring Boot项目打包成JAR包来独立运行,也可以打包成WAR包部署到Tomcat容器中运行,如果涉及大规模的部署,Jenkins成为最佳选择之一。生成jar包Maven默认会将项目打成JAR包,也可以在pom.xml文件中指定打包方式。配置示例如下: 生成war包Spring Boot
85 构造方法 空参和带参
对象 方法调用 package com.fqs.demo061302; public class GirTest { public static void main(String[] args) { Girl g1=new Girl("doudou",19); System.out.println("女朋友:"+g1.getName()+" "
中介者模式:只有一个仲裁者
中介者模式是一种行为型设计模式,它的主要目的是减少多个对象之间的直接通信,并通过一个中介者对象来协调它们之间的交互。这样可以降低系统的复杂性,增加可维护性和灵活性。 示例代码 Mediator接口定义了一个方法sendMessage,用于同事之间的通信。Colleague抽象类表示同事类,其中sendMessage方法用于向中介者发送消息,receiveMessage方法用于接收来自中介者的
vue WebUploader 分片上传
我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。 这次项目的需求: 支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,ie8,ie9,Chrome,Firefox,360安全浏览器,并且刷新浏览器后仍然能够续传,重启浏览器(关闭浏览器后再打开)仍然能够继续上传,重启电脑后仍然能够上传 支持文件夹的上传,
如何给fetch添加超时功能
目前大部分的实现方式是利用 promise.race const fetchTimeOut = (timeout = 1000) => { return new Promise((resolve, reject) => { setTimeOut(() => { reject('fetch timeOut') },tim
C/S模式与B/S模式的区别
网络程序开发的两种计算模式--C/S模式与B/S模式。两种各有千秋,用于不同场合。 C/S适用于专人使用,安全性要求较高的系统; B/S适用于交互性比较频繁的场合,容易被人们所接受,倍受用户和软件开发者的青睐; B/S模式下的动态网页技术主要有CGI,ASP,PHP,JSP等, 其中JSP基于java技术,跨平台性好,“一次编写,到处运行”,并且编写容易,程序员可以快
Mermaid语法大全
概述 Mermaid是什么 Mermaid是一个开源的、基于JavaScript的绘图库,它可以用简洁的、人类可读的文本描述和绘制流程图、序列图、甘特图、类图、实例图、状态图和部署图等不同类型的图表。Mermaid的语法简单易懂,支持针对不同类型图表的定制化设置,可以轻松绘制高质量的图表并嵌入到网页、Markdown文档和其它支持HTML的场景之中。此外,它还支持插件和编辑器的集成,使得用户可
springboot~代码风格统计spring-javaformat-maven-plugin插件
Spring Javaformat是Spring团队开发的一款基于Google Java Format的代码格式化工具,可以帮助Java开发者自动化进行代码格式化,提高代码质量,降低代码维护成本。 Spring Javaformat可以自定义配置文件,支持大量的代码风格配置选项,满足不同项目和团队的需求。还可以与Gradle、Maven、IntelliJ IDEA等常用开发工具集成使用,方便快速进
更改sentinel 默认端口号(8080)
不少小伙伴在微服务中使用sentinel 都会碰到8080端口被占用的问题。 找到sentinel-dashboard.jar包,在当前目录打开cmd, 在控制台输入以下命令将默认的端口号改为8070,这个端口号可以自己选择,不被占用的端口号均可。 我这里的sentinel jar 包的名字是sentinel-dashboard.ja,大家要看下自己的sentinel jar 包名,一般下载
唯一客服系统(独立部署无限多开)-知识库ChatGPT-支持微信公众号小程序-钉钉-PC和H5全渠道客服系统
产品介绍 唯一客服系统是基于Golang语言自主开发的在线客服系统。创立于2019年初,是一款连接企业与客户的即时通讯项目,遵循快速、简洁的开发原则,是为中小企业量身定制的全渠道客服系统,致力于帮助广大开发者/公司快速部署整合私有化独立客服功能。 客服系统的部署模式为私有化独立部署,系统程序本身为多商家多坐席SaaS客服系统,独立部署后可以进行SaaS化运营服务。 开发语言 本系统基于高性能强类型
前端 WebUploader 分片上传
第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname = null; String fileAddre = "/numUp"; try { InputStream
解释器模式:语法规则也是类
解释器模式是一种行为型设计模式,它定义了一种语言并解析该语言中的表达式。这种模式用于将一个表达式文法表示成一个抽象语法树,从而使得我们可以通过对语法树进行遍历来解释整个表达式。 在解释器模式中,包含以下几个角色: 抽象表达式(AbstractExpression):定义了一个抽象的解释操作,具体的终结符和非终结符都要实现这个接口。 终结符表达式(TerminalExpression):实现了抽象
Java集成开发环境(IDE)-IntelliJ IDEA 2023
Java集成开发环境(IDE)是一种软件开发工具,它为开发人员提供了一个集成的环境,可用于编写、调试和测试Java应用程序。IntelliJ IDEA是一款非常流行的Java IDE,它由JetBrains公司开发。该IDE提供了许多强大的功能和工具,可大大简化Java开发过程。 →→↓↓载IntelliJ IDEA 2023 mac/win版 IntelliJ IDEA 2023
JavaCV音视频开发宝典:使用JavaCV读取海康平台或海康网络摄像头sdk回调视频TS码流并解析预览图像
《JavaCV音视频开发宝典》专栏目录导航 《JavaCV音视频开发宝典》专栏介绍和目录 前言 两年前博主写了如何利用JavaCV解析各种h264裸流,《JavaCV音视频开发宝典:使用javacv读取GB28181、海康大华平台和网络摄像头sdk回调视频码流并解析预览图像》,但是随着时间变化,各个厂商sdk也有所迭代升级,比如现在海康sdk回调不再包含H264裸流,只有PS和TS流以及R
Hive执行计划之只有map阶段SQL性能分析和解读
目录 目录概述1.不带函数操作的select-from-where型简单SQL1.1执行示例1.2 运行逻辑分析1.3 伪代码解释2.带普通函数和运行操作符的普通型SQL执行计划解读2.1 执行计划解读2.2 伪代码解释逻辑 概述 可能所有的SQLboy刚接触SQL语句的时候都是select xxx from xxx where xxx。在hive中,我们把这种语句称为select-from-wh
http1.1和http2.0的区别
http2对比http1的性能提升点: 1.多路复用 2.二进制格式 3.头部压缩 4.服务器推送 5.强化安全性 下面分条一一介绍: 一:多路复用 HTTP2 的多路复用(Multiplexing)是指在同一个 TCP 连接上,客户端可以同时发起多个请求,服务器可以同时响应多个请求。 在 HTTP1.x 中,由于采用了串行请求和响应方式,每次只能请求一个资源,响应完毕