当前位置:  开发笔记 > 编程语言 > 正文

内存分配到字符串对象?

如何解决《内存分配到字符串对象?》经验,为你挑选了1个好方法。

因为,在Java中,字符串被实现为类型的引用Object.Also,String constants被实现为对象.

例如:

System.out.println("This is a String");

在上面的语句中,"This is a String"也实现为Object类型.这意味着它将被分配与内存相同的内存

String str = "This is a String";

我的问题是如果我+在这样的同一System.out语句中使用运算符打印多个字符串怎么办 ,

System.out.println("This is a String" + "This is another String");

现在,我基本上问的是,我想知道,如果"This is a String""This is another String"会占用不同的存储空间或相同的内存空间?

另外,在println()语句中的字符串之间添加变量是否会产生影响?

例如:

int i = 10;
System.out.println("This is a String" + i + "This is another String");

与本网站上的字符串相关的其他问题并没有具体回答我的问题.请点亮这个问题^ _ ^

任何帮助,将不胜感激



1> YoungHobbit..:

什么我基本上问的是,我想知道,如果"This is a String""This is another String"会占用不同的存储空间或相同的内存空间?

这里既有String为常数,所以在编译的时候,他们将串联和 String "This is a StringThis is another String"将在字符串池中创建.

System.out.println("这是一个字符串"+ i +"这是另一个字符串");

实际输出String是在运行时确定的,因此它将String在堆区域中创建不同的s.

来自Java Documentation:String

Java语言为字符串连接运算符(+)提供特殊支持,并为其他对象转换为字符串.字符串连接是通过StringBuilder(或StringBuffer)类及其append方法实现的.字符串转换是通过toStringObject定义的方法实现的,并由Java中的所有类继承.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有