Java代码隐藏代码
Java代码中可以通过Unicode注释后隐藏部分实际代码
1 |
|
上述代码会输出Hello,因为前面unicode会转义为换行,后面的代码正常执行。后面代码也可以全部转义为unicode,用于隐藏,如下。
1 |
|
上述会输出2次Hello。
Java代码中可以通过Unicode注释后隐藏部分实际代码
1 | @Test |
上述代码会输出Hello,因为前面unicode会转义为换行,后面的代码正常执行。后面代码也可以全部转义为unicode,用于隐藏,如下。
1 | @Test |
上述会输出2次Hello。
之前看slf4j-api源码时,2.0版本中切换不同的日志,采用的就是SPI。通过定义接口,不同的日志框架实现该接口,对于使用方而言,通过JDK提供的方法找到实现的类并构建对象。接口不直接实现,又其他第三方实现该接口,支持热插拔。
slf4j-api 1.*版本并不是用的这种方法,是通过自定义类org.slf4j.impl.StaticLoggerBinder,实现使用不同的日志。
在Java中Queue类主要存在两个子接口、一个抽象子类AbstractQueue。
AbstractQueue继承AbstractCollection和实现接口Queue,不允许存在null节点,存入和删除节点是如果为null会直接报错。
使用IDEA开发SpringBoot项目,有时候在导入项目后,写配置文件无提示。
可以正常提示的application.properties为一个绿叶图标,不能正常提示的图标为普通properties图标。
前言:本来项目中使用的redis采用的是集群模式,之后改为了哨兵模式。
今天在缓存平台上查看缓存,发现命中率非常低,缓存中key非常少,之前集群模式应该有即使上百万的key,现在就几百。几番排查后发现在集群模式下使用了mset
可以正常批量写入数据,之后通过mexpire
批量设置失效时间。改为哨兵模式后,mset
无法使用。
业务中如果缓存没命中会直接查询数据库,所有在测试时并未发现什么问题。
确实哨兵模式下,也有对应的mset
,但是该模式下没有批量设置失效时间,只能使用lua脚本对数据进行操作。
String中replace是我们常用的一个方法,用于替换字符中的字母。
java.lang.String#replace(char, char)
入参为char,源码如下:
1 | public String replace(char oldChar, char newChar) { |