zoukankan      html  css  js  c++  java
  • [Java] 01 String 内存分析

     1 public class StringTest{
     2     public static void main(String[] args){
     3         String str1 = new String("123");
     4         String str2 = new String("123");
     5         //str1和str2指向不同的内存
     6         System.out.println(str1==str2);//false
     7         System.out.println(str1.equals(str2));//true
     8 
     9         String str3 = "123";
    10         String str4 = "123";
    11         System.out.println(str3 == str4);//str3和str4指向同一块内存  true
    12         System.out.println(str3.equals(str4));//true
    13 
    14         str3 = "234";
    15         str4 = "456";
    16         str4 = "789";
    17         String str5 = "456";
    18         //字符串常量,只要声明了就有内存分配,即使没有指向也不会被垃圾回收,str5不会再分配内存,因为已经存                
    19         //在"456"这块内存,直接被指向。
    20         
    21         /**
    22          * 由于String是字符串常量,每新建一个字符串就会分配一块内存,此时以下循环会分配100块
    23          * 内存,但只有最后一块被使用,而且String Pool中的内存不会被回收,所以如果进行大量字符串叠加,请勿                 
    24          * 使用此方法
    25          */
    26         String str6 = "";
    27         for(int i=0;i<100;i++){
    28             str6+=i;
    29         }
    30         System.out.println(str6);
    31         
    32         /**
    33          * 字符串叠加用此方法
    34          */
    35         StringBuilder sb = new StringBuilder("abc");
    36         for(int i=0;i<100;i++){
    37             sb.append(i);
    38         }
    39         System.out.println(sb.toString());
    40     }
    41 }
  • 相关阅读:
    浏览器环境下JavaScript脚本加载与执行探析之代码执行顺序
    DOM扩展:DOM API的进一步增强[总结篇-下]
    DOM扩展:DOM API的进一步增强[总结篇-上]
    Network 第九篇
    Network 第八篇 – 动态路由-OSPF
    Network 第七篇
    Network 第六篇
    Network 第五篇
    Network 第四篇
    Network 第三篇
  • 原文地址:https://www.cnblogs.com/frost-yen/p/5379226.html
Copyright © 2011-2022 走看看