关于switch语句中使用String类型的实现原理
2017-06-15 13:52
344 查看
在Java 7 以后,
从本质来讲,
通过对
那么当匹配的时候,首先调用这个字符串的
如果没有匹配成功,说明不存在;如果匹配成功了,接着会调用字符串的
由此看出,String变量不能是null;同时,
switch语句可以用作String类型上。
从本质来讲,
switch对字符串的支持,其实也是int类型值的匹配。它的实现原理如下:
通过对
case后面的String对象调用
hashCode()方法,得到一个int类型的Hash值,然后用这个Hash值来唯一标识着这个
case。
那么当匹配的时候,首先调用这个字符串的
hashCode()方法,获取一个Hash值(int类型),用这个Hash值来匹配所有的
case,
如果没有匹配成功,说明不存在;如果匹配成功了,接着会调用字符串的
equals()方法进行匹配。
由此看出,String变量不能是null;同时,
switch的
case子句中使用的字符串也不能为null。
相关文章推荐
- 关于switch语句中使用String类型的实现原理
- 关于java switch中不能使用String类型
- Java 7 switch支持String类型的原理和关于switch一些细节
- 关于java switch中不能使用String类型
- Java之戳中痛点 - (3)三目运算符的两个操作数类型尽量一致 Java之戳中痛点 - (4)i++ 和 ++i 探究原理 Java之戳中痛点 - (1)易变业务使用脚本语言编写 Java之戳中痛点 - (2)取余用偶判断,不要用奇判断 (5)switch语句break不能忘以及default不同位置的用法 Java之戳中痛点 - (7)善用Java整型缓存池
- 在switch语句中使用字符串以及实现原理
- 《CSAPP》switch语句使用跳转表实现
- 关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
- 关于统计的一个sql问题,使用动态sql语句实现。
- 关于函数strtok和strtok_r的使用要点和实现原理
- 关于类型判断符is和迭代器接口实现中yield return的使用
- switch 语句关于case的使用
- 关于函数strtok和strtok_r的使用要点和实现原理(二)
- 实验四第4题:关于switch...case分支语句的使用
- 关于函数strtok和strtok_r的使用要点和实现原理2
- 关于float /double、string类型的hash函数/hash表实现
- 关于字符和数字类型的索引,Oracle如何实现内部自动转换以及索引使用的验证测试
- 在c++Builder中使用boost正则表达式实现的查找double和int类型的字符串,并实现StringToInteger和StringToDouble函数
- 关于函数strtok和strtok_r的使用要点和实现原理(二)
- 关于函数strtok和strtok_r的使用要点和实现原理(一)