自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (3)
  • 收藏
  • 关注

原创 try-catch-finally、return、throw异常之间的执行顺序

try-catch-finally、return、throw异常之间的执行顺序。

2024-05-15 20:03:26 95 1

原创 数据中有emoji,导致插入不了数据库

前言前两天负责的系统,因为需要获取用户的昵称并进行入库,但是有个别用户的昵称中存在emoji表情,导致入库时报错。报错内容:java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\x94‘ for column问题原因Q:为什么我们设置表的的字符类型为utf8却不能存放emoji呢?A:因为我们UTF-8编码可能是2或3或4个字节,但mysql中的utf8是3个字节,存放一个emoji是需要4个字节的,自然不够。Mysql数据

2021-11-20 21:58:36 4536 2

原创 升级JDK8的坎坷之路

为更好的适应JAVA技术的发展,使用更先进及前沿的技术。所以推出将我们现在使用的JDK1.6(1.7)及tomcat6(7)升级至JDK1.8及tomcat8,使我们的系统获得更好的性能,更好适应未来及节约成本一、升级JDK8流程1、服务器JDK版本升级将JDK1.8版本安装到服务器上2、老系统升级时专用流程将老代码(1.6或1.7编译的)部署到升级的服务器上(JDK有向下兼容原则),灰度观察一段时间(但也有部分不兼容的内容)查看代码运行是否有问题JDK不向下兼容部分:https://www

2021-11-09 09:15:00 1352

原创 彻底解决SLF4J的日志冲突的问题

今天公司同事上线时发现,有的机器打印了日志,而有的机器则一条日志也没有打。以往都是没有问题的。因此猜测是这次开发间接引入新的日志jar包,日志冲突导致未打印。排查代码发现,系统使用的是SLF4J框架打印log4j2的日志。查看系统中引入的jar包发现果然有多个SLF4J的桥接包。于是排掉冲突jar包,然后上线时所有机器都正常打印日志先上一张关系图:SLF4J框架、各种具体日志实现以及相应桥接包的关系图一、起因由于线上系统要接入很多中间件,因此系统中会有各种各样的日志打印形式(例如:log4j2

2021-11-05 10:00:00 2514 3

原创 细数线程池五大坑,一不小心线上就崩了

系统性能优化的几种常用手段是异步和缓存。因此我们常常使用线程池异步处理一些业务。线程池的使用还是相对比较简单的,首先创建一个线程池,然后通过execute或submit执行任务。但魔鬼往往藏于细节之中,稍有不慎就会出错。本文将会详细总结线程池容易出错的五大坑一、拒绝策略参数知多少二、拒绝策略使用不当,系统阻塞不可用三、多任务get()异常时,结果获取有误四、ThreadLocal与线程池搭配使用,上下文缺失五、父子任务共用同一线程池,系统“饥饿”死锁以下为线程池的核心流程【具体内容参

2021-11-02 10:00:00 607

原创 实战 | 线程池的几种自定义扩展

下图为线程池的构造方法,我们可以自定义一些功能实现项目优化1、预先启动核心线程this.prestartAllCoreThreads();使用方式:自定义线程池的构造方法中调用作用:当真正任务被执行时,可以减少创建线程带来的性能损耗2、自定义线程池线程工厂官方提供的默认线程池工厂为Executors.defaultThreadFactory();我们可以仿照进行自定义扩展线程工厂,增加一些个性化功能。如下图所示,我们自定义线程池线程工厂时可以附加很多功能。1、定制化线程池内线程名称,便

2021-10-29 09:30:00 225

原创 线程池系列三:动态修改线程池队列大小

线程池中的队列要求的是阻塞队列,作用主要是当线程池处理任务能力不足时,队列存储多余的任务,从而起到削峰和缓冲的目的。可以选择的队列种类很多,如何选择合适的队列应用到自己的线程池中?就需要了解他们的优缺点,从而择优使用1、常见阻塞队列常见的阻塞队列都是以基于BlockingQueue的实现ArrayBlockingQueue一个基于数组结构的有界阻塞队列,此队列按 FIFO(先进先出)原则对元素进行排序。LinkedBlockingQueue一个基于链表结构的有界阻塞队列(不设置大小时,默认

2021-10-25 22:37:05 4863

原创 线程池系列二:一张动图,彻底懂了execute和submit

目录1、为线程池提交任务2、流程分解我们知道线程池通过execute方法执行提交的Runnable任务,但Runnable只是执行任务,没有返回任何信息。【线程池原理:线程池原来是个外包公司,打工人我悟了】若是我们想在异步执行完任务后能够拿到结果。怎么处理呢?我们可以借助Callable来回去返回结果。线程池为我们提供了另外一种方式执行任务,即submit方法1、为线程池提交任务 execute方法执行Runnable任务 .

2021-10-23 15:24:52 402

原创 线程池系列一:线程池原来是个外包公司,打工人我悟了

这里写自定义目录标题

2021-10-23 15:23:59 104

原创 常用日志框架及源码解析

常用日志框架及源码解析常用日志框架基础日志框架log4jlog4j2logbackJUL(java日志框架)日志框架集成JCL(有自己默认的日志,总会打印出日志)源码分析SLF4J(日志接口,无默认日志,必须搭配日志桥接器)源码分析SLF4J日志桥接器使用Slf4时如何桥接遗留的api引用常用日志框架基础日志框架log4j、log4j2、logback、JUL(java日志框架)日志框架集...

2019-03-28 18:19:28 1221

原创 easypoi注解导出Excel

pom.xmldependency> groupId>org.jeecggroupId> artifactId>easypoi-baseartifactId> version>2.3.1version>dependency>dependency> groupId>org.jeecggroupId> artifactId>easypoi-annota

2018-01-24 11:57:13 2470

转载 Map中提供的一个算法(提供一个值,返回大于等于该值的最接近的2的指数幂)

Map中提供的一个算法(提供一个值,返回大于等于该值的最接近的2的指数幂) eg:(例:5–>8;9–>16,16–>16)static final int MAXIMUM_CAPACITY = 1 << 30;/** * Returns a power of two size for the given target capacity. */ static fi

2017-12-01 11:26:10 431

原创 前端页面展示文字过长时用...代替

限制表table的变化,加上width限制宽度,在table上添加样式style="table-layout:fixed;"文字过长设置为省略号,展示字段商添加样式style="text-overflow:ellipsis;overflow:hidden;white-space:nowrap;"鼠标经过时展示内容使用title

2017-09-12 16:39:28 5686

原创 弹框遮罩层

<!--背景隐藏层--> <div class="back_con" style="display: none"></div><!--end背景隐藏层--><!--样式-->.back_con{ position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9997;

2017-09-12 16:29:17 826

原创 使用AJAX的几种方式

普通形式的AJAXvar data={'id':id};jQuery.ajax({ type:'post', url:XXX, data:data, dataType:'json', cache:false, async:true, //true为异步,false为同步 success:function(data){}})

2017-09-04 21:46:04 413

快速访问github的方式

hosts 文件在每个系统位置:Windows 系统:C:\Windows\System32\drivers\etc\hosts Linux 系统:/etc/hosts Mac(苹果电脑)系统:/etc/hosts Android(安卓)系统:/system/etc/hosts iPhone(iOS)系统:/etc/hosts 修改方法,把第一步的内容复制到文本末尾:Windows 使用记事本。 Linux、Mac 使用 Root 权限:sudo vi /etc/hosts。 iPhone、iPad 须越狱、Android 必须要 root。 2.1.3 激活生效 大部分情况下是直接生效,如未生效 可尝试下面的办法,刷新 DNS: Windows:在 CMD 窗口输入:ipconfig /flushdns Linux 命令:sudo nscd restart,如报错则须安装:sudo apt install nscd 或 sudo /etc/init.d/nscd restart Mac 命令:sudo killall -HUP mDNSResponder Tips: 无效可重启机器

2024-07-17

redis insight mac m

https://redis.io/insight/#insight-form

2024-07-12

maven的setting配置文件

maven的setting配置文件

2024-06-14

jd-gui-windows

jd-gui-windows

2024-04-18

jdseckill2 .rar

seckill

2021-01-04

apache-jmeter-5.1.1.rar

apache-jmeter-5.1.1

2021-01-01

Veloeclipse.ui-2.0.8

veloeclipse 插件。velocity是一个基于java的模板引擎。程序员写一个模版便可生成大量的同结构页面。页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。

2018-01-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除