zoukankan      html  css  js  c++  java
  • java基础---->string字面量的使用

      这里简单的理解一下java中关于string字面量的知识,关于字节码可以使用java自带的javap工具查看。

    string字面量

    一、直接贴出测试的代码

    A string literal always refers to the same instance of class String.

    package com.linux.huhx.stringTest;
    /**
     * Created by huhx on 2017-05-12.
     */
    class Test {
        public static void main(String[] args) {
            String hello = "Hello", lo = "lo";
            System.out.print((hello == "Hello") + " ");
            System.out.print((Other.hello == hello) + " ");
            System.out.print((com.linux.huhx.Other.hello == hello) + " "); // 这个和上面的Other在不同的包内。内容一样
            System.out.print((hello == ("Hel" + "lo")) + " ");
            System.out.print((hello == ("Hel" + lo)) + " "); // false
            System.out.print((hello == ("Hel" + lo).intern()) + " ");
            System.out.println(hello == new String("hello")); // false
        }
    }
    
    class Other {
        static String hello = "Hello";
    }
    
    // true true true true false true false

    二、关于String的intern方法官方文档的解释

    // 一个字符串池,最初是空的,是由类字符串私有维护的。
    1、A pool of strings, initially empty, is maintained privately by the class String. 
    
    // 如果常量池中已经有了这个字符串,那么直接返回常量池中它的引用,如果没有,那就将它的引用保存一份到字符串常量池,然后直接返回这个引用。
    2、When the intern method is invoked, if the pool already contains a string equal to this String object as determined by the equals(Object) method, then the string from the pool is returned. Otherwise, this String object is added to the pool and a reference to this String object is returned. 
    
    3、It follows that for any two strings s and t, s.intern() == t.intern() is true if and only if s.equals(t) is true. 

    友情链接

  • 相关阅读:
    下载到99.5卡顿问题定位结论
    http的get方式和post方式
    广播中等待较久出现anr问题
    eclipse运行时出现Unable to execute dex
    Android系统切换语言更新应用界面方法
    Android进程退出的方法
    杀掉顽固的android进程
    dialog屏蔽back键的方法
    操作中按了home键后广播为什么接收不了问题
    oc nil Nil
  • 原文地址:https://www.cnblogs.com/huhx/p/baseusejavastring1.html
Copyright © 2011-2022 走看看