`
leeqq
  • 浏览: 138173 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

String类

    博客分类:
  • JAVA
阅读更多
String类型的字面量和其他语言中的定义相同,但是需要注意的是String类型的字面量是用一个专门的“字符串池”来保存的,每次新建一个字符串的字面量,系统都会首先检查“字符串池”中是否已经存在该字面量,如果没有,则在“字符串池”中生成该字面量,如果存在则只需将该字面量的内存地址赋值给引用变量即可。

        String a=new String("hello");和String b="hello";有很大的差别,前者是直接在开辟一个内存空间,其中保存的数据为字符串hello,同时申请一个引用变量a,将为字符串开辟的内存地址赋值给a;而对于后者,后台的操作是:首先查看“字符串池”中是否存在hello这个字面量,如果存在,则将该字面量的内存地址赋值给b,如果没有,则在“字符串池”中生成一个hello字面量,将新生成的字面量的内存地址赋值给b。另外,前者是在程序运行时,在内存开的空间,而后者是在程序编译时就为之开了内存空间。
        String是一个很特殊的类,他作为函数参数传值的时候是值传递,而不是一般类那样引用传递。
void change(String a){ 
    a="abc"; 
} 
String b="xyz"; 
change(b); 


这样在调用change函数前后b的值是不会变的,一直是"xyz"
String a = "abc"; 
String b = new String("abc");

这两个语句,前一个创建的字符串是放在“字符串池”里的。后一个并不是放在“字符串池”里的。所以用在执行上述语句第二句时,在“字符串池”内找不到字面量"abc" ,会新开辟一块内存。所以
a==b;
a.equals(b);


这两个语句第一个返回false,第二个返回true


分享到:
评论

相关推荐

    c++作业设计string类

    设计string类 要求: 1、为该类定义构造函数,析构函数和赋值操作。构造函数至少应有三个:无参构造函数、C风格字符串构造函数和复制构造函数 2、为string类提供必要的成员函数,可以参考C++类库的string类提供了...

    java基础String类选择题练习题

    根据提供的信息,我们可以总结出这份Java基础String类选择题练习题主要聚焦于String及StringBuffer类的使用。尽管具体的题目内容未给出,但从所展示的信息中可以推断出该练习题集涵盖了以下几方面的知识点: ### 一...

    String类的常用方法

    String类的常用方法 String类是Java语言中最基本的类之一,用于处理字符串。字符串是一个字符序列,Java中字符串是不可变的,即创建后不能被修改。下面是String类的常用方法: 1. equals()方法:用于判断两个字符...

    string类的构造方法_String类重要吗_C++_STL_string_

    标题中的“string类的构造方法”揭示了我们要探讨的核心内容——如何初始化和创建`std::string`对象。`std::string`类不仅在日常编程中频繁使用,而且在很多高级功能如正则表达式、文本处理等方面都有重要应用,因此...

    java自制string类例程

    在Java编程语言中,String类是一个非常基础且重要的部分,它是不可变的,也就是说一旦创建了一个String对象,就不能更改它的内容。然而,许多初学者在学习过程中可能会尝试自己创建一个类似的字符串类,以便更好地...

    String类的intern、split方法

    String类的intern、split方法 String 类的 intern 方法是一个本地方法,定义如下:public native String intern();该方法返回一个字符串对象的内部化引用,由 String 类维护一个初始为空的字符串的对象池,当 ...

    C++ String 类常用成员函数汇总

    C++ String 类常用成员函数汇总 C++ 的 String 类提供了多种成员函数来操作字符串,这些成员函数可以分为构造函数、字符操作、特性描述、输入输出操作和赋值五大类。 首先,String 类的构造函数有多种重载版本,...

    c++链表string类程序

    在这个"链表string类程序"中,我们可以预想它可能涉及到用C++实现链表结构,并结合`std::string`进行字符串的操作。下面将详细介绍`std::string`类以及如何将其与链表相结合。 1. **`std::string` 类基础** `std::...

    c++string类函数原型借鉴.pdf

    本文主要介绍了C++中的字符串类函数原型借鉴,通过自定义的String类来实现字符串的操作。下面将对标题、描述、标签和部分内容进行详细的分析和解释。 标题:C++ String 类函数原型借鉴 C++中的字符串操作是非常...

    C#中String类常用方法汇总

    在C#编程语言中,String类是用于处理文本字符串的核心类。它提供了丰富的功能,使得在处理字符串时能够实现各种常见的操作。以下是对C#中String类常用方法的详细解释和示例: 1. `.ToLower()` 和 `.ToUpper()` 这...

    介绍java中String类的方法

    Java中的String类是编程中非常基础且重要的一个类,它代表不可变的字符序列,即一旦创建,其内容就不能更改。下面我们将详细讨论String类的一些主要特性、实例化方式以及常用方法。 1. **String类的实例创建**: -...

    string 类及所有的方法(c++)

    C++的string类提供了一系列方便的成员函数,用于处理和操作字符串。 2.1 C++字符串和C字符串的转换 string类可以方便地与C风格的字符数组进行转换。例如,你可以使用.c_str()成员函数将string对象转换为C风格的...

    JAVA实验报告四(实现String类).doc

    Java 实验报告四(实现 String 类) 在本实验报告中,我们将实现 Java 中的 String 类,并了解其实现原理。 String 类是 Java 中一个非常重要的类,它提供了字符串操作的各种方法。在这里,我们将基于 ArrayList ...

    Educoder题目:Java面向对象 - String类答案解析.md

    Educoder题目:Java面向对象 - String类答案解析

    C++ String类实现

    C++实现的String类,可以支持UTF-8编码

    String类的完整实现包括

    *String类中包括以下函数:* *默认构造函数,带参数构造函数 , 拷贝构造函数 *取字符串函数GetString(),取字符串长度函数GetLength(),查找字串位置函数Find() *重载,>>,[],=,+,> *析构函数 *String类中包括2个...

    自己写了个string类

    标题提到的“自己写了个string类”,意味着作者创建了一个类似于C++标准库中的`std::string`的自定义字符串类。这样的练习有助于深入理解字符串的内部工作原理、内存管理和对象操作。下面我们将详细探讨这个话题。 ...

    设计string类

    2、为string类提供必要的成员函数,可以参考C++类库的string类提供了那些成员函数,至少应包括下标访问,子串查找、获得C风格字符串、获得字符串长度、字符串比较这几个函数 3、利用该string类完成测试程序:统计一...

    C++string类仿写

    C++编写的类似于string类,自己改动实现相关库函数功能 C++的一般编译器都定义和封装了字符串功能,请模仿定义string类的实现,可以实现并支持如下功能: (1)string s = “rubbish大学”; (2)string t = s; ...

Global site tag (gtag.js) - Google Analytics