![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 62
佛祖保佑永不宕机
学无止境,加油加油!
展开
-
线程池满了如何处理
举个例子,我创建了一个线程池,最大线程数是10,等待队列最大量是1000,结果高峰期时一下给我来了2000个任务,这个时候自然是顶不住的。解决办法肯定是有的,比如改一下线程池的最大等待队列,扩大到2000以上,但是这种办法肯定不是完美的,如果任务量再次增涨,我又得去改一此代码吗,这样肯定不行。某天搬砖时遇到一个问题,我创建了一个线程池执行任务,刚开始的时候还是一切,结果第二天发现有些任务没有正常执行。,不过相比之下我个人更喜欢入库的方案,因为入库之后,每个失败的任务我都能记录日志,方便后期做分析统计。原创 2023-08-14 18:10:17 · 811 阅读 · 0 评论 -
org.apache.commons.vfs2.FileSystemException:Invalid absolute URI
org.apache.commons.vfs2.FileSystemException:Invalid absolute URI原创 2023-03-06 17:51:17 · 848 阅读 · 1 评论 -
爬虫学习记录
上面只是我学爬虫过程中的一些思考,模拟了一下网上那些爬虫工具,但是他们是怎么做的我也不知道。我做的测试毕竟很浅,真正的爬虫需要考虑的东西很多,例如:模拟登录(其中包含有验证码的情况下该怎么处理),http和https,数据清洗(这个贼麻烦),数据分析,丰富的前端知识,爬虫技术(selenium这类),抓包工具(fiddler这类),多线程,正则表达式,文件读写等等还有很多其他方面。这些都需要去了解的,只能一步一步去学习。原创 2022-11-17 11:39:56 · 411 阅读 · 0 评论 -
通过时间格式的字符串解析时间格式
话不多说,在工作时有一个需求要求我通过一个时间格式的字符串解析出时间格式,然后我在网上找找看有没有什么工具可以用,但是也没发现什么这类工具,就干脆自己写了个简单的方法先解决了问题再说,结果就发现了一个有趣的东西。感觉这个还是挺有趣的,之前没这样操作过确实也不知道这个现象,这个估计得研究源码才能知道为什么了,现在先把这个记一下,后面有时间看看源码,得到结果后再另写一篇博客。 然后说说我遇到的情况,先贴源码。 先看看我写的那个简单的方法。原创 2022-11-03 18:06:59 · 497 阅读 · 1 评论 -
用枚举优化if-else
用枚举优化if-else原创 2022-09-16 14:15:00 · 449 阅读 · 0 评论 -
Java线程池
import java.util.concurrent.*;/** * 线程池的执行流程: * 1.一个新的任务需要执行,判断核心线程是否已满,未满直接由核心线程执行 * 2.如果核心线程已满,判断队列是否已满,未满,则放入队列中等待前面的任务执行完 * 3.队列已满,就在最大线程池的允许范围内重开临时线程执行 * 4.如果最大线程都已经达到了,那就直接走解决策略 */public class ExecutorsDemo { public static void main(Stri原创 2022-05-26 19:08:20 · 112 阅读 · 0 评论 -
js实现拦截器进行请求处理
js实现拦截器因为公司需求,在前端请求接口的过程中,我们的某个接口参数必须经过一次加密,因为用到这个接口的地方有点多,如果在对应的业务js文件中一个一个改,那工作量就有点大了,幸好这些页面中都有使用到一个公共js,那么我们直接在里面通过ajaxSetup实现类似拦截器的效果。 废话不多说,直接上代码。需要注意,我的后端是用的java哦,解码也是用的java。公共js //其他逻辑处理代码省略... //字符串转base64 function getEncode64(str){原创 2022-04-27 09:01:12 · 2713 阅读 · 0 评论 -
java 正则表达式的几种预查的用法和区别
正则表达式工作中经常会用到,不过预查我却很少用到,几种预查的写法总是记不住,去网上搜索了一下,总感觉说得不是很通俗易懂,我怕以后还会忘记,今天做一下总结。 直接用java中的replaceAll()方法,因为replace是支持正则表达式进行替换的,这样可以很明显的看出几种预查的区别和效果。public class test { public static void main(String[] args) { String a = "this is my test";原创 2021-12-28 17:58:00 · 420 阅读 · 0 评论 -
谷歌浏览器跨域问题解决
跨域问题解决前景提要:因业务需要,服务1的前端需要获取到服务2的session中的某一个值,浏览器用的谷歌浏览器。 因为谷歌浏览器的安全机制,浏览器在跨域的时候不允许request请求携带cookie,所以每次请求我都拿不到之前session里面存放的数据,详细情况可查看这篇文章:https://blog.csdn.net/leonjack123/article/details/108219144。 在说之前要先知道session是个啥,如果连session都没有基本概念的,请查看:https原创 2021-11-03 09:00:15 · 958 阅读 · 0 评论 -
Maven的使用经验分享
Maven的使用经验分享首先明确一下Maven的概念,Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。。pom文件 使用Maven时,接触最多的就是pom文件了,POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。 所有 POM 文件都需要 project 元素和三个必需字段:groupId,artifactId,version。举原创 2021-09-09 15:58:26 · 303 阅读 · 0 评论 -
使用QLExpress动态制定计算公式
QLExpress的使用最近公司要统计一些数据,需要定义一些统计数据的计算公式,然后通过计算公式统计数据。于是我去找了找有没有什么好用的工具。说实话,现在做开发,网上能找到许多实用的工具,而且还是开源的,非常感谢大佬们的分享。今天要说的是QLExpress。QLExpress的简单介绍 QLExpress由阿里的电商业务规则、表达式(布尔组合)、特殊数学公式计算(高精度)、语法分析、脚本二次定制等强需求而设计的一门动态脚本引擎解析工具。它具有以下特性:线程安全。高效执行。弱类型脚本语言。原创 2021-05-13 14:56:21 · 3194 阅读 · 2 评论 -
记一次奇怪的DataIntegrityViolationException异常处理
记一次奇怪的DataIntegrityViolationException异常处理梦开始的地方 最近开发的时候出现了一次DataIntegrityViolationException异常,当时我也没太在意,因为开发里出现一个小小的bug也是正常的,于是我就开始百度,然后我就发现了事情的不对劲。因为百度出来的这个都是说是在更新数据库时出现的异常,但是我其实是做的查询操作。 先说一下用到的框架,是SpringBoot+Mybatis,当时是需要做一个数据统计。结构大概如下:VO,num1和num2原创 2021-04-08 16:02:22 · 4660 阅读 · 13 评论 -
Java流(Stream)
Java流(Stream) Java 8添加了一个新的抽象称为流Stream,可以让我们以一种声明的方式处理数据。当然新特性什么的就不说了,毕竟现在Java 16都出了,这算老特性了。只是平时工作中还是经常能用到,确实比较方便,所以今天写个总结。 为了方便理解,就少来点理论,直接以实战代码为主进行分析。想要了解实现原理,建议看看源码,这里只讲使用方法,不扯远了,还是先来看看它的定义:什么是 Stream?Stream(流)是一个来自数据源的元素队列并支持聚合操作元素是特定类型的对象,形成一个原创 2021-04-06 09:52:30 · 2246 阅读 · 0 评论 -
CyclicBarrier的使用
CyclicBarrier的使用 今天闲着没事,复习了一下以前的知识,然后看到了CyclicBarrier这个类,在平常开发中确实用得比较少,于是今天写了一个我最喜欢的英雄联盟的例子来加深一下影响。 首先来看一下这个类的定义,CyclicBarrier类:允许一组全部等待彼此达到共同屏障点的辅助类,循环阻塞在涉及固定大小的线程方的程序中很有用,屏障被称为循环,因为它在被等待线程释放后重新使用。 这个定义是我在网上找到JDK中文文档的翻译,由于英译中并且它本身就解释得有点抽象,所以看起来有点难理解原创 2021-03-22 09:13:33 · 100 阅读 · 0 评论 -
代理模式
代理模式静态代理 这里就举个例子,比如你某天要去上班,但是车突然坏了,然后你又急着去上班,所以将叫人将车拖到到店里交给修理工去修车,然后你自己就正常的去上班了。首先定义一个接口,接口里就可以定义你需要代理的方法public interface Repair { void repair();}定义被代理类。public class You implements Repair{ @Override public void repair() { S原创 2021-03-09 17:39:52 · 104 阅读 · 0 评论 -
JVM学习总结
JVM学习笔记运行时方法区Java栈栈是一种数据结构,程序=数据结构+算法,现在也可以说成:程序=框架+业务逻辑,毕竟现在框架太多,用起来也很方便,很多公司都开发都是这样用的。栈是先进后出,可以和队列对比,队列是先进先出。栈里一般存放的都是:8大基本数据、对象的引用、实例的方法栈是不存在垃圾回收机制的,因为栈内存主管程序运行,生命周期和线程同步。线程结束后,栈内存也就释放了。举个例子:在主程序main()方法中调用test()方法,当test()方法执行完后,栈就会立马原创 2021-01-26 17:19:08 · 93 阅读 · 0 评论 -
Java集合学习总结
Java集合 在Java中,有很多种方式可以用来表示集合,一般常用的就是Collection接口(编程时,一般使用的他的子类,List接口和Set接口)、Map接口和数组。CollectionListArrayList:底层数据结构是数组(动态数组),查询快(因为底层是数组,可以根据下标快速查找),增删慢,线程不安全,效率高,可以存储重复元素什么是动态数组?我们知道,在Java中数组一旦初始化,那么长度就固定了,而动态数组不存在这个问题。动态数组的实现原理:自己封装一个类用于实现原创 2021-01-20 16:10:23 · 137 阅读 · 0 评论