摘要: 升级JDK8的坎坷之路 为更好的适应JAVA技术的发展,使用更先进及前沿的技术。所以推出将我们现在使用的JDK1.6(1.7)及tomcat6(7)升级至JDK1.8及tomcat8,使我们的系统获得更好的性能,更好适应未来及节约成本 一、升级JDK8流程 1、服务器JDK版本升级 将JDK1.8版本安装到服务器上 2、老 阅读全文
posted @ 2021-11-08 22:54 zy苦行僧 阅读(2028) 评论(7) 推荐(2)
摘要: 彻底解决SLF4J的日志冲突的问题 今天公司同事上线时发现,有的机器打印了日志,而有的机器则一条日志也没有打。以往都是没有问题的。 因此猜测是这次开发间接引入新的日志jar包,日志冲突导致未打印。 排查代码发现,系统使用的是SLF4J框架打印log4j2的日志。查看系统中引入的jar包发现果然有多个SLF4J的桥接包。于是排掉冲突ja 阅读全文
posted @ 2021-11-05 00:58 zy苦行僧 阅读(2192) 评论(1) 推荐(0)
摘要: 细数线程池五大坑,一不小心线上就崩了 注意!注意!注意!重要的事说三遍 阅读全文
posted @ 2021-11-01 22:14 zy苦行僧 阅读(786) 评论(0) 推荐(1)
摘要: 实战 | 线程池的几种自定义扩展 下图为线程池的构造方法,我们可以自定义一些功能实现项目优化 1、预先启动核心线程 this.prestartAllCoreThreads(); 使用方式:自定义线程池的构造方法中调用 作用:当真正任务被执行时,可以减少创建线程带来的性能损耗 2、自定义线程池线程工厂 官方提供的默认线程池工厂为Exe 阅读全文
posted @ 2021-10-28 23:05 zy苦行僧 阅读(683) 评论(0) 推荐(0)
摘要: 线程池中的队列要求的是阻塞队列,作用主要是当线程池处理任务能力不足时,队列存储多余的任务,从而起到削峰和缓冲的目的。 可以选择的队列种类很多,如何选择合适的队列应用到自己的线程池中?就需要了解他们的优缺点,从而择优使用 1、常见阻塞队列 常见的阻塞队列都是以基于BlockingQueue的实现 Ar 阅读全文
posted @ 2021-10-25 22:40 zy苦行僧 阅读(443) 评论(0) 推荐(0)
摘要: 前言 前两天负责的系统,因为需要获取用户的昵称并进行入库,但是有个别用户的昵称中存在emoji表情,导致入库时报错。 报错内容: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\x94‘ for column 问题原因 Q:为 阅读全文
posted @ 2021-11-20 22:01 zy苦行僧 阅读(346) 评论(0) 推荐(1)
摘要: ​ 我们知道线程池通过execute方法执行提交的Runnable任务,但Runnable只是执行任务,没有返回任何信息。 【线程池原理:线程池原来是个外包公司,打工人我悟了】 若是我们想在异步执行完任务后能够拿到结果。怎么处理呢? 我们可以借助Callable来回去返回结果。线程池为我们提供了另外 阅读全文
posted @ 2021-10-23 15:59 zy苦行僧 阅读(275) 评论(0) 推荐(0)
摘要: 我们在工作中经常用到线程池,线程池(Thread Pool)是一种基于池化思想管理线程的工具。 线程的作用是处理任务,而池则是帮助我们实现资源的重复利用和管理。线程池就是帮助我们异步处理任务的工具 很多时候技术设计思想往往可以从现实中找到映射的。 将线程池比作一个外包公司,那么提交给线程池的任务则可 阅读全文
posted @ 2021-10-23 15:54 zy苦行僧 阅读(104) 评论(0) 推荐(0)