zoukankan      html  css  js  c++  java
  • java String.intern 和 字符串常量池

     String.intern()   的作用是把字符串放入常量池

    如果字符串存在于常量池,直接返回地址即可

    如果字符串不在常量池:

       在jdk7 以下版本是先把字符串复制到常量池区然后返回字符串在该区的地址

      在jdk7及以上版本中则是直接把字符串的地址复制到常量池

     之所以要这么做原因是  jdk7及以后的版本  把PermGen区放在了普通堆中,而常量池在PermGen区

    所以

       String  a="i love ";

       String b=a+"U";

       b.intern()==b; //在jdk7 以下版本结果是 false   在jdk7及以上版本结果是 true

    关于字符串在常量池的情况:

       String a="123" ;//字符串直接存在了常量池 a是指向了常量池地址

       String b=a+"456";//字符串动态生成的 变量  不在常量池 

       final String c="123-";

       String d=c+"4567";// 字符串直接存在了常量池  d是直接指向了常量池的地址

    常量池里有 "123"     "456"    "1231"    "4567"   "123-4567"   

  • 相关阅读:
    博客园CSS备份4
    博客园css备份3
    CSS透明滚动条效果
    AHK
    修改网页css的插件stlylebot
    欧陆词典CSS修改
    油猴脚本修改网页默认字体
    博客园上传css,js文件并引用
    CSS添加本地字体文件
    博客园css备份
  • 原文地址:https://www.cnblogs.com/dint/p/13932165.html
Copyright © 2011-2022 走看看