http://blog.csdn.net/hfmbook/article/details/7605527

JAVA中String类的intern()方法的作用

标签: stringjavaexceptionequalsobjectc
2012-05-26 22:23 15754人阅读 评论(1) 收藏 举报

 分类:
JAVA(107) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

一般我们变成很少使用到 intern这个方法,今天我就来解释一下这个方法是干什么的,做什么用的

首先请大家看一个例子:

[java] view plaincopy print?
  1. public static void main(String[] args) throws Exception {
  2. String a =  "b" ;
  3. String b =  "b" ;
  4. System.out.print( a == b);
  5. String c = "d" ;
  6. String d = new String( "d" ).intern() ;
  7. System.out.println( c == d);
  8. }

大家能看出来这个例子打印在控制台的消息吗?在这里控制台输出的结果都是true  true,原因在于 intern 这个方法返回的是 返回字符串对象的规范化表示形式,当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。这时候c和d就是相等的。

下面在看一个例子:

[java] view plaincopy print?
  1. <span style="white-space:pre">      </span>String s1 = "ab123" ;
  2. String s2 = new String( "ab123" ) ;
  3. System.out.println( s1 == s2 );
  4. String s3 = s2.intern() ;
  5. System.out.println( s1 == s3 ) ;

看看这里输出的是什么,我想大家应该明白这个方法的作用是什么了吧!!

String类的intern()相关推荐

  1. 关于Java中String类的intern()方法

    首先intern()方法的定义:当调用这个方法的时候,如果字符串常量池中有这个对象,就把常量池中的这个对象返回,没有就把当前对象加入到常量池并且返回当前对象的引用: jdk1.6之前:将对象存入常量池 ...

  2. Java技术——你真的了解String类的intern()方法吗

    0.引言 什么都先不说,先看下面这个引入的例子: [java] view plain copy String str1 = new String("SEU")+ new Strin ...

  3. Java技术——你真的了解String类的intern()方法吗,快点来学吧

    static final int MAX = 100000; static final String[] arr = new String[MAX]; public static void main( ...

  4. String类的intern()方法详解

    0.引言 什么都先不说,先看下面这个引入的例子: [java] view plaincopy String str1 = new String("SEU")+ new String ...

  5. JAVA中String类的intern()方法的作用

    2019独角兽企业重金招聘Python工程师标准>>> 一般我们变成很少使用到 intern这个方法,今天我就来解释一下这个方法是干什么的,做什么用的 首先请大家看一个例子: [ja ...

  6. Java String类的intern()方法

    该方法的作用是把字符串加载到常量池中(jdk1.6常量池位于方法区,jdk1.7以后常量池位于堆) 在jdk1.6中,该方法把字符串的值复制到常量区,然后返回常量区里这个字符串的值: 在jdk1.7里 ...

  7. Java—String类的intern方法的学习

    对intern方法的学习来源于之前偶然看到的一篇博客:[请别再拿"String s = new String("xyz");创建了多少个String实例"来面试 ...

  8. String类的Intern()方法

    首先我们先来看一段程序: public class test01 {public static void main(String args[]) {//String str2 = "Jaso ...

  9. JDK1.8中String类的intern()方法学习

    jdk1.8字符串常量池是位于堆中: 在jdk1.8中使用如下指令时会同时在堆中和常量池(前提是常量池中还没有该对象)中创建字符串对象,但是s是指向堆中. String s = new String( ...

最新文章

  1. jquery radio 取值
  2. 今晚7点30,腾讯专家与你共探广告智能创意新可能
  3. [Java] - 项目中的防止同用户异地登录问题
  4. 《实战 Java 高并发程序设计》笔记——第1章 走入并行世界(一)
  5. 触摸屏:屏幕键盘(虚拟键盘)解决方案
  6. 肺腑之言-写给喜欢单片机的初学者
  7. python太阳花画法_Python——教你画朵太阳花
  8. 海量数据大课学习笔记(2)-不在其位要谋其政,技术Leader能力模型提升-小滴课堂
  9. 32强鹏城逐战!“共筑梦想、创赢未来” 2021年绿色产业创新创业大赛深圳赛区比赛精彩上演
  10. js动画——图片轮播
  11. Nebula 来了,支付宝 App 跨平台动态化框架
  12. win7系统下共享电脑网络
  13. 华为OD机试 - 分班问题
  14. Maven问题记录:本地打包成功,远程打包报错,找不到依赖包
  15. 网约车大战重来:易到回归降佣金,美团入局每单补贴超20元
  16. info1110辅导quiz1
  17. VST 2.0编程总结
  18. 李宇春居然传闻是梁山好李逵的后裔!!(神罗神罗)
  19. 如何使用JavaScript创建文本搜索书签
  20. MySQL查询分析(explain)

热门文章

  1. 【Redis】15.Redis主从复制
  2. Android Volley完全解析(四),带你从源码的角度理解Volley
  3. Django连接postgresql数据库
  4. 适用于单片机的数据加密算法:xxtea
  5. 【flutter】学习之路(一)环境的搭建
  6. fedora 使用 vnc 远程 fedora 28 主机
  7. [总结] 康托展开及其逆运算
  8. Javascript 問題汇总(不定期更新)【一】
  9. Android-滑动解锁高亮文字自定义TextView
  10. java之Spring实现控制反转