我有这个 TCP/UDP 端口号列表及其字符串描述:
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
现在这是一个HashMap 的形式,其中端口号作为键,字符串描述作为值。它可能不是那么大,但我必须在数据包到来时实时查找端口描述,正如您可以想象的那样,这需要有效的检索,否则会大大减慢处理速度。
最初我想实现巨大的 switch case/break 逻辑或者 if,else if 但是这听起来太破旧了,所以我想出了这个 hashMap。
现在我想知道如果查询总是相同的,Java 是否有类似缓存机制来加速?像大多数查询的端口将是 80、443、23、22 等,很少有其他服务类型的数据包可能到达。
我的选择:
我是否应该在开始时对最常见的类型进行几次 else-if 检查,然后如果之前没有找到,则恢复到这个 hashMap
我是否应该继续使用此 hashMap 为我进行搜索
我应该恢复到其他一些聪明的方式吗?
请建议。