今日bug日记
—2023年6月5日
Windows使用toString()方法显示的是sign_params=alipay_sdk%3Dalipay-sdk-java-4.35.45.ALL
linux系统打印日志的时候显示成了
sign_params=+alipay_sdk%3Dalipay-sdk-java-4.35.45.ALL%
多了一个+号
盲猜可能是因为系统的问题,以下是gpt的回答:
是的,Linux和Windows操作系统上的字体确实有些区别。
首先从字体本身来说,Windows上采用的是TrueType字体和OpenType字体,而在Linux中,则主要采用TrueType、OpenType以及Type 1字体。这些字体的文件格式不完全相同,因此会在不同操作系统上显示略微不同。
其次,不同操作系统使用的字体渲染引擎也有所不同。在Windows中,采用的是DirectWrite渲染引擎,而在Linux中,主要采用FreeType渲染引擎。这两种渲染引擎在字体显示上也有微小的差异,会导致字体显示的略微改变。
此外,Linux系统下的默认字体和Windows系统下的默认字体也有所不同,从而导致了在相同字体下,Linux和Windows显示的效果也不同。
总体而言,Linux和Windows虽然使用了相近的字体文件格式,但是在具体字体显示方面,仍然存在一些细微的差异。如果需要在不同操作系统中实现相同的字体显示效果,需要进行一些特殊的处理和调整。
补充:
针对+号变空格的原因,也可能是使用了URLEncoder.encode()方法后,URLEncoder.encode()方法会把空格变成加号(+)在前台页面显示的时候会多出加号
—2023年6月6日
if (StringUtils.isNotBlank(String.valueOf(map.get(“total_amount”)))) {}
StringUtils.isNotBlank() 和 String.valueOf() 方法不能同时用,因为当字符串为空的时候String.valueOf()会返回一个字符串格式的null值和”null“值是不一样的
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
—2023年7月3日
1、init()方法被@PostConstruct注解修饰,表示该方法应该在对象创建过程中被调用。当创建当前类对象时,依赖注入完成后,会自动触发执行init()方法,并执行其中的初始化操作
2、static修饰的静态方法,在被调用时执行
3、static修饰的静态代码块,则在类加载后执行
欢迎各位大佬在评论区沟通交流~~