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

Java中的String类(一)

阅读更多
1、String类

1.1、String的两种实例化方式

       String本身是一个类,在String类中定义了如下的构造方法:
public String (String original)
       可以接收一个String类的对象,并重新数实例化String对象,除此之外String还可以采用直接赋值的方式进行对象初始化。
public class StringDemo01
{
       public static void main(String args[])
       {
              String str1 = "hello" ;
              String str2 = new String("AUST") ;
              System.out.println(str1 + " " + str2);
              System.out.println() ;
       }
}
1.2、String的比较方式

       范例:用“==”比较
public class StringDemo02
{
       public static void main(String args[])
       {
              String str1 = "hello" ;
              String str2 = new String("hello") ;
              String str3 = str2 ;
              System.out.println("str1 == str2 -->" + (str1==str2));   //false
              System.out.println("str1 == str3 -->" + (str1==str3));  //false
              System.out.println("str2 == str3 -->" + (str2==str3));  //true
       }
}
       得出结果,用“==”比较的是两个对象的地址是否相等,具体来讲实际上比较的是地址的值,因为地址是以数值的形式存在的。
       但是现在真正要比较的不是地址的值,而是两个字符串的内容,用String类中的equals()方法完成比较,此方法定义如下:
l            Public Boolean equals(String str)
范例:使用equals()修改程序
public class StringDemo03
{
       public static void main(String args[])
       {
              String str1 = "hello" ;
              String str2 = new String("hello") ;
              String str3 = str2 ;
              System.out.println("str1  equals  str2 -->" + str1.equals(str2));   //true
              System.out.println("str1  equals  str3 -->" + str1.equals(str3));  //true
              System.out.println("str2  equals  str3 -->" + str2.equals(str3));  //true
       }
}
1.3、一个字符串实际上就是String的匿名对象

一个字符串是使用“””括起来的,那么一个字符串的常量实际上就属于String的一个匿名对象。
public class StringDemo04
{
       public static void main(String args[])
       {
              String str1 = "hello" ;
              System.out.println("hello".equals(str1)); 
       }
}
1.4、String的两种实例化方式的区别

       所有的操作以内存图形表示出来
String str1 = “hello” ;

       此时在堆内存空间中,只开辟一个空间,不会产生多余的内容。
如果使用关键字new的方式呢?
String str2 = new String(“hello”) ;
可以发现,程序开辟了两个空间,与前一个相比方便多了。所以在开发中绝对不能使用关键字new调用String类的String(String org)的构造方法。
       而且,如果直接使用赋值的方式也可以减少堆内存的开销。
public class StringDemo05
{
       public static void main(String args[])
       {
              String str1 = "hello" ;
              String str2 = "hello" ;
              String str3= "hello" ;
              System.out.println("str1 == str2 -->" + (str1==str2));   //true
              System.out.println("str1 == str3 -->" + (str1==str3));  //true
              System.out.println("str2 == str3 -->" + (str2==str3));  //true
       }
}
       实际上,以上的三个对象表示的都是同一个空间的引用,因为对于String来讲使用直接赋值的方式会在字符串池中保存内容。如果之后在声明字符串的时候发现内容一样,则不会重新开辟空间,而是从内存池中取出数据继续使用。
1.5、字符串的内容一旦声明后则无法修改

public class StringDemo06
{
       public static void main(String args[])
       {
              String str1 = "hello" ;
              str1 += " world" ;
              System.out.println(str1);
       }
}
       虽然最终输出的结果改变了,但是字符串的内容真的改变了吗?
       实际上来讲,字符串变量的改变改变的是内存空间的地址指向,而本身的字符串内容没有任何改变。所以,在开发中以下的操作代码绝对要避免。
public class StringDemo07
{
       public static void main(String args[])
       {
              String str1 = "hello" ;
              for (int i = 0 ; i< 100 ; i ++ )
              {
                     str1 += i ;
              }   
              System.out.println(str1);
       }
}
以上操作要不断的断开已有的连接,指向新连接100次,整体代码的性能极其低,所以遇到此类代码绝对不要使用。
分享到:
评论

相关推荐

    java基础String类选择题练习题

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

    Java中String类中的常用方法.TXT

    简单总结可以下Java中String类中的常用方法

    介绍java中String类的方法

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

    javastring类的源码

    java jdk中string类的源码 ,了解string类的书写,定义和声明

    java中的String类常用方法解析(一)

    在Java编程语言中,`String`类是使用最频繁的类之一,它代表不可变的字符序列。本文将深入解析`String`类的一些常用方法,帮助开发者更好地理解和使用这个核心类。 1. **构造方法** - `String()`:创建一个空字符...

    5.javaString类.zip

    5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5....

    Java的String类

    在Java编程中,`String`类是最常用的数据类型之一,用于处理文本数据。它是一个不可变类,意味着一旦创建了一个`String`对象,其内容就不能更改。这使得`String`类在多线程环境中非常安全,同时也带来了一些性能上的...

    java自制string类例程

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

    java中String类的知识

    在Java语言中,`String`类是用于表示不可变字符序列的核心类之一。它代表了一个字符串对象,一旦被初始化后,其内容不能被改变。这被称为不可变性(Immutability),是Java编程语言的一个关键特性。 **创建String...

    java string类常用方法

    Java中的String类是Java语言中最基本的类之一,它提供了许多实用的方法来操作字符串。在日常开发中,我们经常会使用这些方法来完成字符串的处理和操作。下面我们将详细介绍Java String类中的常用方法。 charAt方法 ...

    83.java中String构造方法.zip

    83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中...

    85.java中String构造方法.zip

    85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中...

    java String类的实现

    Java中的`String`类是编程中最常用的类之一,它在Java的`java.lang`包中,无需显式导入即可使用。`String`类代表不可变的字符序列,这意味着一旦创建了`String`对象,它的值就不能改变。这个特性使得`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 类是 Java 编程语言中最基本的类之一,用于表示字符串。它在 java.lang 包中,是所有 Java 程序的默认一部分。String 类是不可变的,这意味着一旦创建了 String 对象,就不能更改它所包含的字符...

    深入探讨Java中的String类.pdf

    Java 中的 String 类是一个特殊的类,它是一个 immutable 类,也就是说,一旦创建了 String 对象,它的值就不能被改变。String 类的 immutable 性质是通过 final 关键字实现的。 二、String 对象的创建 Java 中有...

    Java中String类.pdf

    Java中的String类是编程中最常用的数据类型之一,它在处理文本数据时扮演着核心角色。String类位于java.lang包中,意味着它无需显式导入即可在任何Java程序中使用。由于字符串在Java中被视为不可变对象,即一旦创建...

    java String类常用方法练习小结

    在Java编程语言中,`String`类是一个非常重要的类,它代表不可变的字符序列。所有的字符串字面值(例如:"abc")都是`String`类的实例。本篇文章将深入探讨`String`类的一些常用方法,并通过实际例子帮助你更好地...

Global site tag (gtag.js) - Google Analytics