示例:
由代码输出结果我们可以看到两种方法创建的字符串对象地址值不同,内容相同。
String s 是直接赋值的字符串对象,由于“hello”是常量,那么hello会出现在方法区的常量池中,如果有就直接赋值给s,如果没有先创建再把地址给栈内存中的 s 。s1 是构造方法new出来的,那么会先在堆内存创建个对象,然后指向常量池中的hello,最后再把堆中的对象地址给栈内存中的s1。其在内存中的关系用下图表示:
所以我们就知道为何其地址值不同,而却内容相同了。
示例:
由代码输出结果我们可以看到两种方法创建的字符串对象地址值不同,内容相同。
String s 是直接赋值的字符串对象,由于“hello”是常量,那么hello会出现在方法区的常量池中,如果有就直接赋值给s,如果没有先创建再把地址给栈内存中的 s 。s1 是构造方法new出来的,那么会先在堆内存创建个对象,然后指向常量池中的hello,最后再把堆中的对象地址给栈内存中的s1。其在内存中的关系用下图表示:
所以我们就知道为何其地址值不同,而却内容相同了。
本文简要介绍了Java循环创建对象内存溢出如何解决。
1、作用: 解析字节码文件(class文件),转化成相应操作系统执行的机器指令并提交执行 输入:class文件 &n
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M