码迷,mamicode.com
首页 > 编程语言 > 详细

深入理解Java中的String

时间:2018-06-11 00:37:34      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:lan   out   构造   sts   main   tst   span   string类   ack   

一、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

标签:lan   out   构造   sts   main   tst   span   string类   ack   

原文地址:https://www.cnblogs.com/xianya/p/9164838.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!