C++怎么把string类型的数据当做引用类型来传递。 其实问题不在于string是值类型还是引用类型,是你不知道方法内部的参数的赋值与交换,是不影响外部参数的 里面的ab赋值和外面的xy赋值是没有任何关系的,所以你的道德x和yString是值类型,还是引用类型? string:字符串类型值类型和引用类型的区别 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变.[值类型]:à也就是基本数据类型 基本数据类型常被称为四类八种四类:1,整型2,浮点型3,字符型4,逻辑型八种:1,整型3种 byte,short,int,long 2,浮点型2种 float,double 3,字符型1种 char 4,逻辑型1种 boolean[引用类型]除了四类八种基本类型外,所有的类型都称为引用类型在弄清楚值类型与引用类型之后,最后一点就是值传递与引用传递,这才是关键[值传递]基本数据类型赋值都属于值传递,值传递传递的是实实在在的变量值,是传递原参数的拷贝,值传递后,实参传递给形参的值,形参发生改变而不影响实参。引用引用类型之间赋值属于引用传递。引用传递传递的是对象的引用地址,也就是它的本身(自己最通俗的理解)。引用传递:传的是地址,就是将实参的地址传递给形参,形参改变了,实参当然被改变了,因为他们指向相同的地址。java编程中基本数据类型是8个,那引用数据类型是接口,数组,String还有什么,有Object么? java中除了8大基本类型剩下的全部都是引用类型,包括接口,数组,String,当然Object肯定也包括,不过他们统一都可以叫做对象类型,如果学过C,就相当于是一个指针String Object 引用数据类型的几种equal 和== 的比较? “=”比较的是“值”equal 比较的是“引用”String s1=“abc”String s2=“abc”由于是同一字符串 所以s1,s2此时指向的是同一内存地址String s2=“a”此时 s2发现 没有“a”则新建一个“a”而new String(str);会始终开辟新的内存 也就是说 new String();的两个变量 用Equal 比较引用 是不会相等的希望能有帮助理解为String s2=“abc”是先去找内存中有没有“abc”如果有 则直接指向它。如果没有则新建new String()是始终新建。如有错误请指正JDK描述:字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享String是原始数据类型还是引用数据类型 呵呵,这个问题最好用实验证明,一看就明白:Object obj=\"AAAA;不会报错,因为\"AAAA\"生成出来就是一个对象Object obj=100;编译器报错,提示无法从int 类型强制转为Object原因:100 为 int 原始数据类型,所以不能转成Object 对象AAAA\"为字符串 String 类型对象,由于所有对象类都是继承自Object,所以 Object obj=\"AAAA;不会报错。另外,Object 都有方法 equals()、hashCode()、getClass()等方法这些方法 String 类一个都没落下统统继承,呵呵.明白了吧?java中String是引用数据类型还是值类型 百度一下string类型,有很多博客讲的很好的,string是比较特殊的引用类型,不能修改string为什么是引用数据类型 简单的说,String是一个类,java里的引用数据类型包括 类,接口,数组其它区别基本数据类型:变量名指向具体的数值引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值基本数据类型:变量在声明之后java就会立刻分配给他内存空间引用数据类型:它以特殊的方式(类似C指针)指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址。基本数据类型:使用时需要赋具体值,判断时使用“=”号引用数据类型:使用时可以赋null,判断时使用equals方法String是引用数据类型 但是是值传递 怎么理 重新new一个对象,从已有对象构造,就是深复制class xx{.};xx a=new xx();xx b=new xx(a);为什么string是引用类型 在程序里,这种字符串都是事先就分配地址的,不像int一样执行到a=5这一句时才分配,执行到b=\"hello\"时只是把hello的地址给了bjava中string类是引用类型吗? 在Java中,数组和String字符串都不是基本数据类型,它们被当作类来处理,是引用数据类型。引用类型(reference type)指向一个对象,不是原始值,指向对象的变量是引用变量。在java里面除去基本数据类型的其它类型都是引用数据类型,自己定义的class类都是引用类型,可以像基本类型一样使用。在java编程语言中,用类的一个类型声明的变量被指定为引用类型,这是因为它正在引用一个非原始类型,这对赋值具有重要的意义。如下代码:int x=5;int y=x;String s=\"Hello;String t=s;四个变量被创建:两个原始类型 int 和两个引用类型String。x的值是5,而这个值被复制到y;x和y是两个独立的变量且其中任何一个的进一步的变化都不对另外一个构成影响。至于变量s和t,只有一个String对象存在,它包含了文本\"Hello\",s和t均引用这个单一个对象。如果将变量t重新定义为t=\"World;则新的对象World被创建,而t引用这个对象。PS:1、“在Java里面参数传递都是按值传递”这句话的意思是:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。2、在Java里面只有基本类型和按照下面这种定义方式的String是按值传递,其它的都是按引用传递。就是直接
随机阅读
- 怎样提高艺术生对英语学习的兴趣 民中老师赵会玲
- 毕业生创业干什么好 大学生创业做什么好?
- 肋下未及肿大 脾厚4.0cm未及肋下算肿大吗
- 哪里有京东购物卷 京东优惠券在哪里领取?
- 歌浴森演唱的三天三夜 歌曲《三天三夜》的原唱是?
- 在广西有合川桃片卖吗? 合川桃片怎么卖
- 热血江湖在哪合毒属性 热血江湖,火属性和毒属性有什么作用的?两个属性之间有什么区别?
- 青岛工商行政管理 青岛市工商局电话。
- 说一个人思想不好 用什么词形容 怎么形容脏心烂肺的人
- 手肘骨化性肌炎如何治疗
- 欧洲葡萄酒庄园需要多少钱 一个葡萄酒庄园的最高管理人员都该知道什么?
- 能斯特定理是什么 热力学第三定律证明能斯特定律
- 日照水芙蓉大酒店海鲜 日照市水芙蓉大酒店怎么样?
- “推进绿色发展”200字感悟 上海金山环保审计
- 求《少爷》by不游泳的鱼txt 不会游泳的鱼 txt
- 正阳县王勿桥马庄村段围子组 河南省驻马店市正阳县王勿桥乡马屯村邮编是什么?
- 西尔维娅·普拉斯《十一月的墓园》英语原文与译文 西尔维娅普拉斯英文版6
- 蓟县毛家峪水世界 天津周边哪个城市适合自驾游?
- 经济学考研学校难度排名 农业经济学考研学校
- 山东省气象局的海拔高度 山东省气象局投递人数