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

第18周

1、nexus实现私有yum、maven仓库2、kubeadm集群搭建3、基于k8s部署运行nginx+tomcat实现动静分离 #============================================================================== 1 nexus实现私有yum、maven仓库 1.1 安装 nexus-3.21.2 1.2 搭建内部

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()+" "

springboot rabbitmq配置

YML 配置 发送 接收

中介者模式:只有一个仲裁者

中介者模式是一种行为型设计模式,它的主要目的是减少多个对象之间的直接通信,并通过一个中介者对象来协调它们之间的交互。这样可以降低系统的复杂性,增加可维护性和灵活性。 示例代码 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

this

1.this的实质是在函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用 2.绑定规则 (1)默认绑定 : 对独立函数调用 this解析为windows 虽然this的绑定规则完全取决调用位置,但仅仅只是在非strict mode下; strict mode 下与其调用位置无关 (2)隐式绑定 首先需要注意的是 foo() 的声明方式,及其之后是如何被当作引用属性

递归-二叉搜索树插入数据-leetcode701

思路:递归 不恋尘世浮华,不写红尘纷扰

解释器模式:语法规则也是类

解释器模式是一种行为型设计模式,它定义了一种语言并解析该语言中的表达式。这种模式用于将一个表达式文法表示成一个抽象语法树,从而使得我们可以通过对语法树进行遍历来解释整个表达式。 在解释器模式中,包含以下几个角色: 抽象表达式(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

基本语法1

基本语法 Java程序运行机制 编译型(A先翻译在给B) 解释型(B请翻译看A) java基本语法 注释 写注释很重要 单行注释 //注释文字 多行注释 /* 注释文字 */ 文档注释 /** */ 平时写代码一定要注意规范 标识符 关键字 数据类型 强类型语言 要求变量的使用要严格符合规定,所有变量都必须先定义后使用(安全但速度慢) 弱类型语言 Jav

JavaCV音视频开发宝典:使用JavaCV读取海康平台或海康网络摄像头sdk回调视频TS码流并解析预览图像

《JavaCV音视频开发宝典》专栏目录导航 《JavaCV音视频开发宝典》专栏介绍和目录 ​ 前言 两年前博主写了如何利用JavaCV解析各种h264裸流,《JavaCV音视频开发宝典:使用javacv读取GB28181、海康大华平台和网络摄像头sdk回调视频码流并解析预览图像》,但是随着时间变化,各个厂商sdk也有所迭代升级,比如现在海康sdk回调不再包含H264裸流,只有PS和TS流以及R

JS-数组和函数

1. 数组 数组 Array :是一种可以按顺序保存数据的数据类型 1.1 声明数组 let 数组名 = [ 数据1, 数据2, 数据3, ..., 数据n ] 或 let 数组名 = new Array(数据1, 数据2, 数据3, ..., 数据n) 数组是按照顺序保存,每个数据都有自己的编号,也叫索引(从0开始) 数组可以保存任意类型的数据 数组中保存的每个数据都叫一个数组元素 1.2

金仕达笔试面试心得

1.笔试 金仕达笔试由五道逻辑题、十道选择题和十道填空题 对于逻辑题是压根没想到,十道选择题和十道填空题比较简单,都是Java基础知识 2.面试 2.1 Java相对于C++优势在哪? 我的回答: JVM执行字节码文件,跨平台(write once run away); 没有指针等复杂内容; 成型框架和生态圈比较多,可以快速寻找和解决遇到的问题; 以后Java的未来方向在云原生,可以快速在云

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 中,由于采用了串行请求和响应方式,每次只能请求一个资源,响应完毕

交互式命令行

市面上有不少交互式命令行工具 picoclijlinekotlin-REPLjshell 有些直接可以使用,有些需要部分改造,我使用Picocli-shell-jline项目的基础上实现了一款交互式命令行的LicenseGenerator工具 引入maven依赖 启动 Command 生成公私钥 总结 总体来说picocli-shell-jline3项目好像还没有开发完,也好像没人维护了,

<<  <  1114  1115  1116  1117  1118  1119  1120  1121  1122  1123  1124  >  >>