`

string对象

阅读更多
/**
 * @author fxliu
 * @version 1.0
 */
public class TestString
{
    public static void main(String args[])
    {

        String s = new String("abc");
        /*生成了两个对象,一个abc是在String pool里面,一个abc是在内存的堆里面,s是指向堆里面的一个对象,
        * 只有用new关键字生成出来的才叫对象,s是指向堆里面对象的地址
        * */

        String s1 = "abc";
        /* 当执行完这行语句,一个新的对象也没有生成,只是定义一个字符串常量,而不是用new的时候,会在string pool里面查找
       是否已经存在了abc这样一个对象,如果已经存在就直接使用
       * */

        String s2 = new String("abc");
        /*首先查找abc在string pool里面是否存在,如果已经存在就在string pool里不再创建
        只要有new就会在堆里面生成一个新的对象,
        * */
        System.out.println(s == s1);

        System.out.println(s == s2);

        System.out.println(s1 == s2);
        /*==是判断他们引用的地址是否一样
        s1——>abc是string pool里面的
        s——>abc是堆里面的
        s2——>abc是另一个堆里面的
        三个不同的对象,指向不同的地方
        */

        /* 运行结果
        false
        false
        false*/

        //首先intern()是返回poo里面的对象
        System.out.println(s == s.intern());//false s是堆里面的,s.intern()是pool里面的所以返回false

        System.out.println(s1 == s1.intern());//true s1是pool,s1.intern()也是pool里面

        System.out.println(s.intern() == s2.intern());//true,都是pool里面的


        String h = "hellolili";
        String h1 = "hello";
        String name = "lili";
        /*==========================================*/
        System.out.println("=================");
        System.out.println(h == "hello" + "lili");//true 只是两个常量,它都是指向pool里面的
        System.out.print(h == "hello" + name);//false,name新创建了一个对象是指向堆里面的,所以返回为false
    }
}

 

分享到:
评论

相关推荐

    String对象常用的属性的方法

    ### String对象常用的属性与方法 在JavaScript中,`String`对象是用于表示和操作文本的强大工具。它提供了许多内置的方法来帮助我们处理字符串数据。本文将详细介绍`String`对象的一些常用属性和方法,并通过示例...

    js中string对象的使用

    此程序是向大家展示js脚本中string对象的基本应用

    读入未知数目的string对象.cpp

    读入未知数目的string对象.cpp

    Prototype String对象 学习

    【Prototype String对象学习】 在JavaScript中,Prototype是一个库,它扩展了JavaScript的内置对象,包括String对象。这里的“Prototype String对象”是指Prototype库为JavaScript原生的String对象添加的一些额外...

    86.java中String对象的特点.zip

    86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点....

    Java String对象的经典问题

    ### Java String对象的经典问题 #### 一、String 类与对象机制概述 在Java中,`String`类是一个非常重要的类,它提供了丰富的功能用于处理文本数据。`String`类是不可变的(immutable),这意味着一旦一个`String`...

    string对象的操作pdf

    ### string对象的操作详解 #### 一、string 类型简介及基本操作 在现代 C++ 编程中,`std::string` 是一个极其重要的类,它提供了丰富的接口用于字符串的处理,大大简化了字符串操作的复杂性。下面将详细介绍 `std...

    java中Object对象String对象的解析.pdf

    "Java 中 Object 对象和 String 对象的解析" Java 中的 Object 对象和 String 对象是两个非常重要的概念。在 Java 中,每个对象都继承自 Object 对象,这意味着每个对象都拥有 Object 对象的方法和属性。String ...

    创建string对象过程的内存分配:

    ### 创建string对象过程的内存分配详解 #### 一、引言 在Java中,`String` 类是最常用的数据类型之一,用于表示不可变的字符序列。`String` 对象的创建涉及复杂的内存分配机制,特别是在Java虚拟机 (JVM) 的环境中...

    CString和string对象

    CString和string对象的相互转化问题 CString对象和string对象是两种不同的字符串类型,它们之间的转化是非常重要的。本文将详细介绍CString和string之间的转化问题,以及它们的用法。 一、CString和string之间的...

    Java中的String对象是不可变的吗Java开发Jav

    在Java编程语言中,String对象被认为是不可变的。这个特性是Java设计者为了优化性能、安全性和线程安全性而有意设定的。理解String对象的不可变性对于Java开发者来说至关重要,因为它影响着代码的编写、内存管理和多...

    解析Java中的String对象的数据类型 字符串

    解析Java中的String对象的数据类型字符串 Java中的String对象是一种特殊的数据类型,它不同于基本数据类型,也不同于其他对象。String对象的默认值是null,但它又是一种特殊的对象,有其它对象没有的一些特性。 ...

    String对象详解(附代码)

    对String创建几个对象代码详解,包括字符串相加,对象相加等等

    JAVA面试题解惑系列(二)——到底创建了几个String对象-JAVA程序员JAVA工程师面试必看.pdf,这是一份不错的文件

    JAVA 面试题解惑系列之 String 对象创建机制 本文将深入探讨 JAVA 中 String 对象的创建机制,解答常见的面试题目,并探索 String 对象池的概念和机制。 一、String 对象的创建方式 在 JAVA 中,String 对象可以...

    Javascript实例-String对象-唐诗三百首

    在本实例中,“Javascript实例-String对象-唐诗三百首”着重讲解了如何利用JavaScript的String对象来展示中国传统文化瑰宝——唐诗三百首。这个项目不仅能够帮助初学者加深对JavaScript字符串操作的理解,同时也能...

    JavaScript中的String对象.pdf

    JavaScript中的String对象是编程语言中处理文本的基本工具。在JavaScript中,字符串被当作对象来处理,这赋予了它们丰富的属性和方法,使得开发者能够轻松地进行各种文本操作。以下是关于String对象的详细说明: 1....

    JavaScript程序设计课件:String对象.pptx

    JavaScript中的String对象是编程中非常基础且重要的概念,它用于表示和操作文本数据。在JavaScript中,通过单引号或双引号包围的任何字符序列都会被视为字符串,并且它们本质上都是String构造函数的实例。本节主要...

    c字符串,string对象,字符串字面值的区别详解

    在C++中,我们通常会遇到三种主要的字符串形式:C字符串,string对象,以及字符串字面值。这些字符串形式各有特点,适用场景不同,理解它们之间的差异对于编写高效、安全的代码至关重要。 一、字符串字面值 字符串...

    Javascript之String对象详解_.docx

    JavaScript中的String对象是处理文本数据的核心工具,它提供了多种方法和属性来操作和格式化字符串。下面我们将深入探讨String对象的一些关键特性和用法。 1. 创建String对象: 创建String对象主要有三种方式: -...

Global site tag (gtag.js) - Google Analytics