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


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

  • 相关阅读:
    git 的常用命令(未完待补充)
    Mysql占用内存过高参数优化
    mysql安全基线设置
    redis安全基线设置
    centos7安全基线设置
    检查shell脚本
    redis安装和配置
    TIME_WAIT状态全是3306解决办法
    PHP message: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted 错误
    tcp的三次握手和四次挥手(二)
  • 原文地址:https://www.cnblogs.com/raylee2007/p/4774590.html
Copyright © 2011-2022 走看看