Object 基本都是传引用的,String 例外,传值。
可以用 StringBuffer 。
可以用 StringBuffer 。
解决方案 »
- java 线程池 问题............................急
- 一个文本框一直接收消息,当超过长度后,出现滚动条,然后,当超过一定长度以后,将前面的信息丢掉,然后保持.
- java的IDE有联想功能强大点的吗?(能跟C#的visual studio差不多的)
- osworkflow设计器
- 难道这个问题真的没有人会吗,就这么难啊,解决不了吗?
- 请问如何解决这个问题 org.aspectj.weaver.tools.Jdk14Trace error
- 接口这样理解对吗?
- 关于jcreator的提示输入
- 一个简单的异常抛出问题,编译通过了,却不能执行。大虾看看咋回事
- 想学java 如何入手
- 关于JB的窗口问题?
- 请问下面这个程序在jb中怎么运行?
{
a="hello,world"
}String s = "df";
String f = fun(s);
//f = "hello,world"
{
a="hello,world";
return a;
}String s = "df";
String f = fun(s);
//f = "hello,world"
如果要 return 不如直接 return "h, w";fun(StringBuffer a){
a=new StringBuffer("hello,world");
}orfun(String [] a){
a[0]="hello,world";
}
public class method{
public void fun(StringBuffer a){
a=new StringBuffer("Hello,world");
}
public static void main(String[] args){
System.out.println("start...");
StringBuffer b=new StringBuffer();
fun(b);
System.out.println(b);
}
}
大家帮帮忙!看看怎么回事?
不能引用公共方法。
好像,StringBuffer 和 String 的行为模式一样。不好意思。还是用数组吧。public class method{
String[] b=new String[1]; public void fun(String[] a){
a[0]="Hello,world";
} public static void main(String[] args){
System.out.println("start...");
new method();
} method(){
fun(b);
System.out.println(b[0]);
}
}
直接改变参数可以使用StringBuffer代替String作参数。
如果有多个参数,而且都有可能修改,在这种情况下,作为一个JAVA程序员,你第一个想到的应该是“类”
可以用 StringBuffer 。没有这种说法。String也是传引用。但是String没有提供方法来改变自身的值,所以虽然有了引用也没有用
StringBuffer为什么是传的值呢?
fun(StringBuffer a){
a=new StringBuffer("hello,world");
}如果这样就是另外生成了一个StringBuffer,那当然是传递不出去的了。
应该:
fun(StringBuffer a){
a.delete(0,ss.length());
a.append("hello,world");
}
这样就可以了在参数中修改a的值了。
不过正统的方法是不要在参数中修改值的,应该用return返回值,不止一个返回就用enumeration了。
fun(StringBuffer a){
a=new StringBuffer("hello,world");
}如果这样就是另外生成了一个StringBuffer,那当然是传递不出去的了。
正确的应该:
fun(StringBuffer a){
a.delete(0,a.length());
a.append("hello,world");
}
这样就可以了在参数中修改a的值了。
不过正统的方法是不要在参数中修改值的,应该用return返回值,不止一个返回就用enumeration了。