java 题目~请教一下
答案:5 悬赏:20 手机版
解决时间 2021-04-30 23:54
- 提问者网友:爱唱彩虹
- 2021-04-30 02:50
java 题目~请教一下
最佳答案
- 五星知识达人网友:西岸风
- 2021-04-30 03:47
楼上回答的说明一下,数组和str都是引用类型,这点不要搞糊弄了,凡是new 出来的类型那个都是引用类型,简单的可以这样说,
String test=""; 和 String test=new String("");不是同一种类型, 数组的首地址就是指针地址.变量是一用来临时保存数据的,楼上的如果是变量它也会变啊,ch一值没有被重新覆盖,它的值为什么不在了?
全部回答
- 1楼网友:执傲
- 2021-04-30 08:19
先看这个例子
String str = "original";
String otherStr = str; //把str的引用给otherStr
System.out.println(otherStr); //输出结果为original
otherStr = "other"; //把otherStr的值改了
System.out.println(str); //输出结果为original
其实这个例子和你上面的方法是一个样的, String是对象,肯定是传引用(JAVA里面除了那8个基本数据类型是传值以外,其它的做参数都是传引用).但是String又稍稍有点不同, 其实不止String,其它的Integer, Float等包装类也是和String一样的. 可以自己做测试, 下面说一下原因
String str = "original"; //定义了一个str, 这个original的值是一定的,也就是说是个常量,很多书上应该都写有,String的值是不可以改变的.
当你再定义一个新的引用 String otherStr = str; ,它们是不同的引用,但是指向同一个内容,但是当你执行
otherStr = "other"; 的时候, 记住上面的话String的值是不可以改变的,那JAVA虚拟机就会给"other"的值是在另一个内存区域分配出来的,而不是在原先的基础上进行修改,所以它们之间已经是互不影响
打了这么多字,可有明白?
char[] 字符数组不一样, 它可以直接改变值,而不需要另外分配内存
- 2楼网友:舍身薄凉客
- 2021-04-30 07:30
选择B,讲String类型数据作为参数是值传递(不影响本身值,只是作为参数传递给方法),而数组类型数据是址传递(数据随方法内部的访问改变而改变)!
- 3楼网友:雪起风沙痕
- 2021-04-30 06:23
此答案选B啊,很没有悬念的
- 4楼网友:蓝房子
- 2021-04-30 04:53
String类型是引用类型,char类型是值类型。可以简单理解,String类型的变量在经过方法赋值操作后,赋值的效果会被保留下来;而char类型的变量在经过方法赋值操作后,赋值的效果不会被保留下来,依然保持原样。 所以答案应该选择 C。 具体为什么会有这样的结果,可以了解一下,值类型变量和引用类型变量的对数据的存储机制。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯