关于java对象的问题,求解惑

String a = ' ' 和String b = new String('b')一共创建了几个对象?

1-3个。
String a = ' ' 检查常量池中是否有' ',若有则令a指向它,没有则在常量池中创建字符串对象' ';
String b = new String('b') 首先无论如何在堆中创建一个对象'b',然后检查常量池中是否有'b',,没有则在常量池中创建字符串对象'b';

是的1-3个对象,建议看看字符串缓冲池的相关文章

这个如果是你自己要理解对象的话,你最好对照着书上或者老师教你的关于String的定义一个一个的数;
多数一个或者少数一个是没有关系的;
因为可能你在练习的是在教你明白对象这个概念;
在后来的项目里是没有人让你来数,你上面第二行定义的代码到底有多少个字符串对象的,而且这样用的也很少;
基本上就是用你第一行定义的那样的方式。
或者,在后来你的编程项目经验增长和你的编程知识增多后,你会慢慢明白这样的代码你在开始学习计算机时到底是多数了一个对象,还是少数了一个对象。

1,2或者3个。
1.首先String不属于8种基本数据类型,String是一个对象。但是String又是一种特殊的对象--常量池(constant pool)。
2。常量池(constant pool)--指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。
String a = “”会先在常量池中检索,如果存在,则令a指向它,没有则在常量池中创建字符串对象';
String b = new String('b');要明确,不管b在常量池中存不存在,只有java 出现 new , 就会创建一个新的地址空间。用于保存b

记住new关键字是在堆中分配内存,而“”字符串是在字符串缓冲区分配内存就好理解了