java开发
文章平均质量分 76
大壮001
这个作者很懒,什么都没留下…
展开
-
memcached集群分布式缓存的hash一致性算法【图解】
先来一张图,memcached分布式集群的访问模型图:上图中,api访先问memchached集群时,先通过路由算法获取key所对应的物理机器IP,然后再到相应的服务器上获取缓存数据。下面通过路由算法来解释hash一致性算法:传统hsah算法最简单的计算方法是对key的hash取模,然后获取所在机器。如下图所示,假如有3台机器作为集群,当要访问一个key的value时,先对key取hash值然后除以3,即可得出在第几台机器。然后去相应的机器访问取值。上述算法是最简单最直接的的办法。但是会有很大原创 2021-03-18 21:25:46 · 284 阅读 · 0 评论 -
邮件附件标题中文乱码=UTF-8Q=E9=A2=84=E8=......8D-4.pdf=
邮件发送时,附件标题中文乱码,本来是一个中文,但是收到邮件的时候,就显示成了=UTF-8Q=E9=A2=84=E8=A7=88_=E5=90=8D-4.pdf= 。没有稳定复现,但是出现问题的邮件能复现该现象。调用的编码java api为:MimeUtility.encodeText()。经过排查,发现日志如下:文件名编码后,在发送的过程中由于过长被截成两段了,导致解码失败。解决方案:System.setProperty(“mail.mime.splitlongparameters”, “fa原创 2020-12-06 20:01:50 · 4973 阅读 · 0 评论 -
“Comparison method violates its general contract!”问题原因及解决办法
开发中踩到的坑。通过arraylist.sort对元素进行排序,测试阶段没发现,上线后不久报了这个错误。“Comparison method violates its general contract!”。查了一些资料,下面总结一下。先贴下出错的代码:stus.sort((o1, o2) -> { if(o1 == null || o2 == null || o1 == o2) { return 0; }原创 2020-10-22 22:14:11 · 47001 阅读 · 1 评论 -
解决读取配置文件properties多种文件格式乱码的问题(自适配properties编码格式)
aa原创 2020-09-28 22:26:20 · 362 阅读 · 0 评论 -
开发中遇到的坑——用Arrays.asList将数组转成list,调用用add()方法报错Exception in thread “main“ java.lang.UnsupportedOperati
最近项目中遇到了一个坑,项目启动没问题,一直正常运行,有一次报了莫名其妙的错误:Exception in thread “main” java.lang.UnsupportedOperationExceptionat java.base/java.util.AbstractList.add(AbstractList.java:153)at java.base/java.util.AbstractList.add(AbstractList.java:111)at arraylist.Test.main原创 2020-09-08 19:47:00 · 337 阅读 · 0 评论 -
java DateFormat的自定义pattern的格式解析规则:忽略特定的单词
自定义DateFormat开发中最常用的日期解析类是simpleDateFormat,往往能完成大部分对日期解析、或者转成固定格式字符串的需求。但有时候对pattern的解析有更加复杂的需求,比如忽略掉pattern中的某些单词,或者按照自定义的脚本进行解析,这时候就需要自己定义规则了。举个例子来说,希望将2020/8/29 转换成 “FY2020”来展示,如果pattern是“FYyyyy”,明显解析出来的结果并不是我们想要的。以该需求为例,下面自定义一个日期处理类AdvanceDateForma原创 2020-08-29 21:38:37 · 1487 阅读 · 0 评论 -
解决weblogic.net.http.SOAPHttpsURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection
今天部署一个应用程序出现问题,在tomcat上测试好好的,但是部署到weblogic之后报错:weblogic.net.http.SOAPHttpsURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection,是在调用post或者get方法时候出错的。经过查阅资料后找到两种解决办法,测试真实有效:1、构造url使用新的构造方法(推荐使用):URL url = new URL(null, urlstr, new sun.net.www.原创 2020-06-12 23:42:12 · 1780 阅读 · 2 评论 -
Integer的==与equals比较——开发中遇到的大坑
wde原创 2020-06-11 09:29:54 · 396 阅读 · 0 评论 -
BigDecimal踩过的那些坑,BigDecimal一定不会丢失精度吗?
当需要进行高精度计算时,比如银行系统的money结算,一般都会采用BigDecimal来进行计算,这已经是一个常识了。但是BigDecimal一定不会丢失精度吗?先看一个例子:public class Test { public static void main(String[] args) { BigDecimal value1 = new BigDecimal(0.1); BigDecimal value2 = new BigDecimal(0.2); Sy原创 2020-05-27 10:31:39 · 902 阅读 · 0 评论 -
java中SimpleDateFormat和Calender的简单用法(有项目实例及代码)
最近做项目用到这两个类,还是很方便的,很想分享给大家。业务背景介绍首先说下业务场景,我们做的是oa系统,在创建流程的时候,让用户输入一个时间,然后流程延后启动。那么用户在输入时间的时候,就有两种方式可以选择:具体的时间,比如 2020/05/25 08:00:00,流程将会在这个时间节点启动;输入增量,比如延后 0年0月3天2时0分0秒;由于前台往后台传的是json字符串,后台需要做的是解析成具体的时间date,然后以固定的格式返回给用户,比如“2020-05-25,08:00”。由字符原创 2020-05-24 08:53:43 · 243 阅读 · 0 评论 -
java中finalize()的用法
java虚拟机中的内存清理,是通过垃圾回收器来进行清理的,这个过程是不需要程序员来操心。一个对象被用完之后,在某个时间段就会被回收,如果这个对象用完之后就“弃之不顾”,或许会有一些安全问题。因此这个方法存在的意义就是,这个对象被处理前能做的最后一件事。finalize()是object类的一个方法,当堆中的对象被回收时,会先调用这个方法,然后对象才会被销毁。先来看一段代码:下面的代码中,将会创建一个礼物生产工厂对象,该对象重写了finalize()方法。如果gifts仓库中的礼物还没有被拿完,就被原创 2020-05-21 21:55:16 · 255 阅读 · 0 评论 -
maven打包时,lib文件夹下的jar无法加载(程序包不存在)
maven打包时,lib文件夹下的jar无法加载(程序包不存在)程序能正常run、debug,但是使用maven进行 package打包时,却出现" java: 程序包xxxx不存在"的问题。解决办法如下:在pom.xml中加入如下代码: <plugin> <groupId>org.apache.maven.plu...原创 2019-11-18 20:10:00 · 1494 阅读 · 0 评论