黑马程序员技术交流社区

标题: String类型到底是值类型还是引用类型?如何理解? [打印本页]

作者: 晓俞飞、孰能归    时间: 2014-8-10 10:19
标题: String类型到底是值类型还是引用类型?如何理解?
纠结了好久这个问题,网上搜了下,说是String 类型,但是又说按值类型去理解,到底String类型应该怎么理解?求解
作者: 晓俞飞、孰能归    时间: 2014-8-10 10:21
坐等答复,,
作者: fantacyleo    时间: 2014-8-10 10:35
String毫无疑问是引用类型。
作者: 晓俞飞、孰能归    时间: 2014-8-10 11:43
那为什么String类型的特性表现跟值类型一模一样
作者: 柀堓椛開    时间: 2014-8-10 12:25
int a=5;
string b="hello";
我的理解
a是知类型变量,可以理解为储物柜里存放a的值是5;
为什么b是引用类型变量,储物柜b里存放的不是hello吗?  
应该是这么写String b=new String("hello");的  java可能为了方便 就这么些了  看着像直接赋值 其实不是

作者: 柀堓椛開    时间: 2014-8-10 12:26
这个地址在内存中自动分配,就像一个门牌号码,只要你知道要找的人的名字,电脑自动会找到这个门牌号码 帮你找到里面的人,不需要关心您要找的人住在哪  只要记住他的名字   也就是变量名
作者: _童金辉    时间: 2014-8-10 12:33
学习了

作者: 左脑想你    时间: 2014-8-10 12:38
它底层是字符数组
作者: 微微微笑    时间: 2014-8-10 13:02
引用类型,不过是提供了方法可以实现直接赋值
作者: 晓俞飞、孰能归    时间: 2014-8-10 13:21
楼上正解
作者: 小洁呵呵    时间: 2014-8-10 14:48
。。。不知道楼主说的是什么,String就是字符串类型啊,
先要理解什么是面向对象。。。
String是个类,不是基本数据类型
int是基本数据类型,但他有包装类型,也即是Integer类,
作者: fantacyleo    时间: 2014-8-10 15:21
晓俞飞、孰能归 发表于 2014-8-10 11:43
那为什么String类型的特性表现跟值类型一模一样

怎么会一模一样?你能用new创建一个值为3的int对象么?一个在栈中,一个在堆中,完全不一样。只不过,String对象的值和基本类型的值一样不可变罢了。有共同点和一模一样是两码事
作者: liubea    时间: 2014-8-10 16:18
String类型是引用类型,为什么说它可以按值类型去理解,这应该和它的两种创建String类型的实例有关。String str1= "abc";String str2 = new String("abc");




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2