java日常开发总结
看表该更新博客了
这个作者很懒,什么都没留下…
展开
-
利用线程池来控制访问频率
线程池能够容纳同时执行的最大线程数,当核心线程及队列都被占满任务时,线程池会判断新提交的任务是否大于最大线程数,若是则触发拒绝策略;反之则新建线程来执行。保证有多少个线程一直在等待新任务的到来,当任务到来时,线程池不用新建线程而是直接利用空闲的核心线程执行任务。思路:通过涉及线程池中的核心线程数、最大线程数、队列长度来达到限流的目的,四个渠道因QPS要求不一,则分别配置四个池子。有些晦涩,举例来说:核心线程数为2,队列长度为5,最大线程数为3。若再提交一个任务,则触发最大线程数(新开一个线程来执行);原创 2023-06-04 08:48:20 · 374 阅读 · 0 评论 -
xml配置JedisUtil
xml方式配置Jedis对象原创 2023-01-28 21:24:45 · 684 阅读 · 0 评论 -
使用MQ解耦支付出票流程
MQ解耦业务处理流程原创 2023-01-19 14:51:48 · 192 阅读 · 0 评论 -
mysql初次登录提示密码不安全及授予远程访问权限
validate_password_length(密码长度)参数默认为8,我们修改为1。首先,修改validate_password_policy参数的值。重置密码后依旧提示不安全,5.7的安全做的牛13啊。完成之后再次执行修改密码语句即可成功。原创 2022-08-18 15:04:30 · 1141 阅读 · 0 评论 -
HttpClient发起multipart/formdata格式的请求
base64转MultipartFilefinal String[] base64Array = file.split(",");String dataUir, data;if (base64Array.length > 1) { dataUir = base64Array[0]; data = base64Array[1];} else { //根据你base64代表的具体文件构建 dataUir = "data:image/jpg;base64";原创 2022-04-24 11:29:31 · 2329 阅读 · 0 评论 -
@Builder与@NoArgsConstructor冲突
记lombok注解中 @Builder与@NoArgsConstructor冲突引发的问题报错场景:前段传参(A)中有非必传集合字段 list,由于后端实体类T在接收时没有无参构造,无法实例化该类,报状态码400 参数异常问题排查:一.使用@Builder注解作用于类上时,此时只会以建造器模式默认生成“全参构造”,因为此时显式声明了构造器,默认的无参构造器就失效了二.此时追加@NoArgsConstructor注解时,会把全参构造冲掉三.此时再追加全参构造注解 @AllArgsConstruc原创 2021-12-07 20:30:27 · 3216 阅读 · 0 评论 -
并发并行区别
并发和并行的区别:并发:一个处理器同时处理多个任务并行:多个处理器或多核处理器同时处理多个任务EG:并发:一个馒头被多个人同时吃并行:三个人吃三个馒头原创 2021-11-08 20:13:20 · 65 阅读 · 0 评论 -
解决SSL异常:javax.net.ssl.SSLHandshakeException: No appropriate protocol
解决SSL异常:javax.net.ssl.SSLHandshakeException: No appropriate protocol控制台报错提示:原因:jdk1.8中某些版本导致SSL调用权限出现异常,对应版本的加密套件"SSLv3,TLSv1,TLSv1.1"不再认为是安全的解决:在jdk安装目录中打开文件夹jre->lib->security,打开java.security文件,将红框圈出的部分删除,重启项目,如上报错消失,down!...原创 2021-10-10 12:34:35 · 1829 阅读 · 0 评论 -
线程池配置类
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import java.util.concurrent.ThreadPoolExecutor;/** * ScheduleConf.原创 2021-10-01 10:46:33 · 395 阅读 · 0 评论 -
mybatis plus:There is no getter for property named ‘null‘ in 类名
记录一次使用mybatis plus报错控制台报错:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'null' in 'class xxxx'原创 2021-01-25 18:48:19 · 1201 阅读 · 0 评论 -
阻塞队列
一.前言阻塞队列区别于其他类型的队列的最主要的特点就是阻塞这两个字,所以下面重点介绍阻塞功能:阻塞功能使得生产者和消费者两端的能力得以平衡,当有任何一端速度过快时,阻塞队列便会把过快的速度给降下来。在多线程领域,所谓阻塞即某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤醒。为什么需要它呢?它的好处是不需要关心"啥时候需要阻塞线程,啥时候需要唤醒线程",这一切BlockingQueue都给你解决了在concurrent包发布以来,在多线程环境下,我们每个程序员都必须去自..原创 2020-12-14 00:03:31 · 83 阅读 · 0 评论 -
手写线程池与四种拒绝策略实例解析
一.前言在日常开发中若遇到多线程使用场景,建议先理解一下《阿里巴巴Java开发手册》中对使用多线程的要求:“【强制】线程资源必须通过线程池提供,不允许在应用中自行显示创建线程” 即new Thread().start();"使用线程池的好处是减少在创建和销毁线程上所消耗的时间以及系统资源的开销,解决资源不足的问题,如果不使用线程池,有可能造成系统创建大量同类线程而导致消耗完内存或者“过度切换”的问题"“【强制】线程池不允许使用Executors去创建①(见下图),而是通过ThreadPool原创 2020-12-13 20:01:07 · 329 阅读 · 0 评论 -
java多线程死锁及定位分析
定义: 死锁指两个及两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待(阻塞)现象。图示:代码:(注:细节都在代码注释中,代码说话多动手)public class DeadLockDemo { public static void main(String[] args) { String lockA = "lockA"; String lockB = "lockB"; //以下两个线程参数顺序不一致 第一个参数...原创 2020-12-12 16:53:35 · 317 阅读 · 0 评论 -
json与String的相互转换
前言:json本身也是一种字符串,互相转换很容易。一.String转Jsonpublic class Test{ public static void main( String[] args ){ String res = “{“total”:0,”rows”:[{“name”:”test”}]}”; //String转Json JSONObject jsonObject = JSONObject.parseObject(res); System.o原创 2020-09-10 09:30:14 · 417 阅读 · 0 评论 -
Java异常
经读《Java编程的逻辑》一书,现整理Java异常一篇: 一.初识异常 一.1:NullPointerException(空指针异常) 一.2:NumberForMatException(数字格式异常) 二.异常类 二.1:Throwable 二.2:异常类体系 二.3:自定义异常 三.异常处理 三.1:catc...原创 2020-04-12 15:31:01 · 134 阅读 · 0 评论 -
关于Nginx
https://baijiahao.baidu.com/s?id=1652608869911988442&wfr=spider&for=pc转载 2020-04-10 08:08:16 · 92 阅读 · 0 评论 -
String常用方法总结
前记:今天整理桌面,当时学习java时笔记堆放在桌面太乱,整理一下上传至csdn以String str=’abcdef’为例:记录常用方法如下:1.substring()①str.substring(1) bcdef 从元素索引1开始到结束②str.substring(1,3) bc 从元素索引1开始到元素索引为3截至③str.substring(1,-2) str.subst...原创 2020-03-06 23:04:09 · 96 阅读 · 0 评论 -
JAVA工具类——Date的日常使用总结
JAVA工具类——Date一.格式化日期类型1.Date转String //参数pattern可以任意(参数中有一下字符即可)如: //1.yyyy年-MM月-dd日 //2.HH:mm:ss //3...... SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:...原创 2019-08-31 00:25:23 · 337 阅读 · 0 评论