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次,整体代码的性能极其低,所以遇到此类代码绝对不要使用。
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次,整体代码的性能极其低,所以遇到此类代码绝对不要使用。
发表评论
-
tomcat手动配置
2011-01-06 12:03 783为了快速开发,不用Eclipse部署项目,而用手动配置,优点启 ... -
Java Socket编程
2011-01-04 11:56 676第一步 充分理解Socket ... -
Java类加载以及反射
2011-01-04 11:54 616JAVA中类文件加载是动态的。JVM指令是被封装在了.clas ... -
多线程JavaSocket示例
2011-01-04 11:53 818这篇做为学习孙卫琴<<Java网络编程精解> ... -
群发邮件程序
2011-01-04 11:51 721import java.io.*; import java. ... -
Java过滤器
2011-01-04 11:50 704一、 使浏览器不缓存页面的过滤器 import javax.s ... -
Java中的String类(二)
2011-01-04 11:31 7352、String的常用操作方法 2.1、字符与字符串 ... -
Java位移运算符原理
2011-01-04 11:27 904* 总体概念: * 1.位移运算符只对位进行操作 * ... -
Java堆栈
2011-01-04 11:24 5991 . 栈(stack)与堆(heap)都是Java用来在Ra ... -
Java字符串比较
2011-01-04 11:22 1334字符串比较 Java代码 String str1=&quo ... -
Java读取Properties文件方法
2011-01-04 11:16 677使用J2SE API读取Properties文件的六种方法 ... -
学习Java30个目标
2011-01-04 11:09 5921.你需要精通面向对象分析与设计(OOA/OOD)、设计模式( ... -
Java时间类以及函数
2011-01-04 10:27 6221.计算某一月份的最大天数 Calendar time=Ca ... -
Java入门需要掌握的30个基本概念
2011-01-04 10:06 647这是在网上看到的一份 ...
相关推荐
根据提供的信息,我们可以总结出这份Java基础String类选择题练习题主要聚焦于String及StringBuffer类的使用。尽管具体的题目内容未给出,但从所展示的信息中可以推断出该练习题集涵盖了以下几方面的知识点: ### 一...
简单总结可以下Java中String类中的常用方法
Java中的String类是编程中非常基础且重要的一个类,它代表不可变的字符序列,即一旦创建,其内容就不能更改。下面我们将详细讨论String类的一些主要特性、实例化方式以及常用方法。 1. **String类的实例创建**: -...
java jdk中string类的源码 ,了解string类的书写,定义和声明
在Java编程语言中,`String`类是使用最频繁的类之一,它代表不可变的字符序列。本文将深入解析`String`类的一些常用方法,帮助开发者更好地理解和使用这个核心类。 1. **构造方法** - `String()`:创建一个空字符...
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`类是最常用的数据类型之一,用于处理文本数据。它是一个不可变类,意味着一旦创建了一个`String`对象,其内容就不能更改。这使得`String`类在多线程环境中非常安全,同时也带来了一些性能上的...
在Java编程语言中,String类是一个非常基础且重要的部分,它是不可变的,也就是说一旦创建了一个String对象,就不能更改它的内容。然而,许多初学者在学习过程中可能会尝试自己创建一个类似的字符串类,以便更好地...
### Java中String类详解 #### 引言 在Java编程语言中,`String`类扮演着至关重要的角色,它用于表示字符序列。本文档旨在深入探讨`String`类的特性和功能,帮助开发者更好地理解和应用这一核心类。 #### String类...
在Java语言中,`String`类是用于表示不可变字符序列的核心类之一。它代表了一个字符串对象,一旦被初始化后,其内容不能被改变。这被称为不可变性(Immutability),是Java编程语言的一个关键特性。 **创建String...
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构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中...
Java中的`String`类是编程中最常用的类之一,它在Java的`java.lang`包中,无需显式导入即可使用。`String`类代表不可变的字符序列,这意味着一旦创建了`String`对象,它的值就不能改变。这个特性使得`String`在处理...
86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点.zip86.java中String对象的特点....
Java 中的 String 类是 Java 编程语言中最基本的类之一,用于表示字符串。它在 java.lang 包中,是所有 Java 程序的默认一部分。String 类是不可变的,这意味着一旦创建了 String 对象,就不能更改它所包含的字符...
Java 中的 String 类是一个特殊的类,它是一个 immutable 类,也就是说,一旦创建了 String 对象,它的值就不能被改变。String 类的 immutable 性质是通过 final 关键字实现的。 二、String 对象的创建 Java 中有...
Java中的String类是编程中最常用的数据类型之一,它在处理文本数据时扮演着核心角色。String类位于java.lang包中,意味着它无需显式导入即可在任何Java程序中使用。由于字符串在Java中被视为不可变对象,即一旦创建...
在Java编程语言中,`String`类是一个非常重要的类,它代表不可变的字符序列。所有的字符串字面值(例如:"abc")都是`String`类的实例。本篇文章将深入探讨`String`类的一些常用方法,并通过实际例子帮助你更好地...
在Java编程中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输。当你从服务器接收到一个JSON格式的字符串,可能需要将其转换为Java对象以便于处理。这个过程通常称为反序列化...