java 面试题 string
1.内存解析
栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)
堆:存放所有new出来的对象。
常量池:存放字符串常量和基本类型常量(public static final)。
2.字符串创建
String a = "a";
创建一个字符串,在常量池中创建"a";
String b = new String("b");
创建两个字符串,先在堆中创建字符串"b";再在常量池中创建字符串"b";
String c = new String("e"+"f");
创建两个字符串,构造器里的("e"+"f")在编译期就已经做了处理,即相当于("ef"),
先在堆中创建字符串"ef";再在常量池中创建字符串"ef";

浙公网安备 33010602011771号