为了账号安全,请及时绑定邮箱和手机立即绑定

为什么java相同的String有不同的hashcode

为什么java相同的String有不同的hashcode

慕少森 2021-09-26 16:58:33
我有一堂课:package com.test;public class TestA {    public static final String TEST = "饕餮ABCDEFG";    public TestA() {        System.out.println(TEST.hashCode());    }}同一个类(没有包,放在E:,javac Test.java,得到Test.class):public class TestA {    public static final String TEST = "饕餮ABCDEFG";    public TestA() {        System.out.println(TEST.hashCode());    }}测试类:package com.test;import java.net.URL;import java.net.URLClassLoader;public class Test3 {    public static void main(String[] args) throws Exception {        URLClassLoader loaderA = new URLClassLoader(new URL[]{new URL("file:E:/")});        Class clazzA = loaderA.loadClass("TestA");        clazzA.newInstance();        TestA testA = new TestA();    }}输出:2502189131111280555问题:为什么会这样?我认为字符串“饕餮ABCDEFG”具有相同的地址,因为常量池。 
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 529 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信