String学习--基础

一、使用JDK自带的javap工具(反编译):命令javap -c 类名

package com.test;

public class Concatenation {
    public static void main(String[] args){
        String mango = "mango";
        String s = "abc" + mango+"def"+47;
        System.out.println(s);
    }
}

使用javap -c Concatenation

 

String学习--基础_第1张图片

从上可以看出,

1、String在拼接时,自动的使用Stringbuilder的append方法,提高效率。dup和invokevirtual时Java的汇编语言。从而看出,String在拼接的时候不是直接放到后面的,而是创建了一个StringBuilder对象;

2、每个String都有占有一个独立的内存空间

但是在jdk1.9之后,不再使用StringBuilder,而是直接拼接。Java做了优化,至于怎么优化,不清楚

1.9的效果

String学习--基础_第2张图片

你可能感兴趣的:(java开发)