java基础---->string字面量的使用

  这里简单的理解一下java中关于string字面量的知识,关于字节码可以使用java自带的javap工具查看。

 

string字面量

一、直接贴出测试的代码

A string literal always refers to the same instance of class String.

package com.linux.huhx.stringTest;
/**
 * Created by huhx on 2017-05-12.
 */
class Test {
    public static void main(String[] args) {
        String hello = "Hello", lo = "lo";
        System.out.print((hello == "Hello") + " ");
        System.out.print((Other.hello == hello) + " ");
        System.out.print((com.linux.huhx.Other.hello == hello) + " "); // 这个和上面的Other在不同的包内。内容一样
        System.out.print((hello == ("Hel" + "lo")) + " ");
        System.out.print((hello == ("Hel" + lo)) + " "); // false
        System.out.print((hello == ("Hel" + lo).intern()) + " ");
        System.out.println(hello == new String("hello")); // false
    }
}

class Other {
    static String hello = "Hello";
}

// true true true true false true false

 

二、关于String的intern方法官方文档的解释

// 一个字符串池,最初是空的,是由类字符串私有维护的。
1、A pool of strings, initially empty, is maintained privately by the class String. 

// 如果常量池中已经有了这个字符串,那么直接返回常量池中它的引用,如果没有,那就将它的引用保存一份到字符串常量池,然后直接返回这个引用。
2、When the intern method is invoked, if the pool already contains a string equal to this String object as determined by the equals(Object) method, then the string from the pool is returned. Otherwise, this String object is added to the pool and a reference to this String object is returned. 

3、It follows that for any two strings s and t, s.intern() == t.intern() is true if and only if s.equals(t) is true. 

 

友情链接

 

转载于:https://www.cnblogs.com/huhx/p/baseusejavastring1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值