.java文件编译后得到 .class文件,里面包含了类的信息,其中有一块叫做常量池(Constant Pool)的区域 (.class常量池和内存中的 String Pool 并不是同一个东西),.class文件常量池主要存储的就包括字面量,字面量包括类中定义的常量,由于String是不可变的(String为什么是不可变的?)所以字符串“Hello”就存放在 .class...
之前没有任何地方用到了这个字符串,第一次声明这个字符串就用的是 new String 的方式,这种情况下会直接在堆中创建一个字符串对象然后返回给变量。 我看到好多地方说,如果字符串常量池中不存在的话,就先把字符串先放进去,然后再引用字符串常量池的这个常量对象,这种说法是有问题的,只是 new String 的话,如果池...
因为String#intern方法是native方法,跟踪源码下去看是c😭😭然后就开始看不懂了,就只看懂了个大概,大概知道字符串常量池里的东西是用StringTable存的,这个StringTable是类似HashTable的东西,那么他的Key和Value到底存的是什么呢??ball ball大佬解答一下noob的困惑😭😭😭#笔试题目##实习##春招##面经#...