zoukankan      html  css  js  c++  java
  • java基础入门-你不知道的string-不可改变性与编译器优化

    1.不可改变性

    package com.ray.teststring;
    
    /**
     * 不可改变性
     * 
     * @author ray
     * @since 2015-04-19
     * @version 1.0
     *
     */
    public class UnChangabel {
    	public static void main(String[] args) {
    		String greeting = "Hello";
    		String greeting2= greeting;
    		System.out.println(greeting.equals(greeting2));
    		greeting = greeting.substring(0, 3) + "p!";
    		System.out.println(greeting.equals(greeting2));
    	}
    }


    输出的结果是:

    true
    false

    当一个字符串做拼接或者分割操作的时候,他是重新new一个新的对象出来,而不再是原来的那个对象


    2.编译器优化

    编译器可以让字符串“共享”

    可以理解为:各种字符串都是放在一个存储池里面。当对字符串操作,编译器会先做一遍,然后把所有的结果都存储起来,然后再输出结果。

    package com.ray.teststring;
    
    /**
     * 编译器优化
     * 
     * @author ray
     * @since 2015-04-19
     * @version 1.0
     *
     */
    public class CompilerOptimize {
    	public static void main(String[] args) {
    		//实验1
    		String strA = "help";
    		String strB = strA.substring(0, 2);
    		String strC = strA.substring(2, 4);
    		String strD = new String(strB + strC);
    		System.out.println(strA.equals(strD));
    	}
    }
    

    输出的结果是:

    true


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    自然拼读
    windws蓝屏解决方案
    chrome
    ubuntu安装英伟达驱动
    ubuntu基础
    kvm(未完成2021-04-26)
    istio
    OpenSSH
    su 与 su -关系
    read命令/ declare/set
  • 原文地址:https://www.cnblogs.com/raylee2007/p/4774590.html
Copyright © 2011-2022 走看看