我觉得对于String来说,源代码中所有 字面字符串比如说“abc”、"123" 等等
类加载期间会在常量池中创建该字符串的对象,使用 字面字符串赋值时就会将该对象的引用赋给它
对于Integer类来说,不需要有字面常量,直接在常量池中-128到127的对象。
Byte Short 同上
而Character,不需要有字面常量,直接在常量池中0到127的对象。
而Boolean,不需要有字面常量,直接在常量池中0和1的对象。
看了几篇文章都是侧重说String常量池技术,而很少提到其它几个包装类,不知道我的理解对不对。求高人解答!
Integer类缓存-128到127的对象,这个是代码行为
源代码中所有 字面字符串比如说“abc”、"123" ,这个是编译器行为
编译器行为对于java程序员来说,是上帝之手,除非你自己实现一个编译器,否则你不能做到。