深入理解Java中的String
Posted xianya
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解Java中的String相关的知识,希望对你有一定的参考价值。
一、String在内存中的结构
注意:String类声明的变量名放在栈中,New出来的对象放在堆中,String具体常量类容放在常量池
二、String是不可变对象
java.lang.String类使用了final修饰,不能被继承。String是常量,其对象一旦构造就不能再被改变
package com.yyx.pratice; public class TestString { public static void main(String[] args) { String str1 = "Hello World"; System.out.println(str1); String str2 = upcase(str1); System.out.println(str2); System.out.println(str1); } public static String upcase(String s) { return s.toUpperCase(); } }
三、创建对象个数
1.String a = new String("1"+"2")共建了几个对象?
创建了2个对象,由于编译器会把等号右边的进行合并,所以他在常量区会建立一个 "12’的字符串,然后,在堆上创建一个对象叫a
2.String str=new String("abc")共建了几个对象?
创建了2个对象
以上是关于深入理解Java中的String的主要内容,如果未能解决你的问题,请参考以下文章