Java中String类总结
1.String类继承了Serializable、Comparable、CharSequence三个接口,类用final关键字修饰,故不可以被继承。
2.String对象实例化
空参
传递一个字符串
传递一个字符数组
传递一个字符数组并指明开始位置及所用长度(注意起始值以及起始值加长度不能超出字符数组)
传递一个int数组并指明开始位置及所用长度(注意起始值以及起始值加长度不能超出字符数组)
传递一个byte数组并指明字符编码类型名
传递一个byte数组并指明字符编码类型
传递一个byte数组并指明开始位置及所用长度和字符编码类型名
传递一个byte数组并指明开始位置及所用长度和字符编码类型
传递一个StringBuilder对象
传递一个StringBuffer对象
3.String类中方法
length():获得字符串长度
isEmpty():判断字符串是否为空串(注意:如果string对象为null则报空指针异常)
charAt(int index):获取字符串中指定下标的字符
codePointAt(int index):获取字符串中指定下标的Unicode索引位值
getChars(int srcBegin, int srcEnd, char dst[], int dstBegin):将字符串从srcBegin到srcEnd复制到字符数组dst中,从字符数组的dstBegin位开始放置字符
getBytes(String charsetName):根据指定的字符编码格式获取字符串的字节码
getBytes(Charset charset):根据指定的字符集对象获取字符串的字节码
equalsIgnoreCase(String anotherString):不区分大小写的比较两个字符串
compareTo(String anotherString):从字符串第一位开始比较,若本字串Unicode值大则返回正数,相等则返回0,小于则返回负数
regionMatches(int toffset, String other, int ooffset, int len):比较本字符串从toffset位开始的len长度的子字符串和other字符串从ooffset位开始的len长度的子字符串是否相同,相同则返回true,否则返回false
subSequence(int beginIndex, int endIndex):等价于substring(int beginIndex, int endIndex)
split(String regex, int limit):将字符串按照规则最多进行limit-1次拆分,拆分成limit分,若limit非正数或者limit大于最多可拆分次数则进行完全拆分
format(String format, Object... args):用format中的格式化字符的符号,对args进行格式化,拼到字符串format中,实际上format中的格式化字符还起到了占位的作用
format(Locale l, String format, Object... args):字符串格式化,根据地区和国家进行不同的格式
4.String、StringBuilder、StringBuffer的区别
String是静态常量,大小不可更改,即使是更改了值,实际上是形成新的对象。
StringBuilder和StringBuffer表示的字符串可以进行更改,处理字符串效率高,StringBuilder不是线程安全的,StringBuffer是线程安全的效率略低于StringBuilder。
5.String对象直接赋值和通过new的区别
String str1="ABC"; 和String str2 = new String("ABC"); 有什么区别。
String str1="ABC" 可能创建一个对象或者不创建对象,如果"ABC"这个字符串在java String池里不存在,会在java String池创建这个一个String对象("ABC").如果已经存在,str1直接reference to 这个String池里的对象。
String str2 = new String("ABC") 至少创建一个对象,也可能两个。因为用到new 关键字,会在heap创建一个 str2 的String 对象,它的value 是 "ABC".同时,如果"ABC"这个字符串在java String池里不存在,会在java String池创建这个一个String对象("ABC").
String 有一个intern() 方法,native,用来检测在String pool是否已经有这个String存在。
考虑下面的问题:
String str1 = new String("ABC");
String str2 = new String("ABC");
str1 == str2 的值是True 还是False呢? False.
String str3 = "ABC";
String str4 = "ABC";
String str5 = "A" + "BC";
str3 == str4 的值是True 还是False呢? True.
str3 == str5 的值是True 还是False呢? True.
在写代码的时候,一般不要 String str2 = new String("ABC");
String a = "ABC";
String b="AB";
String c=b+"C";
System.out.println(a==c); false
a和b都是字符串常量所以在编译期就被确定了!
而c中有个b是引用不是字符串常量所以不会在编译期确定。
而String是final的!所以在b+"c"的时候实际上是新创建了一个对象,然后在把新创建对象的引用传给c.
分享到:
相关推荐
简单总结可以下Java中String类中的常用方法
根据提供的信息,我们可以总结出这份Java基础String类选择题练习题主要聚焦于String及StringBuffer类的使用。尽管具体的题目内容未给出,但从所展示的信息中可以推断出该练习题集涵盖了以下几方面的知识点: ### 一...
在Java编程语言中,`String` 和 `StringBuffer` 都是非常重要的类,它们用于处理字符串数据。虽然它们都实现了字符串操作的功能,但它们之间存在一些重要的区别,这些区别主要体现在性能、线程安全以及可变性等方面...
Java 中的 String 类 Java 中的 String 类是 Java 编程语言中最基本的数据类型之一。String 类是 Java 的一个 final 类,无法被继承。它是 Java 中用于表示字符串的类。Java 中的 String 类有很多特点和用途,本文...
在Java编程语言中,`String` 类是最常用的数据类型之一,用于表示不可变的字符序列。由于字符串在实际开发中的重要性和高频使用特性,深入理解并掌握其用法至关重要。本文档将对`String`类型的一些关键知识点进行...
JAVA常用类,java封装类,String类和StringBuffer类......
在这个总结中,我们将深入探讨String类的一些核心特性和方法。 首先,String类位于`java.lang`包中,这意味着它对所有Java程序都是自动导入的,无需额外引用。String类被声明为final,这意味着我们无法创建其子类,...
在Java编程语言中,`String`类是一个非常重要的类,它代表不可变的字符序列。所有的字符串字面值(例如:"abc")都是`String`类的实例。本篇文章将深入探讨`String`类的一些常用方法,并通过实际例子帮助你更好地...
深入了解Java中的String类是至关重要的,因为String在Java编程中占据着极其重要的位置。下面将对给定的信息进行深入分析: ### 1. String 类是 final 的,不可被继承 在Java中,`String` 类被声明为 `final` 类型...
在本实验报告中,我们将实现 Java 中的 String 类,并了解其实现原理。 String 类是 Java 中一个非常重要的类,它提供了字符串操作的各种方法。在这里,我们将基于 ArrayList 实现可以深度复制的栈结构,并实现 ...
### Java中String、十六进制String与byte[]之间的相互转换 在Java开发中,字符串(String)、十六进制表示的字符串以及字节数组(byte[])之间的转换是非常常见的需求,尤其是在处理网络通信、文件读写等场景下。...
### Java中String类的常用方法详解 在Java编程语言中,`String` 类是一个非常重要的类,用于表示不可变的字符序列。它提供了丰富的内置方法,使得开发人员能够轻松地处理字符串相关的操作。本文将详细介绍Java中`...
在Java编程语言中,String类和StringBuffer类是处理字符串的两种主要方式,它们各自有不同的特性和适用场景。理解二者的区别对于编写高效、优化的代码至关重要。 1. **String类**: - **不可变性**:String类的...
总结来说,理解Java中`null`、空字符串`""`的区别,以及如何安全地进行比较,是编写健壮代码的关键。同时,了解字符串对象的内存地址和内容相等性的差异,可以帮助我们更好地理解和调试程序。在实际开发中,应始终...
总结,理解和熟练掌握Java中的String类及其方法至关重要,因为它在实际开发中无处不在。无论是进行字符串比较、处理字符数组还是进行其他字符串操作,都需要充分利用String类提供的功能。了解这些基础,将有助于编写...
本文总结了Java基础知识点,涵盖String类、Math类、File类和枚举等方面。 String类 String类是Java语言中最基本的字符串类,它提供了多种方法来操作字符串。StringBuffer类是String类的可变版本,提供了更多的功能...
- **String**: 在Java中,`String`是一个不可变的类,用于表示字符序列。默认情况下,`String`对象使用Unicode编码(通常是UTF-16),这意味着每个字符占用两个字节。 - **byte[]**: 这是一个字节数组,通常用来表示...
获取String字符串中指定下标位置的char类型字符,如果index超出有效范围 StringIndexOutOfBoundsException int indexOf(char ch); int indexOf(String str); int indexOf(char ch, int fromIndex); int indexOf...