HashMap key使用注意事项 key“存在“却获取不到原因
存在对应的key却获取不到的原因有
-
如果是对象的话,记得查看对象hash方法是否满足自己业务,因为key是取对象hash值来进行存储的。 key的开始跟结束存在空格 key的开头为uFEFF 字符,正常是看不出来的,debug模式看key字符串的value才能看出来 : 这个uFEFF到底是个啥???叫做BOM。 BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码,但它对于文件的读者来说是不可见字符。 BOM定义:http://www.unicode.org/unicode/faq/utf_bom.html 因为Unicode可以采用16位或者32位编码,所以计算机在处理时需要知道其字节顺序,BOM就是用来标识字节流的字节顺序的,但字节顺序这个 概念对UTF-8来说是没有意义的,所以BOM对UTF-8同样没有意义。但Unicode标准BOM在UTF-8编码格式中存在,其存在位置在文件开 头,以三个字节0xEF, 0xBB, 0xBF表示。 UTF-8编码不推荐使用无意义的BOM,但许多Windows程序却在保存UTF-8编码的文件时将其存为带BOM的格式(即在文件开头加上0xEFBBBF三个字节),这么干的就包括Windows记事本。 因此,在编辑UTF-8的文件时,建议不要使用记事本等进行编辑,虽然保存后的文件仍然是UTF-8,但却已经不再是保存前的UTF-8了。 解决方法:可以使用hutool封装的BOMInputStream来去除bom。
