求解一个java的基础问题,在线等答案
java吧
全部回复
仅看楼主
level 3
方法体:
输出结果:
为什么最后一个不能输出123456呢?
求大神解答[钱]
2016年07月25日 08点07分 1
level 9
你定义变量d的时候大小只存3个字符
2016年07月25日 08点07分 2
我改了一下,把123,改为147258,输出结果是"147258"
2016年07月25日 08点07分
@星辰VS血月 下面那个copystring里的d是形参那个函数相当于在内存中搞了个临时变量,然后你d赋值123456只是给零时变量d赋值而没有真正对那个字符串改变
2016年07月25日 08点07分
@wl冷月祭诗魂 为什么传递对象的时候可以赋值呢
2016年07月25日 08点07分
你去研究下函数参数那部分就清楚了
2016年07月25日 08点07分
level 3
自己顶一下
2016年07月25日 08点07分 3
level 9
输入6个也只接收3个
2016年07月25日 08点07分 4
level 3
求解,求解,求解
2016年07月25日 08点07分 7
level 3
(✿✪‿✪。)ノ
2016年07月25日 08点07分 8
level 8
你调了copystring的方法 但是你没把结果赋值给d 这样试试d=copystring(d)
2016年07月25日 08点07分 9
level 9
String类型的对象是不可变的,默认用final修饰,要想改变,只能通过构造函数,你想直接用=来修改final修饰的对象,String可不干哦[酷]
2016年07月25日 08点07分 10
我把string改为int类型的也不行,这是为什么呢
2016年07月25日 08点07分
int,是基本数据类型,java的八个基本数据类型都是值传递。相当于只是复制d的值给函数中的形式参数而已。
2016年07月25日 09点07分
@星辰VS血月 int,是基本数据类型,java的八个基本数据类型都是值传递。相当于只是复制d的值给函数中的形式参数而已。
2016年07月25日 09点07分
回复 星辰VS血月 :楼主需要知道点内存知识:基本数据类型int存在栈区stack,String的对象~new出来的~存在堆heap区,你直接用=复制的字符串存在常量池。
2016年07月25日 09点07分
level 6
String的源代码中其实实用char[]来存储的,间接理解为是char的包装类。例如int的Integer、float的Float,对包装类的操作其实就是操作自身的基本类型,所以操作String相当于操作基本数据类型char。基本数据类型是值传递。建议实用StringBuffer,Stringbuilder.
2016年07月25日 09点07分 11
level 8
copystring 你要设置返回值类型为String
2016年07月25日 10点07分 17
或者直接输出CopyString(d)
2016年07月25日 10点07分
level 7
看到代码就头疼
2016年07月25日 11点07分 18
level 4
字符串的不可变性
2016年07月25日 19点07分 20
1