Java String类用法详解
一、简介
零碎知识点
extends Object
implements serializable,Comparable< String >,charSequence
String类表示字符串,所有字符串文字都是此类的对象
字符串是不变的,值在创建后无法更改
对象一旦声明则不可改变,改变的只是地址,原来的字符串还是存在的,并且产生垃圾
任何一个“”都为字符串对象,无赋值则为匿名对象
用“+”拼接字符串尽量避免,一般用append+toString
StringBuilder(线程不安全)和StringBuffer(线程安全),忽略线程安全,其它都一样
由于String对象是不可变的,所以可以共享(即两个字符串一样则共享同一块内存地址)
//共享
String t1 = "123";
String t2 = "123";
System.out.ptintln(t1 == t2);//true,(== 比较的是内存地址)
字符串常量池
存在于方法区(加载代码的内存区),被所有的线程共享
堆在逻辑上的划分
堆在逻辑上被分为三部分:
新生代:存储刚创建的对象(GC询问次数最多为15次,>15则进入老年代)
老年代:垃圾回收次数超过15次(即15次之后依然存活的对象)
永久代:静态修饰的所有东西(类、方法、常量…)
每一个字符串对象的创建都会放入永久代(每次创建都先去永久代,前提:不用new,new开辟新内存)
二、创建对象
2.1 直接引用常量区
String s = " ";
String str = “abc” ;
2.2 使用构造方法
String()
String str = new String(“abc”);
2.3 两种实例化方法的区别
区别
直接赋值:
只开辟一块堆内存空间,并且会自动入池,不会产生垃圾
会将匿名对象“”放入对象池,下一次不同对象直接赋值时直接利用池中已经存在的匿名对象
构造方法:
在堆内存创建对象
会开辟两块堆内存空间,其中一块堆内存会变成垃圾被系统回收,而且不能够自动入池,需要通过public String intern();方法进行手工入池。
三、常用方法
Modifier and TypeMethodDescription
charcharAt?(int index)返回指定索引处的 char值。
intcompareTo?(String anotherString)按字典顺序比较两个字符串。
booleanendsWith?(String suffix)测试此字符串是否以指定的后缀结尾。
booleanequals?(Object anObject)将此字符串与指定的对象进行比较。
booleanequalsIgnoreCase?(String anotherString)将此 String与另一个 String比较,忽略了大小写。
voidgetChars?(int srcBegin, int srcEnd, char[] dst, int dstBegin)将此字符串中的字符复制到目标字符数组中。
intindexOf?(int ch)返回指定字符第一次出现的字符串中的索引。
intindexOf?(int ch, int fromIndex)返回指定字符第一次出现的此字符串中的索引,从指定索引处开始搜索。
intindexOf?(String str)返回指定子字符串第一次出现的字符串中的索引。
intindexOf?(String str, int fromIndex)从指定的索引处开始,返回指定子字符串第一次出现的字符串中的索引。
booleanisEmpty()返回 true ,当且仅当, length()是 0 。
intlastIndexOf?(int ch)返回指定字符最后一次出现的字符串中的索引。
intlastIndexOf?(int ch, int fromIndex)返回指定字符最后一次出现的字符串中的索引,从指定的索引开始向后搜索。
intlastIndexOf?(String str)返回指定子字符串最后一次出现的字符串中的索引。
intlastIndexOf?(String str, int fromIndex)返回指定子字符串最后一次出现的字符串中的索引,从指定索引开始向后搜索。
intlength()返回此字符串的长度。
Stringrepeat?(int count)返回一个字符串,其值为此字符串的串联重复 count次。
Stringreplace?(CharSequence target, CharSequence replacement)将此字符串中与文字目标序列匹配的每个子字符串替换为指定的文字替换序列。
StringreplaceAll?(String regex, String replacement)将给定替换的给定 regular expression匹配的此字符串的每个子字符串替换。
StringreplaceFirst?(String regex, String replacement)将给定替换的给定 regular expression匹配的此字符串的第一个子字符串替换。
booleanstartsWith?(String prefix)测试此字符串是否以指定的前缀开头。
booleanstartsWith?(String prefix, int toffset)测试从指定索引开始的此字符串的子字符串是否以指定的前缀开头。
StringstripLeading()返回一个字符串,其值为此字符串,并删除了所有前导 white space 。
StringstripTrailing()返回一个字符串,其值为此字符串,并删除所有尾随 white space 。
CharSequencesubSequence?(int beginIndex, int endIndex)返回作为此序列的子序列的字符序列。
Stringsubstring?(int beginIndex)返回一个字符串,该字符串是此字符串的子字符串。
Stringsubstring?(int beginIndex, int endIndex)返回一个字符串,该字符串是此字符串的子字符串。
char[]toCharArray()将此字符串转换为新的字符数组。
StringtoLowerCase()使用默认语言环境的规则将此 String所有字符转换为小写。
StringtoUpperCase()使用默认语言环境的规则将此 String所有字符转换为大写。
StringtoUpperCase?(Locale locale)使用给定 Locale的规则将此 String所有字符转换为大写。
static StringvalueOf?(T i)返回T参数的字符串表示形式。
到此这篇关于Java String类用法详解的文章就介绍到这了,更多相关Java String内容请搜索无名以前的文章或继续浏览下面的相关文章希望大家以后多多支持无名!
同类资源
- Java支持库多线程调用不崩溃
易语言Java支持库多线程调用不崩溃例子源代码,Java支持库多线程调用方法。...
- 基于javaweb的个人网站的毕业设计,包含毕业答辩的PPT文件
基于javaweb的个人网站的毕业设计,包含毕业答辩的PPT文件本文件感兴趣的可以参考一下。...
- javaWeb汽车销售系统
javaWeb汽车销售系统本文件感兴趣的可以参考一下,只有前台汽车销售,没有后台管理系统。...
- Java Web应用教程,网上购物系统的实现
JavaWeb应用教程,网上购物系统的实现本文件感兴趣的可以参考一下,简单又实用,帮助我入门的好书。...
- JavaWeb课程作业之网上水果商店
JavaWeb课程作业之网上水果商店本文件感兴趣的可以参考一下,含sql文件,使用Eclipse+MySql制作。...
- 关于Java毕业设计作品
关于Java毕业设计作品本文件感兴趣的可以参考一下,分布式项目实战所有视频。...
- 数据库课程设计Java、SQL sever实现人事管理系统
Java、SQLsever实现人事管理系统本文件感兴趣的可以参考一下,压缩包里有程序说明和设计报告。...
- java利用POI读取Word文件中的内容
java利用POI读取Word文件中的内容本文件感兴趣的可以参考一下,比较简单的例子,正在学习中。...
- java药店管理系统毕业设计程序
java药店管理系统毕业设计程序本文件感兴趣的可以参考一下,采用java技术构建的一个管理系统。整个开发过程...
- 面向对象编程C++和Java比较教程
面向对象编程C++和Java比较教程本文件感兴趣的可以参考一下,面向对象编程C++和Java比较教程中英文完整版pd...
- Java Web课后习题答案
JavaWeb课后习题答案本文件感兴趣的可以参考一下,包含有课件,课程代码。...
- eclipse的web项目实现Javaweb购物车
eclipse的web项目实现Javaweb购物车本文件感兴趣的可以参考一下,主要介绍了eclipse的web项目实现Javaweb购...