Java中string str=new string(abc)中str存放的的是地址还是值
时间: 2024-02-09 22:07:48 浏览: 17
在Java中,`String`也是引用类型,因此`str`存放的是地址,而不是值。当使用`new`关键字创建一个新的字符串对象时,内存中会分配新的空间存储这个字符串,并返回它的引用。`str`变量会保存这个引用,指向这个新分配的内存空间,而不是字符串的值本身。需要注意的是,Java中`String`对象是不可变的,因此对于同一个字符串值,多个`String`对象可能会指向同一个内存空间。
相关问题
String str = "abc"; 只打印b
可以使用字符串的 charAt() 方法获取指定位置的字符,然后将其打印出来。在 Java 中,字符串的索引从 0 开始。所以要打印字符串中的第二个字符,需要获取索引为 1 的字符。可以按照以下方式实现:
```
String str = "abc";
System.out.println(str.charAt(1));
```
输出结果为:
```
b
```
java String str="abc" 创建了几个对象 ;java String s = a+b+c+d+e 创建了几个对象
第一个问题:在Java中,创建了2个对象。一个是字符串常量池中的"abc",另一个是在堆中的String对象,它引用了字符串常量池中的"abc"。
第二个问题:在Java中,创建了5个对象。在编译时,"a"、"b"、"c"、"d"和"e"都被当作字符串常量处理,会被放入字符串常量池中。然后,在运行时,会创建4个String对象。首先,"a"和"b"会被拼接成一个新的String对象,然后再将其与"c"拼接成另一个新的String对象,以此类推,直到拼接完成。因此,总共创建5个对象。