java switch语句支持string类型原理

java7以后,switch语句可以用在string类型上,从本质上讲switch对字符串的支持,其实底层也是int类型的匹配。它的原理如下:
通过对case后面的string对象调用hashcode()方法,得到一个int类型的hash值,然后用这个hash值来唯一标识这个case。
在匹配的时候,首先调用这个字符串的hashcode方法,得到一个hash值(int型),用这个hash值来匹配所有的case。
如果没有匹配成功,说明不存在;如果匹配成功了,接着会调用字符串的equals()方法来进行匹配。
由此看出,string变量不能是null,同时,switch的case子句中使用的字符串也不能为null。
这种方法可以使用string类型的变量也就是我们常说的语法糖。

猜你喜欢

转载自blog.csdn.net/u010075989/article/details/79729183