关于java中的intern()方法

https://blog.csdn.net/gz_faker/article/details/76647851

 

从这个文章中可以理解intern。

后续再补充下这个问题的背景。

1、首先创建这个map;

private static Map map = new ConcurrentHashMap();

 2、因为接收到的是一个32字节的字符数组,比如说deviceid是:64 65 76 69 63 65 30 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00(这里是16进制)

byte[] deviceid=new byte[32];
byteBuf.readBytes(deviceid);

3、将这个key和value存入map

map.put(new String(deviceid),channel值);这里不说具体值;

4、这个时候,使用map.get(key)方法:

比如这个deviceid就是"device01",那么如果我使用 map.get("device01");,获取的是null

 

那么如果改变呢?

map.put(new String(deviceid).trim().intern,channel值);//这里因为字符数组中会存在0x00的字符,也就是要用trim方法先去掉 这部分的字符,然后再用intern()方法处理,才能等于“device01”这个值

你可能感兴趣的:(java)