zoukankan      html  css  js  c++  java
  • String和.intern()

    final 和 String

    public static void main(String[] args) {
            String a1 = "a";
            String a2 = "b";
            // 非final串相加,指向堆中new的对象
            String a3 = a1+a2;
            String a4 = "ab";
            String a5 = new String("ab");
            System.out.println("a3==a4?"+(a3==a4));//false
            System.out.println("a3==a5?"+(a3==a5));//false
            System.out.println("a4==a5?"+(a4==a5));//false
    
            // final串相加,直接指向常量池中存在的
            final String a6 = "a";
            final String a7 = "b";
            String a8 = a6+a7;
            System.out.println("a3==a8?"+(a3==a8));//false
            System.out.println("a4==a8?"+(a4==a8));//true
            System.out.println("a5==a8?"+(a5==a8));//false
    
        }

    intern方法

    s3.intern()在 Stirng s4 = "11"之前

    public static void main(String[] args) {
            String s3 = new String("1") + new String("1");
            s3.intern();
            String s4 = "11";
    
            System.out.println(s3 == s4);// s3.intern()在 s4创建之前 true
        }

    s3.intern()在 Stirng s4 = "11"之后

    public static void main(String[] args) {
            String s3 = new String("1") + new String("1");
            String s4 = "11";
            s3.intern();
    
            System.out.println(s3 == s4);// s3.intern()在 s4创建之后 false
        }

    直接new String("11") 也返回false

    public static void main(String[] args) {
            String s3 = new String("11");
            s3.intern();
            String s4 = "11";
    
            System.out.println(s3 == s4);// false
        }

    猜想:s3 = new String("1")+ new String("1");时常量池中不存在"11"

    所以调用s3.intern()使得,s3指向了常量池。

    如果s3 = new String("11")那么常量池中会创建一个"11"则,调用s3.intern()不起作用s3还是指向new String("11")。

    或者s3 = new String("1")+ new String("1");s4 = "11"则,常量池中还是有"11"所以数s3.intern()不起作用

  • 相关阅读:
    SQLServer性能杀手
    SqlServer内存瓶颈分析SQLServer:Buffer Manager
    HTML5变化 (一)
    对于using嵌套的改进
    String.IsNullOrEmpty()和String.IsNullOrWhiteSpace()
    querySelector & querySelectorAll
    Action<T> 委托
    Func<T, TResult>
    SL4.背景图片拖动
    JavaScript日志
  • 原文地址:https://www.cnblogs.com/wsZzz1997/p/14692889.html
Copyright © 2011-2022 走看看