易截截图软件、单文件、免安装、纯绿色、仅160KB

关于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数据库连接


MySQL:
String Driver="com.mysql.jdbc.Driver"; //驱动程序
String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name为数据库名
String Username="username"; //用户名
String Password="password"; //密码
Class.forName(Driver).new Instance();
......

JAVA 字符串编码总结

 String newStr = new String(oldStr.getBytes(), "UTF-8");    
 
java中的String类是按照unicode进行编码的,当使用String(byte[] bytes, String encoding)构造字符串时,encoding所指的是bytes中的数据是按照那种方式编码的,而不是最后产生的String是什么编码方式,换句话说,是让系 ......

java字符编码原理浅析

本周遇到一个java乱码问题,于是对java的编码问题做了一些实验和了解。简单分析如下:
先看下如下代码:
import
java.io.UnsupportedEncodingException;
public
class
CharSetTest {

public
static
void
main(String[] args)
throws
UnsupportedEncodingException {
String test =
"
篮球
" ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号