求解一个java的基础问题,在线等答案
java吧
全部回复
仅看楼主
level 3
星辰VS血月
楼主
方法体:
输出结果:
为什么最后一个不能输出123456呢?
求大神解答
2016年07月25日 08点07分
1
level 9
wl冷月祭诗魂
你定义变量d的时候大小只存3个字符
2016年07月25日 08点07分
2
星辰VS血月
我改了一下,把123,改为147258,输出结果是"147258"
2016年07月25日 08点07分
wl冷月祭诗魂
@星辰VS血月
下面那个copystring里的d是形参那个函数相当于在内存中搞了个临时变量,然后你d赋值123456只是给零时变量d赋值而没有真正对那个字符串改变
2016年07月25日 08点07分
星辰VS血月
@wl冷月祭诗魂
为什么传递对象的时候可以赋值呢
2016年07月25日 08点07分
wl冷月祭诗魂
你去研究下函数参数那部分就清楚了
2016年07月25日 08点07分
level 3
星辰VS血月
楼主
自己顶一下
2016年07月25日 08点07分
3
level 9
wl冷月祭诗魂
输入6个也只接收3个
2016年07月25日 08点07分
4
level 3
星辰VS血月
楼主
求解,求解,求解
2016年07月25日 08点07分
7
level 3
星辰VS血月
楼主
(✿✪‿✪。)ノ
2016年07月25日 08点07分
8
level 8
里微糊涂蛋
你调了copystring的方法 但是你没把结果赋值给d 这样试试d=copystring(d)
2016年07月25日 08点07分
9
level 9
805239120
String类型的对象是不可变的,默认用final修饰,要想改变,只能通过构造函数,你想直接用=来修改final修饰的对象,String可不干哦
2016年07月25日 08点07分
10
星辰VS血月
我把string改为int类型的也不行,这是为什么呢
2016年07月25日 08点07分
QAQZcx
int,是基本数据类型,java的八个基本数据类型都是值传递。相当于只是复制d的值给函数中的形式参数而已。
2016年07月25日 09点07分
QAQZcx
@星辰VS血月
int,是基本数据类型,java的八个基本数据类型都是值传递。相当于只是复制d的值给函数中的形式参数而已。
2016年07月25日 09点07分
805239120
回复 星辰VS血月 :楼主需要知道点内存知识:基本数据类型int存在栈区stack,String的对象~new出来的~存在堆heap区,你直接用=复制的字符串存在常量池。
2016年07月25日 09点07分
level 6
QAQZcx
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
萌橙77
看到代码就头疼
2016年07月25日 11点07分
18
level 4
取什么名很重要
字符串的不可变性
2016年07月25日 19点07分
20
1