zoukankan      html  css  js  c++  java
  • Java 字符串常量池

    String str1 = “abc”;
    String str2 = “abc”;
    String str3 = “abc”;
    String str4 = new String(“abc”);
    String str5 = new String(“abc”);

    面试题一:String str4 = new String(“abc”) 创建多少个对象?

    str4:
    字符串常量池:"abc" : 1个
    堆:new String("abc") :1个
    引用:str4 :1个
    总共 :3个

    面试题二:String str1 = new String("A"+"B") ; 会创建多少个对象? 

    str1:
    字符串常量池:"A","B","AB" : 3个
    堆:new String("AB") :1个
    引用:str1 :1个
    总共 :5个


    面试题三:String str2 = new String("ABC") + "ABC" ; 会创建多少个对象?

    str2 :
    字符串常量池:"ABC" : 1个
    堆:new String("ABC") :1个
    引用:str2 :1个
    总共 :3个

    当调用 intern() 方法时,编译器会将字符串添加到常量池中(stringTable维护),并返回指向该常量的引用

    String s1 = "Hello";
    String s2 = new StringBuffer("He").append("llo").toString();
    String s3 = s2.intern();


    System.out.println("s1 == s2? " + (s1 == s2)); // false
    System.out.println("s1 == s3? " + (s1 == s3)); // true

    1

  • 相关阅读:
    Java HashMap HashCode
    JS 笔记---持续更新
    彻底弄懂 JavaScript 执行机制
    几条jQuery代码片段助力Web开发效率提升
    原生JS与jQuery操作DOM对比
    jQuery->JavaScript一览表
    Jquery介绍
    canvas雪花
    canvas绘制多边形
    兼容性的事件处理程序
  • 原文地址:https://www.cnblogs.com/staff/p/14932089.html
Copyright © 2011-2022 走看看