摘要:
最近遇到了两个序列化相关的问题,比较典型,备忘特此留笔。 1.rpc调用时未进行序列化而导致的rpc调用失败 使用dubbo框架在进行rpc调用的时候,出现了下面的问题,原因是因为接口参数中的NoSerialReqDto类没有实现Serializable接口,没有进行序列化导致的。 Caused b 阅读全文
摘要:
前言 将数据从一张表迁移到另外一张表的过程中,通过mysql的concat方法批量生成sql时遇到了一个问题,即进行UPDATE更新操作时如果原表中的字段中包含单引号'或者双引号",那么就会生成不正确的update语句。 原因当然很简单因为update table set xxx = 'conten 阅读全文
摘要:
前言 Dating Java8 系列视频从实用性的角度出发介绍了Java8中的核心特性及其应用场景。 通过系列视频的学习后你将掌握较之以往更为巧妙的编码方式和编程技巧,从而提升我们的开发效率。 与Java8的浪漫的相遇将会使你忘掉过去繁冗的编码方式,只需用之前一半不到的时间就能写出更短、更清晰的代码 阅读全文
摘要:
背景描述 因为业务需求的需要,我们需要在原来项目中的一个DTO类中新增两个字段(我们项目使用的是dubbo架构,这个DTO在A项目/服务的domain包中,会被其他的项目如B、C、D引用到)。但是这个DTO对象已经在Redis缓存中存在了,如果我们直接向类中增加字段而不做任何处理的话,那么查询操作查 阅读全文
摘要:
背景介绍 今天需要给一张表里面补数据,需要按照行的维度进行update,如果是个别数据那么直接写update语句就可以了,但是场景要求的是将整表的数据进行update,要实现这个需求就不能只靠蛮力了,需要有一点小技巧来完成这个工作。 实例演示 以下面的场景作为示例进行讲解: 学生表: 一张简单的学生 阅读全文
摘要:
避之不及的 NullPointerException NPE : NullPointerException 空指针异常是最常见的Java异常之一,抛出NPE错误不是用户操作的错误,而是开发人员的错误,应该被避免,那么只能在每个方法中加入非空检查,阅读性和维护性都比较差。 以下是一个常见的嵌套对象:一 阅读全文
摘要:
一、背景 今天在计算库存消耗百分比(消耗的库存/总库存)的时候遇到了一个错误,java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 通过异常的描 阅读全文
摘要:
一、字符串连接的效率问题 使用String连接字符串时为什么慢? 小知识点 java中对数组进行初始化后,该数组所占的内存空间、数组长度都是不可变的。 创建一个字符串,为字符串对象分配内存空间,会耗费掉一定的时间(CPU)与空间(内存)代价,作为最基础的数据类型,大量频繁的创建字符串,极大程度地影响 阅读全文
摘要:
定义 一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义。 转义就是指转换该字符的原本意义,从而变成另外的意义。 \作为Java的转义字符 1.在java字符常量中,反斜杠(\)是一个特殊的字符,被称为转义字符,它的作用是用来转义后面一个字符。转义 阅读全文
摘要:
最近在做统计相关的功能的时候涉及到了获取当天的开始和结束的时间戳、当月和当年的开始结束时间戳,特此记录,以作备忘。 相关代码 效果 阅读全文
摘要:
今天在打包项目的过程中出现了编译问题,奇怪的是这个项目已经好久没有修改过了,报错如下。 原因在于设置外部依赖包的版本时使用了LATEST,这样每次便会尝试拉取最新版本的包。 问题原因: 问题的错误提示很明确,是找不到paypal的sdk方法,很自然的就把问题指向了版本依赖上面,经过一番搜索后在Mav 阅读全文
摘要:
背景 在对Double类型的数据进行计算操作,将结果转化为BigDecimal时抛出了下面的异常,进行了Debug才发现了问题原因,同时也暴露出了自己在一些基础知识上还有些欠缺。 概念补充 在java中进行数字类型运算的时,之前一直有一种错误的观念,即进行除法运算时当除数为0时在运行时会抛出java 阅读全文
摘要:
背景 微信退款接口需要使用到证书,我参考微信的官方Demo进行,部分代码如下: 上面的代码,在本地调试的时候正常跑过,没有出现任何异常,但是放到测试环境之后便会出现下面的异常,这三种异常都是从ks.load(certStream, password)这里抛出来的。定位这个问题花费了一些时间,且让我小 阅读全文
摘要:
背景 今天在跑定时任务的过程中,发现有一个任务在设置数据的查询时间范围异常,出现了开始时间戳比结束时间戳大的奇怪现象,计算时间戳的代码大致如下。 先放出结论:因为java中整数默认是int类型,在计算的过程中30 * 24 * 60 * 60 * 1000计算结果大于Integer.MAX_VALU 阅读全文
摘要:
小方法大门道 小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示。 上述代码是有问题的,布尔变量a和整型变量b在方法操作之后,它们的值并没有发生变化,小瓜瓜事与愿违。 究其原因 阅读全文