关于java中的参数传递
问题的引入是因为下午在群里看到了一个网友的问题:
给定如下Java 代码,编译运行后,输出结果是( )。
public class Test {
public static void main(String [ ] args) {
StringBuffer a = new StringBuffer(“A”);
StringBuffer b = new StringBuffer(“B”);
operate(a , b);
System.out.println(a + ”,” + b);
}
static void operate(StringBuffer x , StringBuffer y) {
x.append(y);
y = x;
}
}
A. A,B B. AB,B C. A,AB D.AB,AB
朋友可以猜猜这个答案,我也想告诉大家,答案是:B。也许有人会很惊讶,也许有人会很淡定。因为StringBuffer是一个类,对于类的使用,通过new,在堆中创建一个类的实例,利用一个引用来实现对这个对象的操作。当把一个引用当作参数传递到一个函数中的时候,C++采取的是:这个参数是一个地址。而在java中没有地址这个概念,一切都是值传递,那么这里又是怎么控制的。
首先,我做了一个测试:
public class Text {
public static void main(String[] args) {
String s = "b";
f(s);
System.out.println(s);
}
static void f(String s) {
s = "c";
}
} /* output
b
*///~
从结果可以看出:形参的效果并没有作用到实参中。我们继续看下一段代码:
public class Text {
String s = "b";
public static void main(String[] args) {
Text t = new text();
f(t.s);
 
相关文档:
传智播客JAVA培训2010-5-8OA第二天总结
一直以来,都听到这样的话,今天又在网上看到了这样一句话“写出一行代码往往比理解一行代码更重要。因为理解问题也许仅是一个数学上或实验上的技能而已,而写出一行新的代码,却需要有创造性的”。这毫无疑问的表显出来,学程序的最基本道理。当我们报着算法的书籍在啃 ......
项目经理的职责:
1、基本职责就是确保项目目标的实现,领导项目团队准时、优质地完成全部工作。
2、与客户沟通,了解项目的整体需求。并与客户保持一定的联系,及时反馈阶段性成果,及时更改客户提出的合理需求。
3、制定项目开发计划文档,量化任务,并合理分配给相关人员。
4、跟踪项目进度,协调项目组成员之间的合 ......
本周遇到一个java乱码问题,于是对java的编码问题做了一些实验和了解。简单分析如下:
先看下如下代码:
import
java.io.UnsupportedEncodingException;
public
class
CharSetTest {
public
static
void
main(String[] args)
throws
UnsupportedEncodingException {
String test =
"
篮球
" ......
http://developer.51cto.com/art/201001/180400.htm
文来自CSDN博客,原文标题为《Hibernate 之父:是时候升级到Java EE 6了》。
Hibernate 之父Gavin King建议开发者升级到 Java EE 6 平台,并指出,目前各种不愿意升级的观点其实是没有根据的。
Java EE 6 发布后,我看到了很多反对升级到新平台的观点。这些反对观点大 ......