Java中的String类型

更新时间:2023-07-08 14:12:26 阅读: 评论:0

Java中的String类型
我的父亲作文600字1、基本类型和引⽤类型
微信黄金红包
在C语⾔⾥⾯,是有指针这么⼀个变量类型的,指针变量保存的就是所要指向内容的地址。在Java⾥⾯,没有了指针的这么个说法,⽽是换了⼀个词:引⽤类型变量。
先说Java⾥⾯的基本类型,所谓基本类型,很简单,就是⼀个数字,⼀个字符或⼀个布尔值,数字⾥⾯包含整型、浮点型等,没有什么好说的。
再说这个引⽤类型,他的概念就很像指针了。引⽤变量的值指向内存空间的引⽤,就是C中的地址,所在这个地址⾥⾯的内容就是要被他引⽤的对象。
2、String就是⼀个引⽤类型
⼤多数时候,我们在⽤String的时候,就是这么⽤的:带想字的成语
String str = "balabala";
直接赋值,简单易懂。
其实,还有下⾯的三种使⽤String的⽅式,利⽤API⾥⾯的String构造⽅法:
String str = new String(char[] array);
array是⼀个字符数组,这就很形象了,在array⾥⾯字符跟字符是分开的,需要array[i]来获取。
营销创意
通过String的这⼀个构造⽅法之后,将“字符”给“串”起来了,就变成了字符串。
另外⼀种构造⽅式:
String str = new String(char[] array,int offt,int count);
array还是那个字符数组,offt是指数组中的某⼀个位置,count值数量,综合的意思就是:将array数组中,从第offt个字符开始的,往后数count个字符的“⼦数组”,串成字符串。
举例:char[] array = {'a','b','c','d','e','f','g'};String str = new String(array,2,3);
此时str就是cde,数组从0开始数。
最后⼀个,最简单:
String str = new String("abcdefg");
什么的小露珠3、基本类型跟引⽤类型中“等号”的判断区别
int a = 1; int b = 1; system.out.println(a == b);
输出的是true,因为基本类型中,==是进⾏值的判断。
String str1 = "abc";String str2 = "abc";system.out.println(str1 == str2);
轻快的意思输出的是true,因为引⽤类型中,==也是进⾏值的判断?
不,不是这样的,虽然表⾯上看,好像是这样,但其实不是的,在仔细看⼀下下⾯的例⼦:
String str1 = "abc";String str2 = new String("abc");system.out.println(str1 == str2);ppt教学
这时输出的就是fal了,然⽽str1、str2的内容是⼀样的,这是为什么?
这是因为,引⽤类型的"=="是进⾏地址值的判断,判断所引⽤的内容是不是是⼀个地址,是不是⼀个地⽅的。
所以,反过来说,若引⽤类型的"=="是fal,那么俩个引⽤类型的引⽤地址是不同的,这就引出了下⾯要说的内容了。
为什么str1,str2的内容相同,但是是不同的呢?
4、直接赋值创建跟new String创建的区别
在2中说到了使⽤String的四种⽅式,1个直接赋值,3个new创建。
(1)String str1 = "abc";
  上⾯的直接赋值,其实是分成三步的:
  第⼀步,是将“abc”的这个字符串内容在“堆”中创建出来。
  第⼆步,将创建出来的“abc”的地址保存在⼀个叫做“字符串池”的东西⾥⾯。
  第三步,将“abc”的地址给str1(即str这个引⽤类型指向了abc这个字符串所在的内存地址)
  这时候,如果再来⼀个String str2 = "abc";新生儿喂奶姿势
  java会先去字符串池寻址查找是否有这么⼀个字符串也叫“abc”,如果没有,参见上⾯三步操作。很明显,我们刚刚创建过,肯定能找到,然后将查找得到的地址也赋给str2。
(2)String str1 = new String("abc");
  当使⽤new的时候,不管内容是什么,不会执⾏上⾯的三步,直接在堆中创建⼀个传新版本的字符串,将字符串abc的地址(假设
0x001)再给str1。
  这时候再来⼀个:String str2 = new String("abc");则字符串abc的地址(假设0x002)给str2。
(3)所以,直接赋值的string,如果值相同,那么引⽤的地址也相同。
  ⽽,new出来的,不管值的内容相不相同,地址必然不同,这就是为什么3⾥⾯的str1==str2是fal的原因了,来张图:

本文发布于:2023-07-08 14:12:26,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1073065.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字符串   地址   类型   创建   数组   内容   指针
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图