• 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. 

    友情链接

  • 相关阅读:
    Non-local Neural Networks
    BERT-related Papers
    BERT在多模态领域中的应用
    Learning When and Where to Zoom with Deep Reinforcement Learning
    Physical Adversarial Textures That Fool Visual Object Tracking
    Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images
    Tutorial on Adversarial Example Generation
    NeurIPS 2019: Computer Vision Recap
    Deep Learning for Time Series Classification (InceptionTime)
    Contrastive Self-Supervised Learning
  • 原文地址:https://www.cnblogs.com/huhx/p/baseusejavastring1.html
Copyright © 2020-2023  润新知