- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
22. Java中String类介绍
Java中String类介绍String 类是一个final类,不可以被继承。字符串是一个常量,对象一旦创建,就不可以改变了,两个或者多个字符串可以叠加到一个新的字符串对象中去,字符串用+号拼接。不能向原有的字符串对象添加内容。字符串对象一旦初始化后,就不可以改变了。String类的特点:字符串对象一旦初始化后,就不可以改变了,是内容不会变了,但是字符串引用可以指向其他的字符串;String str = abcd;str = efghd; 是合法的,只是”abcd”字符串仍然存在而已,但是引用str指向了新的字符串 efghd。字符串的定义方法:第一种:String str = “abc”;第二种:String str = new String(“abc”);两种定义方法的区别:(1)String s1 = abcd;String s2 = abcd;System.out.println(s1 == s2); //返回结果是 true双等号==判断的是地址,确实s1和s2的地址相同。因为存在字符串常量池,在创建一个字符串时,首先判断字符串池中是否有此字符串,如果没有就创建,如果已经存在,则直接把存在的字符串的地址赋给引用即可,故s1和s2的地址相同。只在字符串常量池中创建一个对象。(2)String s3 = new String(abcd);String s4 = new String(abcd);System.out.println(s3 == s4);//返回结果是false这是在堆内存中创建了两个对象,所以s3 和 s4 指向不同的对象。(3)总结:第一种方法是在字符串常量池中创建唯一的一个对象;第二种方法(利用new)是在堆内存中创建字符串对象,一个new对应一个字符串对象。字符串池(string pool):采用字面值方式赋值时,如String s= “aaa”,首先查找字符串是否在字符串池中是否存在该字符串,若不存在,则创建此字符串对象,并返回地址;若字符串池中存在该字符串,则直接把已经存在的字符串的地址返回给引用,并没有创建新的对象。(由于在程序编写时,会大量使用字符串string,而对于重复的不再重新分配地址,从而实现优化)采用new的方式如String s = new String(“aaa”);首先是在字符串池中查找有没有此字符串对象,如果有,就不在字符串池中创建此对象了,直接在堆中创建一个字符串对象,如果没有,则先在字符串池中创建这个字符串对象,然后在堆中再创建这个对象,最后把堆中的地址返回来。注意:返回的都是堆中的对象,所以new一次,就会在堆中新建一个对象,地址肯定不同,但是利用字面赋值的方法,返回的是字符串池中的地址,如果字符串内容相同,则就是同一个地址,所以采用==判断时,相同。任何数据和字符串相拼接,都会转换成字符串。String s1= new String();与 String s2 =“”;和 String s3 = null;不一样,前两者都创建了对象,只不过是空字符,引用已经分配了对象地址,而第三个没有创建对象,引用为空。String有很多构造方法(Constructors):String():空参数的构造方法是创建一个空字符的字符串对象;String(Stringoriginal):创建一个内容为original的字符串对象;String(byte[] bytes):将字节数组变成字符串,把这些字节值作为码值,转换成相应的符号,输出;String( char[] value): 将字符串数组变成字符串;同时还有可以设置偏移量的等等;还有很多,可以使用时查看API文档。按照面向对象的思想对String的功能进行分类:获取:①字符串的长度(字符的个数),利用方法length()获取int值;注意:字符串需要使用length()方法获取长度,而数组的长度是利用它的属性length得到长度值。②根据位置获取字符;char charAt(int index)③根据字符获取第一次出现的位置: int indexOf(int ch) 参数支持ACSII码,所以为int类型。int indexOf(String?str)int indexOf(String str, int fromIndex)intlastIndexOf(int?ch)intlastIndexOf(int ch, int fromIndex)intlastIndexOf(String?str)intlastIndexOf(String?str, int?fromIndex)④截取字符串中的一部分:String substring(int?beginIndex)Stringsubstring(int?beginIndex, in
您可能关注的文档
最近下载
- (正版) GB 50367-2013 混凝土结构加固设计规范.docx VIP
- (2025春)人教版二年级数学上册全册教案.doc
- 小学课程表word模板可编辑a4纸打印.docx VIP
- 栽培小能手.ppt VIP
- 2025年CCAA国家注册审核员考试(认证通用基础)历年参考题库含答案详解(5卷).docx VIP
- 14.2+血管与心脏+第2课时(教学课件)生物苏科版2024八年级上册.pptx VIP
- MSDSFORsilicondioxide白碳黑英文安全技术说明书.pdf VIP
- 15J401 钢梯-标准图集.docx VIP
- 药剂学(第9版)ER 9-1 第九章液体制剂的单元操作(课件).pptx VIP
- 土地复垦方案编制规程通则.doc VIP
文档评论(0)